Estube probando la implementacion de la cache...y alguna complicacion tecnica a pesar de ser una 'gran cosa'.
Un usuario logueado ve un panel de control...y el sitio tiene un diseño diferente incluso al del usuario no-logueado pero con el uso de la cache...... se muestra el panel a quien no debe y viceversa!
Una solucion posible URLs agregandoles #logued o ?logued al final para que la cache las vea diferentes pero eso implica:
1) En cada link, form, etc... agregar el #logued / ?logued si esta logueado
2) Re-dirigir si no tiene la marca y esta logueado porque puede venir de un buscador.
Algo mas facil ? aca MI solucion implementada con CodeIgniter:
MY_url_helper.php
Código PHP:
<?php
function anchor($uri = '', $title = '', $attributes = '')
{
$title = (string) $title;
/* agreado! */
if (is_logged()){
$uri .= '?logued';
}
if ( ! is_array($uri))
{
$site_url = ( ! preg_match('!^\w+://! i', $uri)) ? site_url($uri) : $uri;
}
else
{
$site_url = site_url($uri);
}
if ($title == '')
{
$title = $site_url;
}
if ($attributes != '')
{
$attributes = _parse_attributes($attributes);
}
return '<a href="'.$site_url.'"'.$attributes.'>'.$title.'</a>';
}
function full_url($protocol='http') {
//$protocol = $_SERVER['HTTPS'] == 'on' ? 'https' : 'http';
return $protocol.'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
}
Código PHP:
class MY_Controller extends CI_Controller{
function __construct(){
parent::__construct();
if (is_logged()){
if (!strstr(full_url(),'?logued')){
redirect (current_url().'?logued');
}
}
...
}
..
}