Foros del Web » Programando para Internet » PHP »

Problema con las cabeceras para no cargar en el cache de la página

Estas en el tema de Problema con las cabeceras para no cargar en el cache de la página en el foro de PHP en Foros del Web. Muy buenas: Tengo esto el empezar una página de acceso por contraseña (acceso.php): <? // No almacenar en el cache del navegador esta página. header("Expires: ...
  #1 (permalink)  
Antiguo 21/02/2006, 10:10
 
Fecha de Ingreso: diciembre-2004
Mensajes: 98
Antigüedad: 13 años
Puntos: 0
Pregunta Problema con las cabeceras para no cargar en el cache de la página

Muy buenas:
Tengo esto el empezar una página de acceso por contraseña (acceso.php):

<?
// No almacenar en el cache del navegador esta página.
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Expira en fecha pasada
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // Siempre página modificada
header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache"); // HTTP/1.0

despues viene un "include" que define variables y el resto del script, donde se pide el usuario y la contraseña, y si todo va bien termina abriendo la pagina restingida, por ejemplo entrada.php.

Hasta aqui todo va bien, ya que intento ver codigo fuente y no aparece, ni tampoco esta en los "archivos temporales de internet", pero otra cosa es intentar ir a entrada.php directamente, ya que en este caso vuelve a acceso.php, es decir, al principio
<?
// No almacenar en el cache del navegador esta página.
header("Expires: Mon, 26 Jul 1997 05:00:00 .......etc

y en este caso, si que al dar a ver codigo fuente este aparece perfectamente.
¿Alguien sabe porque ocurre esto y la forma de evitarlo.?

Las páginas restringidas comienzan todas de esta forma:
<?php
session_start();
require 'segurini.php'; (este contiene el valor de la variable purcua)
if ($_SESSION["valido"] != $purcua) {
header("Location: acceso.php?error_login=6");
exit();
}

Todo esto esta tomado, como ya os habreis imaginado, del maravilloso script de Cluster, al cual doy gracias nuevamente por haberlo publicado, ya que con el algunos hemos aprendido bastante.

Saludos y muchas gracias
  #2 (permalink)  
Antiguo 21/02/2006, 11:35
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
El "Código fuente" generado por tu script PHP siempre lo veras .. me refiero a esa página "HTML" como salida que entregará tu script. En ningún momento el código PHP.

Las cabeceras HTTP sólo dicen a tu navegador (o proxy si pasas por uno) .. "por favor no hagas caché de esta página".

De todas formas . .en mi script "Autentificator" incluí todas esas cabeceras HTTP, pero con el tiempo también ví que PHP gestiona el caché si usas sesiones con su función: session_cache_limiter() y que por defecto está a "nocache" (si no defines otro por dicha función o cambiando tu php.ini).

Ahora .. en tu caso concreto .. si dices que en un script usas esas cabeceras de "nocaché" y todo anda como necesitas ... ¿por qué no las usas en todos los scripts que intervengan en el proceso? es decir .. la definición de esas cabeceras debería estar también en entrada.php ...

Un saludo,
  #3 (permalink)  
Antiguo 22/02/2006, 06:12
 
Fecha de Ingreso: diciembre-2004
Mensajes: 98
Antigüedad: 13 años
Puntos: 0
De acuerdo Siempre se aprende

Muchas gracias por tu respuesta, Cluster, lo que ocurria para que me pasara eso es que la página de acceso la abro en una nueva ventana (about blank) y en ie6 ocurre todo lo que te dije, pero en el momento que no se haga así ya no ocurre y lo mismo pasa con firefox y los demas, que se ve todo el código htm, pero no así el php, por eso intento pasar las funciones de javascript a php pero no siempre me sale.
Saludos y gracias de nuevo
  #4 (permalink)  
Antiguo 22/02/2006, 06:20
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pero .. debes también entender que "javascript" está diseñado para controlar acciones en el "navegador" (cliente) .. así que no se trata de "pasar" a PHP esas funciones javascript, por qué si así las usas en javascript .. no encontraras "equivalente" en PHP (salvo excepciones tipo: obtener datos del "cliente" .. que se puede hacer a cierto nivel entre PHP y Javascirpt por igual .. ).

Un saludo,
  #5 (permalink)  
Antiguo 22/02/2006, 07:48
 
Fecha de Ingreso: diciembre-2004
Mensajes: 98
Antigüedad: 13 años
Puntos: 0
Hola de nuevo Cluster.
Hablando de no encontrar equivalente entre javascript y php, ¿Has visto una preguntita que hice, creo ayer, sobre algo parecido?.
Hechale un vistazo y comentamos, creo que se llamaba como se pueden cargar variables php en un campo de un formulario, o algo por el estilo, la idea esta basada en no introducir la pasword por teclado, sinó a traves de ratón, para evitar los programas detectores de pulsaciones del teclado
Saludos nuevamente.
  #6 (permalink)  
Antiguo 22/02/2006, 07:52
 
Fecha de Ingreso: diciembre-2004
Mensajes: 98
Antigüedad: 13 años
Puntos: 0
Perdona Cluster se me pasó ponerte el link.
http://www.forosdelweb.com/f18/como-cargar-variable-php-campo-formulario-372779/
Saludos
  #7 (permalink)  
Antiguo 22/02/2006, 07:54
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En ese caso .. vía javascript tu rutina dejará el dato que corresponda en el campo que sea y al "enviar" tu formulario así PHP recibirá esa variable como otra cualquiera.

No hay otra forma .. Tu hablas de acciones que se realizan en la parte "cliente" (en tu navegador) cuando PHP ya entregó la página al cliente.

Y por lo mismo .. para hacer llegar a tu scritp PHP tu valor .. lo haces "enviando" ese formulario .. o generando un link que llame a un script PHP donde le pasas las variabels en el URL .. etc.

Un saludo,
  #8 (permalink)  
Antiguo 22/02/2006, 08:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por jomoli
Perdona Cluster se me pasó ponerte el link.
http://www.forosdelweb.com/showthread.php?t=372779
Saludos
Ya hice mis comentarios al respecto.

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:26.