Foros del Web » Programando para Internet » PHP »

Problema con el refresh o F5

Estas en el tema de Problema con el refresh o F5 en el foro de PHP en Foros del Web. Vereis tengo un problemilla a ver si se puede solucionar. Estoy haciendo una página que está orientada a eventos. Dependiendo de qué evento se produzca ...
  #1 (permalink)  
Antiguo 22/07/2005, 02:53
 
Fecha de Ingreso: julio-2005
Mensajes: 3
Antigüedad: 12 años, 4 meses
Puntos: 0
Problema con el refresh o F5

Vereis tengo un problemilla a ver si se puede solucionar. Estoy haciendo una página que está orientada a eventos. Dependiendo de qué evento se produzca pues hace una u otra cosa. El caso es que tengo un formulario, para insertar un nombre y un comentario y un botón de guardar, al guardar me inserta esos valores en la base de datos y luego me los muestra por pantalla. El problema es que nada más haber pulsado el botón (se me guarda en la BD), acto seguido si hago un refresh o F5, como el último evento ha sido el de enviar el formulario, me sale una ventanita que me dice hay datos en el formulario a enviar, si pulso aceptar esos mismos datos se me vuelven a grabar, por lo que se me graban dos veces seguidas y así sucesivamente si vuelvo a pulsar F5, se me graba todo el rato esos mismos valores, aunque las cajas de texto estén vacías. Sigue llamando a la función e inserta de nuevo una y otra vez cada vez que doy al F5. Si el evento es otro como por ejemplo pulsar un enlace ya no pasa nada, es solo cuando el último evento es el formulario. Hay alguan manera de solucionar ésto? de que se olvide de las variables $_POST del formulario?
  #2 (permalink)  
Antiguo 22/07/2005, 03:04
 
Fecha de Ingreso: diciembre-2004
Mensajes: 207
Antigüedad: 13 años
Puntos: 0
Me parece que debes destruir en el caché los datos que estas pasando por el POST.
Prueba colocando en la cabezera de tu pagina lo siguiente:

header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

Espero te sirva, ami me funciona.
  #3 (permalink)  
Antiguo 22/07/2005, 03:16
 
Fecha de Ingreso: julio-2005
Mensajes: 3
Antigüedad: 12 años, 4 meses
Puntos: 0
Mi página principal es un fichero .php, ahí no tengo cabecera, nada de html.
  #4 (permalink)  
Antiguo 22/07/2005, 03:26
 
Fecha de Ingreso: julio-2005
Mensajes: 3
Antigüedad: 12 años, 4 meses
Puntos: 0
He probado a meterlo en el constructor de mi página principal que es paginaclases.php, pero me salen estos errores:

Warning: Cannot modify header information - headers already sent by (output started at C:\web\Harvesters\librovisitas.php:24) in C:\web\Harvesters\paginaclases.php on line 9

Warning: Cannot modify header information - headers already sent by (output started at C:\web\Harvesters\librovisitas.php:24) in C:\web\Harvesters\paginaclases.php on line 10

Warning: Cannot modify header information - headers already sent by (output started at C:\web\Harvesters\librovisitas.php:24) in C:\web\Harvesters\paginaclases.php on line 11


Lo que tengo en librovisitas.php es:
<?php


class librovisitas {

function librovisitas (&$obj_harvesters) {
$this->obj_harvesters=$obj_harvesters;
}

function foro_mensajes_leer () {
//Ejecutamos la consulta
$sql="Select * from librovisitas order by id desc";
$libro=$this->obj_harvesters->get_query($sql);

$this->obj_harvesters->smarty->assign("LIBRO",$libro);

}

}


?>
  #5 (permalink)  
Antiguo 22/07/2005, 09:15
 
Fecha de Ingreso: diciembre-2004
Mensajes: 207
Antigüedad: 13 años
Puntos: 0
Puedes ponerlo en un archivo php aparte y llamar por un include al inicio en la pagina principal.
  #6 (permalink)  
Antiguo 22/07/2005, 10:44
 
Fecha de Ingreso: diciembre-2002
Ubicación: bilbao
Mensajes: 345
Antigüedad: 15 años
Puntos: 3
o un contador, q cada vez q hace el proceso de insertar haga $valor++; y despues
if ($valor > 1) {
echo "y una mierda!";
}
else {
código meter en database
}

saludos!
__________________
aste nagusia
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 13:30.