Codeigniter – Obligar a cargar página sin utilizar caché

En varias ocasiones, necesitaremos que una página no se guarde en caché. El tipo ejemplo es cuando vamos de una página a otra, y pulsamos posteriormente el botón Atrás del navegador. Este problema surge en muchísimas ocasiones por temas de loguinación, pasarelas de pago… vamos:

El problema del botón atrás del navegador y la seguridad

En Codeigniter podemos utilizar un método que obliga a que obliguemos a cargar siempre del servidor, sin utilizar la caché del navegador:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class MiControlador extends CI_Controller {
...
public function verpaginasincache(){
...
// En el controlador, antes de cargar el view dentro de una función
$data["mensaje"]= "Un ejemplo para que el navegador no utilice caché y obligue siempre a cargar la página desde el servidor";
// Evitamos cache para que no puedan hacer botón atrás desde la siguiente página
$this->output->set_header('Expires: Sat, 26 Jul 2000 05:00:00 GMT');
$this->output->set_header('Cache-Control: no-cache, no-store, must-revalidate, max-age=0');
$this->output->set_header('Cache-Control: post-check=0, pre-check=0', FALSE);
$this->output->set_header('Pragma: no-cache');
// Cargamos la vista en cuestión
$this->load->view('lavistasincache', $data);
...
}
...
}

De esta manera, cada vez que llamemos a esta función del controlador, obliga a cargarlo desde el servidor y no utilizará la caché del navegador. Para ello, hemos utilizado las función set_header de la librería Output, que cambia los headers de la página comunicando al navegador que no las guarde.

Artículos relacionados

CodeIgniter – Quitar index.php de la url Para poder trabajar bien las url amigables en CodeIgniter, debemos quitar el index.php que sale por defecto cuando navegas por la aplicación. Hay que ...
CodeIgniter – Genera un fichero CSV a partir... Si utilizáis el FrameWork CodeIgniter, generar ficheros CSV a partir de una consulta es relativamente sencillo. Os explicamos cómo. Vamos a ir ...
Integrar Boilerplate en CodeIgniter Sencillo videotutorial donde explica cómo integrar Boilerplate a un nuevo proyecto PHP creado sobre CodeIgniter. Utiliza como editor Eclipse y crea un...
CodeIgniter – Ficheros a modificar si cambia... Trabajas con CodeIgniter en local. Acabas tu proyecto y ahora toca moverlo a producción. Cambiamos de servidor, de base de datos... Qué ficheros debem...

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*