Ver Mensaje Individual
  #13 (permalink)  
Antiguo 09/03/2007, 19:33
Avatar de TheViejo
TheViejo
 
Fecha de Ingreso: marzo-2007
Ubicación: Delante de mi Vetusto PC.
Mensajes: 29
Antigüedad: 17 años, 1 mes
Puntos: 3
Re: Como Vaciar $_post Al Recargar Pagina Utilizando La Misma Pagina Para El Script

Hola mcapvj, he modificado tu código con algunas cosillas para que funcione como tu quieres, te comento lo que he realizado es añadir un campo oculto en el formulario llamado id y con un value único( md5(time()) ), para así poder identificarlo mejor. Cuando se muestra la pagina se genera un id único para el formulario cuando, lo rellenas y pulsas enviar ese id único se almacena en la sesión de usuario y de este modo si el usuario hace una recarga de la web nuestro script comprueba el id único con lo almacenado en la sesión y si este valor es idéntico al almacenado no procesa el $_POST. Quizas me este liando un poco, en el código que te pongo se ve mejor.

Código PHP:
<?
session_start
();
?>
<html>
<head>
<title>PRUEBA</title>
<?
// Esto para evitar el Notice por Undefined variable
if (!isset($_POST["id"])) $_POST["id"] = false;
if (!isset(
$_POST["textfield"])) $_POST["textfield"] = false;
if (!isset(
$_POST["textfield2"])) $_POST["textfield2"] = false;
if (!isset(
$_POST["enviar"])) $_POST["enviar"] = false;

$v1=False;
$v2=False;
$v3=False;

$id=$_POST["id"];

if(
session_register('id_formulario'))
 {
  if (
$_SESSION["id_formulario"] != $id)
   {
    
$v1=$_POST["textfield"];
    
$v2=$_POST["textfield2"];
    
$v3=$_POST["enviar"];
    
$_SESSION["id_formulario"] = $id
   }
 }
else
 {
  
$v1=$_POST["textfield"];
  
$v2=$_POST["textfield2"];
  
$v3=$_POST["enviar"];
  
$_SESSION["id_formulario"] = $id
 }



echo 
"VALOR DE CAMPO 1 ".$v1."<br>";
echo 
"VALOR DE CAMPO 2 ".$v2."<br>";
echo 
"VALOR DE BOTON ".$v3."<br>";
// PROBANDO SI SE BLANQUEA ASIGNANDOLOS CON NULO Y NADA
$_POST["textfield"]="";
$_POST["textfield2"]="";
$_POST["enviar"]="";
// PROBANDO SI SE BLANQUEA CON unset A VARIABLES AUXILIARES Y NADA
unset($v1);
unset(
$v2);
unset(
$v3);
//PROBANDO SI BLANQUEA CON unset Y NADA
unset($_POST["textfield"]);
unset(
$_POST["textfield2"]);
unset(
$_POST["enviar"]);
//PROBANDO ASIGNANDO NULO A VARIABLES AUXILIARES Y NADA
$v1="";
$v2="";
$v3="";
?>

<body>
<form name="form1" method="post" action="prueba.php">
<p>
<input type="text" name="textfield">
</p>
<p>
<input type="text" name="textfield2">
<input type="hidden" name="id" value="<? echo md5(time()); ?>">
</p>
<p>
<input type="submit" name="enviar" value="Enviar">
</p>
</form>
<?
// AL ENVIAR EL FORMULARIO SI SE BLANQUEAN ESTOS VALORES
// EL PROBLEMA ES CUANDO SE RECARGA LA PAGINA CON F5 O EL ICONO DE RECARGA DEL NAVEGADOR
echo "VALOR DE CAMPO 1 ".$v1."<br>";
echo 
"VALOR DE CAMPO 2 ".$v2."<br>";
echo 
"VALOR DE BOTON ".$v3."<br>";
?>
</body>
</html>
Espero que te sirva, si necesitas algo más dame un toque.
Un saludo.