Foros del Web » Programando para Internet » PHP »

Al refrescar pagina se vuelven a cargar las variables $_POST

Estas en el tema de Al refrescar pagina se vuelven a cargar las variables $_POST en el foro de PHP en Foros del Web. Hola!! Tengo un problemilla y esque he hecho una aplicacion php en una sola pagina.php; dependiendo del formulario que se envie; se llama a ella ...
  #1 (permalink)  
Antiguo 04/09/2008, 04:37
 
Fecha de Ingreso: octubre-2007
Mensajes: 36
Antigüedad: 16 años, 6 meses
Puntos: 0
Al refrescar pagina se vuelven a cargar las variables $_POST

Hola!!

Tengo un problemilla y esque he hecho una aplicacion php en una sola pagina.php; dependiendo del formulario que se envie; se llama a ella misma y hace una cosa u otra.

El problema esque si le doy a un formulario, y luego a actualizar página, al refrescarse me vuelve a hacer lo mismo que como si le hubiera dado al formulario. Logicamente, la variables $_POST siguen alli, y al refrescar me hace la misma acción que he mencionado.

Que puedo hacer para resolverlo? He intentado el isset y el unset pr creo k no funcionan...

Un saludo!
  #2 (permalink)  
Antiguo 04/09/2008, 05:12
Avatar de Nlrvana  
Fecha de Ingreso: marzo-2008
Mensajes: 36
Antigüedad: 16 años
Puntos: 0
Respuesta: Al refrescar pagina se vuelven a cargar las variables $_POST

Si la página se llama a sí misma y das a actualizar la página, efectivamente las variables permanecen.

La solución es que efectúes el procesamiento en otra página. Luego si quieres puedes retornar a la misma página o a otra, pero ya no traerás las variables salvo que desees reenvíarlas en la URL.

Lee este post mío para más información:

http://www.forosdelweb.com/f18/lazar-url-por-back-end-621433/
  #3 (permalink)  
Antiguo 04/09/2008, 05:25
 
Fecha de Ingreso: octubre-2007
Mensajes: 36
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: Al refrescar pagina se vuelven a cargar las variables $_POST

Gracias, pr alguna manera habra de detectar si esas variables ya se han pasado anteriormente, o no se, borrarlas, no?

Siempre hay algo...
  #4 (permalink)  
Antiguo 04/09/2008, 06:25
 
Fecha de Ingreso: agosto-2008
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 7
Respuesta: Al refrescar pagina se vuelven a cargar las variables $_POST

si realizas con ellas una consulta a una base de datos de tipo inserción o actualización, es comprobar si esa operación fue realizada con anterioridad, si es así que no las trate.
  #5 (permalink)  
Antiguo 04/09/2008, 08:16
Avatar de leeja  
Fecha de Ingreso: octubre-2005
Mensajes: 82
Antigüedad: 18 años, 5 meses
Puntos: 0
Respuesta: Al refrescar pagina se vuelven a cargar las variables $_POST

Cita:
Iniciado por ilie Ver Mensaje
si realizas con ellas una consulta a una base de datos de tipo inserción o actualización, es comprobar si esa operación fue realizada con anterioridad, si es así que no las trate.
Como puedes comprobar esto?
__________________
www.datasegura.net
  #6 (permalink)  
Antiguo 04/09/2008, 09:43
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Al refrescar pagina se vuelven a cargar las variables $_POST

Hay varias formas, pero lo mejor y más facil es redireccionar usando header() al final de tu proceso de inserción para borrar las variables por POST.

Saludos
  #7 (permalink)  
Antiguo 04/09/2008, 10:28
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 8 meses
Puntos: 638
Respuesta: Al refrescar pagina se vuelven a cargar las variables $_POST

Yo probe asi y me funciono:

tenemos una pagina con el formulario
Código PHP:
<form action="proseso.php" method="post">
    
nombre:<input type="text" name="nombre"><br />
    
numero:<input type="text" name="numero"><br />
    <
input type="submit" name="enviar" value="enviar">
</
form
y otra donde hacemos el prosesamiento de los datos
Código PHP:
<?php
if(isset($_POST['enviar']) && $_POST['enviar'] == 'enviar'){
    
$nombre $_POST['nombre'];
    
$numero $_POST['numero'];

    
/* proseso de los datos
    echo $nombre;
    echo $numero;
    ***********************/

    
header('Location: datos.php');
}
?>
lo que pasa es que se deberia buscar la forma de hace una funcion o algo, para que antes de ir a proseso.php se valide el formulario y no enviar campos vacios o con datos incorrectos

saludos y suerte
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #8 (permalink)  
Antiguo 04/09/2008, 15:14
 
Fecha de Ingreso: junio-2003
Ubicación: Chile, Santiago
Mensajes: 82
Antigüedad: 20 años, 10 meses
Puntos: 0
Respuesta: Al refrescar pagina se vuelven a cargar las variables $_POST

Estimado
Yo he resuelto este tema con ajax-prototype donde el post es redireccionado a un div por loq ue si cargas la página completa no se vuelven a postear los datos...

averigua de esta tecnología , es bastante buena....

Saludos...
__________________
www.buscorepuestos.cl
Compra y Venta de Repuestos, Accesorios en chile
www.arriendojuegos.cl
Arriendo de juegos inflables para eventos y cumpleaños
  #9 (permalink)  
Antiguo 04/09/2008, 16:41
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 5 meses
Puntos: 890
Respuesta: Al refrescar pagina se vuelven a cargar las variables $_POST

Y le das valor nulo $variable = ""; una vez que las hayas utilizado, no se si funcionara pero es algo que se me ocurrio.
__________________
Drupal Argentina
  #10 (permalink)  
Antiguo 04/09/2008, 19:52
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: Al refrescar pagina se vuelven a cargar las variables $_POST

Hola...

La manera como lo he hecho, todo en la misma página, hablemos de algo.php:

En el form hay un campo hidden que actúa como bandera:

Código HTML:
<form action="" method="post"> 
<input type="hidden" name="gua" value="gua" />
.
.
.
</form> 

Esa bandera la pregunto al inicio del archivo, y cuando termino el proceso (los puntos suspensivos que ven), realizo una recarga de la página y aplico un exit:
Código PHP:
<?php
if($_POST['gua']) 
{
...
?>
<META HTTP-EQUIV="Refresh" CONTENT="0; URL=?">
<?php
exit;
}
?>
Espero te sirva

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
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 23:22.