Foros del Web » Programando para Internet » PHP »

regresar al form sin borrar datos previos

Estas en el tema de regresar al form sin borrar datos previos en el foro de PHP en Foros del Web. hola que tal, mi pregunta es: como puedo hacer para que cuando envie un formulario y éste me mande a una pagina de error, al ...
  #1 (permalink)  
Antiguo 30/01/2008, 16:04
 
Fecha de Ingreso: agosto-2007
Mensajes: 123
Antigüedad: 16 años, 7 meses
Puntos: 0
regresar al form sin borrar datos previos

hola que tal, mi pregunta es: como puedo hacer para que cuando envie un formulario y éste me mande a una pagina de error, al dar clic en regresar me muestre el mismo formulario con los datos previamente introducidos??? es decir que no se borren, solo el dato que esta mal, y de esta manera evitar que el usuario vuelva a escribir todo.

gracis de antemano, espero haberme explicado
  #2 (permalink)  
Antiguo 30/01/2008, 16:43
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Re: regresar al form sin borrar datos previos

lisen: yo hago eso en la validacion de los formularios en mi directorio........

lo hago asi: del formulario los datos pasan por POST (o GET) a al validador (otro PHP) entonces desde éste último (el validador) vuelven al formulario via GET:

// formulario
$user=$_POST["user"];
$correo=$_POST["correo"];
$pass=$_POST["pass"]; // clave
// etc etc....

// valido el formulario
...
...

// SI hay un dato erroneo (falta password, etc) vuelvo al formulario:
header("location:formulario.php?user=$user&correo= $correo& .... &correo_v=$correo_v ... )"); //

// $correo_v, $user_v ...etc son variables que guardan el estado de validado o no validado (verdadero o falso) de cada campo a validar
// $correo, ....$user ...etc son los valores de cada campo

....
...
// meto todo en la base (INSERT INTO....)
__________________
Salu2!
  #3 (permalink)  
Antiguo 30/01/2008, 17:06
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: regresar al form sin borrar datos previos

Es una buena opción en determinados casos Italo, pero no cuando manejas formularios grandes o con información privada que no puede ni debe ser enviada por la URL. Lo mejor sería utilizar sesiones. Si detectas error en el formulario, guardas los datos del $_POST en una variable de sesión, y regresas al formulario. Luego, en el formulario, asignas a cada campo el valor de la variable de sesión que le corresponde, y finalmente borras la variable de sesión creada. Es un método seguro y muy fácil y práctico:

Código PHP:
//Si detectas error
if($error) {
    
//session_start();
    
$_SESSION['formu'] = $_POST;
    
header('Location...');

Y en el form:
Código PHP:
<?php
session_start
();
$dat $_SESSION['formu'];
?>
...
<input type="text" name="nombre" size="20"<?php if(!empty($dat['nombre'])) echo " value=\"$dat[nombre]\""?>>
...
Un saludo,

Última edición por okram; 03/02/2008 a las 14:42
  #4 (permalink)  
Antiguo 30/01/2008, 17:16
 
Fecha de Ingreso: agosto-2007
Mensajes: 123
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: regresar al form sin borrar datos previos

gracias a ambos por sus respuestas, las voy a probar.

saludos
  #5 (permalink)  
Antiguo 03/02/2008, 13:43
Avatar de darkgaze  
Fecha de Ingreso: febrero-2006
Ubicación: Madrid, España
Mensajes: 462
Antigüedad: 18 años, 1 mes
Puntos: 2
Re: regresar al form sin borrar datos previos

Muy buena idea. Exáctamente, por GET no es bueno enviar datos. Mi formulario también es grandísimo y es peligroso meter datos que no sea en variables de sesión...

lo que no sé es hasta qué punto son seguras las variables de sesión...por ejemplo cuando guardas que el usuario logueado es X... y lo usas en varios sitios...
__________________
Darkgaze
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.
Tema Cerrado

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 01:17.