Foros del Web » Programando para Internet » PHP »

Como redireccionar!!

Estas en el tema de Como redireccionar!! en el foro de PHP en Foros del Web. Holas tengo un pequeño problema...lo q me pasa q es tengo una formulario con unos campos y cuando le doy a un boton llamo a ...
  #1 (permalink)  
Antiguo 26/06/2004, 09:46
 
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona
Mensajes: 200
Antigüedad: 13 años, 7 meses
Puntos: 0
Exclamación Como redireccionar!!

Holas

tengo un pequeño problema...lo q me pasa q es tengo una formulario con unos campos y cuando le doy a un boton llamo a una pagina q me comprueva si los campos estan vacios, entonces si estan vacios emito unos mensajes y cuando termina me queda la pagina en blanco...
quiero q cuando termine de emitir los mensajes me redireccione al formulario...

para redireccionar utilizo el header pero si antes hay un echo no funciona...

este es una parte del codigo:

<?
include("conex.phtml");
$link=Conectarse();
$result=mysql_query("SELECT * FROM usuarios WHERE usuari='$login'",$link);
//recogemos los valores de los campos login,pass1,pass2 para saber si estas vacios.
$login=$_POST['login'];
$pass1=$_POST['pass1'];
$pass2=$_POST['pass2'];
//comprobamos si los campos estan vacios, de ser asi emitimos un mensaje de alerta
$mensaje = "";
if ($login == "")
$mensaje .= '<h1><script name="accion">alert("El campo Login está vacío. Debes rellenarlo") </script></h1><br>';
if ($pass1 == "")
$mensaje .= '<h1><script name="accion">alert("El campo Contraseña está vacío. Debes rellenarlo") </script></h1><br>';
if ($pass2 == "")
$mensaje .= '<h1><script name="accion">alert("El campo Repetir contraseña está vacío. Debes rellenarlo") </script></h1><br>';
if($mensaje != "")
{
echo $mensaje;
//echo'<center><h4>Para volver a intentarlo clika <a href="formulario.htm">aqui </a></h4></center>';
header("location: formulario.htm");
}
else
{ tal y tal......}
?>

si me podeis ayudar muchas gracias....:D

Saludos

Última edición por fido85; 26/06/2004 a las 09:47
  #2 (permalink)  
Antiguo 26/06/2004, 10:52
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 13 años, 6 meses
Puntos: 2
yo haría esto

if($mensaje != "")
{?>
<script>
self.location.href="formulario.htm";
</script>
<?}
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #3 (permalink)  
Antiguo 26/06/2004, 11:10
 
Fecha de Ingreso: mayo-2004
Ubicación: Barcelona
Mensajes: 200
Antigüedad: 13 años, 7 meses
Puntos: 0
living

Muchas gracias...lo he provado y me funciona de maravilla...

GRacias .

Saludos
  #4 (permalink)  
Antiguo 28/06/2004, 09:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Bueno .. la solución no debería ser la de usar javascript/HTML en ese contexto.

Les explico por qué NO usarlo.

Hagan la prueba. En su actual scritp .. cuando les muestre el mensaje .. recarguen la página .. El código se ejecutará nuevamente y se solicitará el envio nuevamente de las variables del formulario. Si el proceso que se ejecutó antes del mensaje fuese el de insertar esos datos en una BD .. enviar un e-mail con esos datos ..etc. El proceso se repetirá N veces como ganas de recargar la página tenga el usuario duplicando registros en tus BD, enviando e-mails repetidos .. etc.

La solución sería la de -separar- el código PHP de la presentación de mensajes de error en "peticiones" al servidor diferentes.

Quedando algo tipo:

Código PHP:
<?
// proceso de validación
// si hay error:
header ("Location: mensajes.php?error=1");
exit;

// etc validaciones NADA DE HTML aquí ..
?>
y en mensajes.php (que podría ser perfectametne este mismo script que valida/presentea el formulario .. etc pero siempre con una recarga de página y pasando com parámetro una variable que identifique que error sucedió:

Código PHP:
<?
if ($_GET['error'] ==1){
echo 
"Se produjo un error de tal tipo en tal cosa";
}

// resto de formulario .. o link hacia el formulario si quieres presentar los mensajes de error en página separada ..
?>
Si dices que "así" pierdes los valores del formulario que se pusieron .. sólo tienes que propagar el URL (junto a esa variable "error") el resto de variables que le enviastes de tu formulario para luego componer los "value" de esos campos input de formulario (o usando sesiones/cookies para propagar estas variables).

Un saludo,
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 22:43.