elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Problema con formulario de registro...
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con formulario de registro...  (Leído 3,232 veces)
Maties 360

Desconectado Desconectado

Mensajes: 35


Ver Perfil
Problema con formulario de registro...
« 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

Código:
<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">&nbsp;&nbsp;&nbsp;<input type="reset" value="Borrar"></td></tr>
</form>
<tr><td><br><em>* Campo requerido</em>
</table>
</body>
</html>

proces.php

Código:
<?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


« Última modificación: 31 Julio 2007, 00:31 am por Maties 360 » En línea

Sanjuu

Desconectado Desconectado

Mensajes: 86



Ver Perfil
Re: Problema con formulario de registro...
« Respuesta #1 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:

Código
  1.  
  2. if (empty($_GET['email'])){
  3.    echo '<input type="text" name="email" />';
  4.    // Los demás campos como hidden
  5. };
  6.  

Pero sigo pensando que el volver al form anterior es tremendamente más facil


« Última modificación: 31 Julio 2007, 11:00 am por Sanjuu » En línea


Código
  1. if (pregunta->buscador()==NULL)
  2.     pregunta->formular_pregunta();
  3.  
Maties 360

Desconectado Desconectado

Mensajes: 35


Ver Perfil
Re: Problema con formulario de registro...
« Respuesta #2 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
En línea

Sanjuu

Desconectado Desconectado

Mensajes: 86



Ver Perfil
Re: Problema con formulario de registro...
« Respuesta #3 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
En línea


Código
  1. if (pregunta->buscador()==NULL)
  2.     pregunta->formular_pregunta();
  3.  
Maties 360

Desconectado Desconectado

Mensajes: 35


Ver Perfil
Re: Problema con formulario de registro...
« Respuesta #4 en: 31 Julio 2007, 19:25 pm »

Buenas, ya esta solucionado^^, lo he solucionado de la siguiente manera:

proces.php

Código
  1. <?php
  2. $nick= $_GET['nick'];
  3. $contrasenya= $_GET['contrasenya'];
  4. $recontrasenya= $_GET['re-contrasenya'];
  5. $email= $_GET['email'];
  6. $fecha= $_GET['data'];
  7. $pais= $_GET['pais'];
  8. $enviar= $_GET['continuar'];
  9. if (isset($enviar)) {
  10. if ($contrasenya != $recontrasenya || empty($nick) || empty($email)) {
  11.    echo "<br><br><br><br>
  12.       <br><br><br><br><br><br>
  13.         <br><br><br><br>".
  14. "<p align=center><font color=red>Se han detectado los siguientes errores:"."<br></font></p>";
  15. }
  16. if ($contrasenya != $recontrasenya) {
  17.    echo "<p align=center><font color=red>- No coinciden las contraseñas!</font></p>";
  18. }
  19. if (empty($nick)) {
  20.    echo "<p align=center><font color=red>- El campo <b>Nick</b> esta vacio!</font></p>";
  21. }
  22. if (empty($email)) {
  23.    echo "<p align=center><font color=red>- El campo <b>Email</b> esta vacio!</font></p>";
  24. }
  25. if ($contrasenya != $recontrasenya || empty($nick) || empty($email)) {
  26. echo "<p align=center><a href= registrousuarios.php><font color=white>Pulse aqui para volver al formulario</font></a></p>";
  27. }
  28. else {
  29. switch( $_GET['pais']) {
  30. case 1:
  31. include ('registrousuariosespanya.php');
  32. break;
  33. case 2:
  34. include ('registrousuariosportugal.php');
  35. break;
  36. }}}
  37. ?>
  38. <body bgcolor="#000000">
  39. <table border="0" cellpadding="0" cellspacing="0" align="center">
  40. <form  action="procesfinal.php" method="get">
  41. <input type="hidden" name="nick" value="<?php echo $nick ?>" />
  42. <input type="hidden" name="contrasenya" value="<?php echo $contrasenya ?>" />
  43. <input type="hidden" name="re-contrasenya" value="<?php echo $recontrasenya ?>" />
  44. <input type="hidden" name="email" value="<?php echo $email ?>" />
  45. <input type="hidden" name="data" value="<?php echo $fecha ?>" />
  46. <input type="hidden" name="pais" value="<?php echo $pais ?>" />
  47. </form>
  48. </table>
  49. </body>

Ahora queria preguntarte sobre lo que pregunte de lo que no se pudieran repetir los registros, con una consulta como esta por ejemplo:

Código
  1. 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
En línea

Sanjuu

Desconectado Desconectado

Mensajes: 86



Ver Perfil
Re: Problema con formulario de registro...
« Respuesta #5 en: 1 Agosto 2007, 10:13 am »

Cita de: Maties 360 link=topic=174527.msg827488#msg827488

Ahora queria preguntarte sobre lo que pregunte de lo que no se pudieran repetir los registros, con una consulta como esta por ejemplo:

Código
  1. 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:

Código
  1. $sql="SELECT nick FROM usuaris WHERE nick='$nick'";
  2. $resultado = mysql_query($sql);
  3. if(mysql_num_rows($resultado)==0){
  4. //Nick valido
  5. }else{
  6. //nick repetido
  7. };
  8.  

« Última modificación: 1 Agosto 2007, 17:52 pm por Sanjuu » En línea


Código
  1. if (pregunta->buscador()==NULL)
  2.     pregunta->formular_pregunta();
  3.  
Maties 360

Desconectado Desconectado

Mensajes: 35


Ver Perfil
Re: Problema con formulario de registro...
« Respuesta #6 en: 1 Agosto 2007, 17:25 pm »

Muchas gracias por tu aporte^^

Esto funciona perfectamente

Gracias y Salu2
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Calendario organizativo previo registro con formulario php en pagina web
Desarrollo Web
Anonymous250 4 4,231 Último mensaje 27 Noviembre 2011, 16:46 pm
por EFEX
Este formulario de registro estaria bien ?
PHP
nobo 4 2,265 Último mensaje 21 Febrero 2012, 00:03 am
por nobo
Problema con formulario de registro
PHP
.:UND3R:. 4 2,964 Último mensaje 25 Febrero 2012, 18:53 pm
por .:UND3R:.
Formulario de registro dentro de una imagen diseñada [POP-UP]
Desarrollo Web
Phantasy 5 3,124 Último mensaje 28 Noviembre 2013, 18:28 pm
por EFEX
formulario de registro de clientes
.NET (C#, VB.NET, ASP)
mezanoe 1 1,735 Último mensaje 8 Diciembre 2016, 15:33 pm
por fran800m
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines