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 – Debug e información de forma s... CodeIgniter proporciona una clase que facilita la programación. Activando esta clase desde nuestro controlador, en el momento de mostrar la vista, lis...
CodeIgniter – Seguridad – Evitar XSS e... Siguiendo con los puntos de seguridad de CodeIgniter, vamos a ver cómo podemos hacer nuestros formularios mas seguros. Es sabido que se puede aprovech...
CodeIgniter – No mostrar errores en producci... Vayamos por partes y rápido, que ni tu tienes ganas de leer, ni yo de escribir un libro. Esto complementaría otros post al respecto: Errores PHP ...
CodeIgniter – Ver si el navegador soporta di... Cuando instalamos un navegador en nuestro sistema operativo, lo hacemos en un idioma. Así, cuando navegamos, nuestro navegador lo hace en un idioma u ...

Deja un comentario

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

*