Ver Mensaje Individual
  #11 (permalink)  
Antiguo 01/03/2004, 14:33
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Bueno .. el mensaje es normal .. Eso es ocasionado por la configuración de sesiones. Por defecto PHP usa cabeceras "no-cachè" para las sesiones. Eso lo define: session.cache_expire en tu php.ini (por defecto dice "no cache" o similar).


Tienes varias soluciones:

Rápidas pero no "ortodoxas"
1) Usa método GET en lugar de POST en tus formularios
2) No forzar "no caché" en session.cache_limiter (se puede hacer con funciones como session_cache_limiter() y/o por ini_set() ademas de con .htaccess).

Lógica:

Tu formulario envia datos a "procesar.php" .. este valida .. si hay algún error el mensaje de error NO se presenta en procesar.php sino que se devuelve al formulario automáticamente y ahí es donde se debe mostrar el mensaje de error (o bien en una página intermedia pero nunca donde envies tu formulario en el action= ... del form)

Para la redirección automática puedes usar:
header("Location: formulario.php");
exit;

Y si hay error .. puedes usar una variable de control tipo:
Código PHP:
header("Location: formulario.php?cod=error");
exit; 
y en tu formulario .. esa variable "cod" la usas como control para mostrar o no el mensaje de error correspondiente:

Código PHP:
if (isset($_GET['cod'])){
    if (
$_GET['cod']=="error"){
       echo 
"hay errores en el formulario .. reviselos";
    }

Usa más variables .. o códigos numericos/etc . para identificar el error concreto que se produció (ejemplo: tal campo no tiene valor ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.