Foros del Web » Programando para Internet » PHP »

Redirigir al formulario automaticamente

Estas en el tema de Redirigir al formulario automaticamente en el foro de PHP en Foros del Web. Estoy haciendo un formulario, con los campos nombre y contraseña. Me gustaría que, en el tratamiento de los datos del formulario, si algo está mal, ...
  #1 (permalink)  
Antiguo 08/03/2007, 05:25
 
Fecha de Ingreso: marzo-2007
Ubicación: España
Mensajes: 133
Antigüedad: 17 años, 1 mes
Puntos: 0
Redirigir al formulario automaticamente

Estoy haciendo un formulario, con los campos nombre y contraseña. Me gustaría que, en el tratamiento de los datos del formulario, si algo está mal, enviar al usuario a la página del formulario directamente para que vuelva a completar los datos.
  #2 (permalink)  
Antiguo 08/03/2007, 07:32
 
Fecha de Ingreso: septiembre-2006
Mensajes: 13
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Redirigir al formulario automaticamente

A mi también me interesaría saberlo. Si encuentro algo antes de que alguien escriba te aviso yo.
  #3 (permalink)  
Antiguo 08/03/2007, 07:40
Avatar de cala932  
Fecha de Ingreso: septiembre-2006
Ubicación: San Juan-Argentina
Mensajes: 902
Antigüedad: 17 años, 7 meses
Puntos: 9
Re: Redirigir al formulario automaticamente

En la pagina donde controlas los datos enviados por el formularios puedes incluir un header para que redireccione automaticamente al formulario asi:
Código PHP:
if(los datos no corresponden)
{
header("Location: http://".$_SERVER["HTTP_HOST"]."/formulario.php");  

Espero que te sirva. Saludos
__________________
->Aprender es un proceso que incluye el error..
  #4 (permalink)  
Antiguo 08/03/2007, 07:45
 
Fecha de Ingreso: septiembre-2006
Mensajes: 13
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Redirigir al formulario automaticamente

Yo habia estado usando lo del header pero me da el siguiente error

Cannot modify header information - headers already sent by (output started at C:\Connections\config.php:2) in C:\validar.php on line 10

El codigo de validar esta asi:
<?php
session_start();
include('Connections/config.php'); //incluimos el config.php que contiene los datos de la conexión a la db
$user = ($_POST["usuario"]);
$pass = ($_POST["pass"]);
$pass1 = ($_POST["pass1"]);
//Comprobamos que los campos usuario, pass y pass1 se han rellenado en el form de registrar.php, sino volvemos al form
if(($user == NULL) or ($pass == NULL) or ($pass1 == NULL) )
{
header("Location: registrar.php"); //enviamos al form de registro que esta en registrar.php
}
else
?>
  #5 (permalink)  
Antiguo 12/03/2007, 03:30
 
Fecha de Ingreso: marzo-2007
Ubicación: España
Mensajes: 133
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Redirigir al formulario automaticamente

Lo he probado y sí que me funciona. Ahora bien, si quisiera incluir en la página del formulario un mensaje tipo "error en los datos" tendría que copiar la misma página del formulario e incluir el mensajito, no? Con lo que lo del header no serviría....

Tecorbera, en vez de poner header("Location: registrar.php"); pon lo que nos ha comentado cala932 sólo cambiando el nombre de tu pagina
  #6 (permalink)  
Antiguo 12/03/2007, 09:58
Avatar de cala932  
Fecha de Ingreso: septiembre-2006
Ubicación: San Juan-Argentina
Mensajes: 902
Antigüedad: 17 años, 7 meses
Puntos: 9
Re: Redirigir al formulario automaticamente

hola eli. Te mando un formulario, que de seguro es lo que buscas:
Código:
<form action="http://direccion de tu pagina donde valildas los datos.php" method="post">
<table align="center" width="60%" cellspacing="2" cellpadding="2" bgcolor="#DEDEDE" border="0">
<tr>
   <td colspan="2" align="center"
    <? if ($_GET["errorusuario"]=="si"){?>
    bgcolor=red> <span style="color:ffffff"><font size="1"> Datos Incorrectos</font></span>
    <?}else {?>bgcolor=#cccccc> <font size="1">Ingrese Clave de Acceso </font><?}?></td>
</tr>
<tr>
   <td align="right"><font size="1"> Usuario </font> </td>
   <td>:<input type="text" name="usuario" size="20" maxlength="20"> </td>
</tr>
   <td align="right"><font size="1"> Contraseña </font> </td>
   <td>:<input type="password" name="pass" size="20"> </td>
</tr>

<tr>
<td colspan="2" align="right"> <input type="submit" onclick="return valida(this.form)" value="Entrar"> </td>
</tr>

</table>
</form>
Y en la pagina donde validas los datos introducidos, en caso de ser incorrecto, colocalo asi:
Código PHP:
header("Location: http://direccion completa de tu pagina a donde esta el formulario.php?errorusuario=si"); 
Reemplaza las variables nombre de usuario y contraseña con las tuyas. Saludos
__________________
->Aprender es un proceso que incluye el error..
  #7 (permalink)  
Antiguo 13/03/2007, 09:55
 
Fecha de Ingreso: marzo-2007
Ubicación: España
Mensajes: 133
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Redirigir al formulario automaticamente

mil gracias cala932, es exactamente lo que busco.
Ahora quiero controlar mas errores, por ejemplo que el usuario no exista, o que la contraseña sea erronea, me imagino que asignando un valor u otro a la variable "errorusuario", podre controlar los errores, no? por ejemplo "errorusuario=pswd", y luego desde el formulario capturarlo...

P.d. estoy empezando.. por si no se había notado.

Última edición por Elisa85; 13/03/2007 a las 10:40
  #8 (permalink)  
Antiguo 13/03/2007, 10:19
 
Fecha de Ingreso: marzo-2006
Mensajes: 194
Antigüedad: 18 años, 1 mes
Puntos: 1
Re: Redirigir al formulario automaticamente

yo lo hago asi y me funciona perfecto, me despliega un alert cuando el usuario incumple alguna regla de validacion, el srcipt es:
Código PHP:
<script language="JavaScript">


function 
validar(formulario)
{
   
  if (
formulario.seudo.value.length<3)
    {
      
alert("Tu ID esta vacio o es inferior a 3 caracteres, intenta nuevamente.");
      
formulario.seudo.focus();
      return(
false);
    }    
   if (
formulario.clave_user.value.length<3)
    {
      
alert("Tu CLAVE esta vacia o es inferior a 3 caracteres, intenta nuevamente.");
      
formulario.clave_user.focus();
      return(
false);
    }    
  }
</script> 
y el codigo del formulario es
Código PHP:
  <form name="form1" method="post" onSubmit="return validar(this)" action="grabar.php">
   <
table width="800" border="0">
  <
tr bgcolor="99CCFF">
    <
td height="42" colspan="2"><span class="Estilo33">Nickname (identificador):</span></td>
    <
td width="146"><input name="seudo" type="text" size="10"></td>
    <
td colspan="3</td>
    </tr>
  <tr bgcolor="
99CCFF">
    <td height="
42" colspan="2"><span class="Estilo33">Clave:</span></td>
    <td bgcolor="
99CCFF"><input name="clave_user" type="password" size="8"></td>
        </tr>
</table> 
  #9 (permalink)  
Antiguo 13/03/2007, 10:39
Avatar de cala932  
Fecha de Ingreso: septiembre-2006
Ubicación: San Juan-Argentina
Mensajes: 902
Antigüedad: 17 años, 7 meses
Puntos: 9
Re: Redirigir al formulario automaticamente

Cita:
Iniciado por Elisa85 Ver Mensaje
mil gracias cala932, es exactamente lo que busco.
Ahora quiero controlar mas errores, por ejemplo que el usuario no exista, o que la contraseña sea erronea, me imagino que asignando un valor u otro a la variable "errorusuario", podre controlar los errores, no? por ejemplo "errorusuario=pswd", y luego desde el formulario capturarlo...

Código PHP:
<form action="login.php" method="post">
<table align="center" width="30%" cellspacing="2" cellpadding="2" bgcolor="#FFFF99" border="0">
<tr>
   <td colspan="2" align="center"
    <? if ($_GET["err"]=="incomp"){?>
    bgcolor=red> <span style="color:FFFFFF"><font size="2"> Falten Dades!</font></span><br>
    <? if ($_GET["err"]=="nouser"){?>
    bgcolor=red> <span style="color:FFFFFF"><font size="2"> Usuari no existeix</font></span><br>    
    <? }else {?> 
    bgcolor=#ffcc33> <font size="2">Introdueix les dades </font><?}?></td>
</tr>
<tr>
   <td width="53%" align="right"><font size="2"> Usuari (Dni) </font> </td>
   <td width="47%"><input type="text" name="dni" size="8" maxlength="8"> </td>
</tr>
   <td align="right"><font size="2"> Contrasenya (data de naixement) </font> </td>
   <td><input type="password" name="psw" size="8"> </td>
</tr>

<tr>
<td colspan="2" align="right"> <input name="submit" type="submit" onClick="return valida(this.form)" value="Entrar"> </td>
</tr>
</table>
</form>
He añadido las lineas 6 y 7, pero me da un error de final de fichero.

P.d. estoy empezando.. por si no se había notado.

Eli, para comprobar la existencia del usuario realizas una consulta con tu BD, y verificas si el usuario existe o no y si la contraseñas es valida, lo direccionas a donde tu quieras sino lo devuelves a la pagina de autentificacion , seria algo mas o menos asi:
Código PHP:
<?//conecto con la base
$iplocal=$_SERVER["HTTP_HOST"];
$conn=mysql_connect("$iplocal","$usuario","$pass");
if(
$conn){//selecciono la base de datos
mysql_select_db("tu base de datos",$conn);
//buscas el usuario
$ssql="SELECT * FROM `tu tabla` WHERE 1 `campo de tu tabla` LIKE '$usuario'";//ejecuto sentencia
$rs=mysql_query($ssql,$conn);//usuario y contraseña validos //defino sesion y guardo datos
session_start();
$autentificado="SI";
session_register("autentificado","usuario","pass");
header("Location: http://".$_SERVER["HTTP_HOST"]."/pagina de bienvenida.php");  
}
else{
//si no existe lo mando otra vez al loggin
header("Location: http://".$_SERVER["HTTP_HOST"]."pagina de autentificacion.php?errorusuario=si");
}
mysql_free_result($rs);
mysql_close($conn);
?>
__________________
->Aprender es un proceso que incluye el error..
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 17:41.