Título: Problema con formulario de registro...
Publicado por: Maties 360 en 31 Julio 2007, 00:29 am
Buenas, estoi fabricando un formulario de registro de usuarios y tengo el problema de que cuando hago una condicional con que salte un error di esta vacio algun campo importante. Por ejemplo: registrousuarios.php <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>*LE*|| Registro Nuevo Usuario</title> </head> <body bgcolor="#000000" text="#FFFFFF"> <br><br><br /><br /><br /> <br /><br /> <br /><br /> <br /><br> <br><br> <br> <table border="0" cellpadding="0" cellspacing="0" align="center"> <form action="proces.php" method="get"> <tr><td><font color="white">Nick: </font><input type="text" name="nick">*<br></td></tr> <tr><td><br><font color="white">Contraseña: </font><input type="password" name="contrasenya">*</td></tr> <tr><td><br><font color="white">Repite la contraseña: </font><input type="password" name="re-contrasenya">*</td></tr> <tr><td><br><font color="white">Email: </font><input type="text" name="email">*</td></tr> <tr><td><br><font color="white">Fecha de nacimiento: </font> <input type="text" name="data" title="Formato: aaaa-mm-dd" maxlength="10"></td></tr> <tr><td><br><font color="white">País: </font> <select name="pais"> <option value="1">España</option> <option value="2">Portugal</option> </select>*</td></tr> <tr><td><br><input type="submit" value="Continuar" name="continuar"> <input type="reset" value="Borrar"></td></tr> </form> <tr><td><br><em>* Campo requerido</em> </table> </body> </html> proces.php <?php $nick= $_GET['nick']; $contrasenya= $_GET['contrasenya']; $recontrasenya= $_GET['re-contrasenya']; $email= $_GET['email']; $fecha= $_GET['data']; $pais= $_GET['pais']; $enviar= $_GET['continuar'];
if (isset($enviar)) { if ($contrasenya != $recontrasenya && $nick == NULL && $email == NULL) { include ('registrousuarios.php'); echo "<p align=center><font color=red><br>"."Se han detectado los siguientes errores:</font></p>". "<p align=center><font color=red>- No coinciden las contraseñas!"."<br>"."- El campo <b>Nick</b> esta vacio!"."<br>". "- El campo <b>Email</b> esta vacio!</font></p>"; } else { switch( $_GET['pais']) { case 1: include ('registrousuariosespanya.php'); break; case 2: include ('registrousuariosportugal.php'); break; }}} ?> <table border="0" cellpadding="0" cellspacing="0" align="center"> <form action="procesfinal.php" method="get"> <input type="hidden" name="nick" value="<?php echo $nick ?>" /> <input type="hidden" name="contrasenya" value="<?php echo $contrasenya ?>" /> <input type="hidden" name="re-contrasenya" value="<?php echo $recontrasenya ?>" /> <input type="hidden" name="email" value="<?php echo $email ?>" /> <input type="hidden" name="data" value="<?php echo $fecha ?>" /> <input type="hidden" name="pais" value="<?php echo $pais ?>" /> </form> </table> Y el problema esta en que aqui solo me sale el error cuando los tres estan vacios o las pass no coinciden. Y si quiero hacerlo por separado voy poniendo includes y me sale repetido el formulario uno debajo del otro, Agradeceria mucho si alguien me solucionara el problema^^ Gracias y Salu2
Título: Re: Problema con formulario de registro...
Publicado por: Sanjuu en 31 Julio 2007, 10:57 am
Si pones un and (&&) las tres se tienen que cumplir para que pase (producto lógico) Tienes que filtrarlo por separado, lo que no se es para que quieres tanto include, simplemente haz una vuelta atrás al formulario anterior o mete el campo que falte según el error. Por ejemplo: if (empty($_GET['email'])){ echo '<input type="text" name="email" />'; // Los demás campos como hidden };
Pero sigo pensando que el volver al form anterior es tremendamente más facil
Título: Re: Problema con formulario de registro...
Publicado por: Maties 360 en 31 Julio 2007, 16:04 pm
Y como podria hacer esto de la vuelta atras?¿? Y otra duda.. como hago para poner en color cuando inserto un codigo en el foro?¿?
Gracias y Salu2
Título: Re: Problema con formulario de registro...
Publicado por: Sanjuu en 31 Julio 2007, 16:50 pm
Y como podria hacer esto de la vuelta atras?¿?
Con un control de javascript te bastaría, un enlace del tipo <a href="javascript:history.back();">volver</a> Si quieres hacerlo mejor aún guarda variables de sesión y recarga la misma página. Y otra duda.. como hago para poner en color cuando inserto un codigo en el foro?¿?
Es facil [ code=php]codigo aqui[/ code] Tienes una lista desplegable a la derecha, encima de los iconos que pone geshi
Título: Re: Problema con formulario de registro...
Publicado por: Maties 360 en 31 Julio 2007, 19:25 pm
Buenas, ya esta solucionado^^, lo he solucionado de la siguiente manera: proces.php<?php $nick= $_GET['nick']; $contrasenya= $_GET['contrasenya']; $recontrasenya= $_GET['re-contrasenya']; $email= $_GET['email']; $fecha= $_GET['data']; $pais= $_GET['pais']; $enviar= $_GET['continuar']; if ($contrasenya != $recontrasenya || empty($nick) || empty($email)) { echo "<br><br><br><br> <br><br><br><br><br><br> <br><br><br><br>". "<p align=center><font color=red>Se han detectado los siguientes errores:"."<br></font></p>"; } if ($contrasenya != $recontrasenya) { echo "<p align=center><font color=red>- No coinciden las contraseñas!</font></p>"; } echo "<p align=center><font color=red>- El campo <b>Nick</b> esta vacio!</font></p>"; } echo "<p align=center><font color=red>- El campo <b>Email</b> esta vacio!</font></p>"; } if ($contrasenya != $recontrasenya || empty($nick) || empty($email)) { echo "<p align=center><a href= registrousuarios.php><font color=white>Pulse aqui para volver al formulario</font></a></p>"; } else { switch( $_GET['pais']) { case 1: include ('registrousuariosespanya.php'); break; case 2: include ('registrousuariosportugal.php'); break; }}} ?> <body bgcolor="#000000"> <table border="0" cellpadding="0" cellspacing="0" align="center"> <form action="procesfinal.php" method="get"> <input type="hidden" name="nick" value="<?php echo $nick ?>" /> <input type="hidden" name="contrasenya" value="<?php echo $contrasenya ?>" /> <input type="hidden" name="re-contrasenya" value="<?php echo $recontrasenya ?>" /> <input type="hidden" name="email" value="<?php echo $email ?>" /> <input type="hidden" name="data" value="<?php echo $fecha ?>" /> <input type="hidden" name="pais" value="<?php echo $pais ?>" /> </form> </table> </body>
Ahora queria preguntarte sobre lo que pregunte de lo que no se pudieran repetir los registros, con una consulta como esta por ejemplo: SELECT Nick, COUNT(*) FROM usuaris GROUP BY Nick
Pero lo intente y no me funcionó... No se como ponerlo para que me salte un error si esta repetido el nick. Gracias y Salu2
Título: Re: Problema con formulario de registro...
Publicado por: Sanjuu en 1 Agosto 2007, 10:13 am
Ahora queria preguntarte sobre lo que pregunte de lo que no se pudieran repetir los registros, con una consulta como esta por ejemplo: SELECT Nick, COUNT(*) FROM usuaris GROUP BY Nick
Pero lo intente y no me funcionó... No se como ponerlo para que me salte un error si esta repetido el nick. Gracias y Salu2 Eso es incorrecto, no tengo a mano ningún DBMS para probarlo, una solución más facil: $sql="SELECT nick FROM usuaris WHERE nick='$nick'"; //Nick valido }else{ //nick repetido };
Título: Re: Problema con formulario de registro...
Publicado por: Maties 360 en 1 Agosto 2007, 17:25 pm
Muchas gracias por tu aporte^^
Esto funciona perfectamente
Gracias y Salu2
|