Foros del Web » Programando para Internet » PHP »

Problema con registro de usuarios

Estas en el tema de Problema con registro de usuarios en el foro de PHP en Foros del Web. Hola! Luego de aprender algo de php, decidí hacer un registro de usuarios para mi web... Tengo el siguiente problema al ejecutar el script: @import ...
  #1 (permalink)  
Antiguo 03/02/2011, 11:43
 
Fecha de Ingreso: diciembre-2010
Mensajes: 51
Antigüedad: 13 años, 4 meses
Puntos: 2
Exclamación Problema con registro de usuarios

Hola!
Luego de aprender algo de php, decidí hacer un registro de usuarios para mi web...
Tengo el siguiente problema al ejecutar el script:
Código PHP:
Ver original
  1. <?php
  2. if (isset($_POST['enviar'])){
  3.     //datos de formulario
  4. $user=$_POST['user'];
  5. $email = $_POST['email'];
  6. $contrase&#241;a = $_POST['contraseña'];
  7. $rcontrase&#241;a = $_POST['rcontraseña'];
  8. $region = $_POST['region'];
  9. $ciudad = $_POST['ciudad'];
  10. $finalcheck = $_POST['finalcheck'];
  11.     $long = strlen($user);
  12.         if ($long < 4 or $long > 12 or !ctype_alnum($user)) {
  13.             echo '
  14.             <style type="text/css">
  15.             #advertencia-de-registro {
  16.             background-color:yellow;
  17.             color:red;
  18.             text-shadow: #CCC 1px -1px 1px;
  19.             font-family:"Comic Sans MS", cursive;
  20. }
  21.             </style>
  22.             ';
  23.        
  24. }
  25.         elseif (!eregi("^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+)(\.[a-z0-9-]+)*(\.[a-z]{2,4})$", $email)) {
  26.             echo '
  27.             <script>
  28.             alert ("Introduzca un e-mail válido por favor");
  29.             </script>
  30.             ';
  31. }      
  32.         elseif ($rcontrase&#241;a !== $contraseña) {
  33.             echo '
  34.             <script>
  35.             alert ("Las contraseñas que ha introducido no coinciden");
  36.             </script>
  37.             ';
  38. }
  39.         elseif ($contrase&#241;a == $user) {
  40.             echo '
  41.             <script>
  42.             alert ("Introduzca una contraseña más segura");
  43.             </script>
  44.             ';
  45. }
  46.         elseif (!isset($_POST['genero']) or empty($_POST['genero'])) {
  47.             echo '
  48.             <script>
  49.             alert ("Seleccione tu género por favor");
  50.             </script>
  51.             ';
  52.         }
  53.         elseif (!isset($_POST['pais']) or empty($_POST['pais'])) {
  54.             echo '
  55.             <script>
  56.             alert ("Seleccione un país por favor");
  57.             </script>
  58.             ';
  59.         }
  60.         elseif (!isset($finalcheck) or empty($finalcheck)) {
  61.             echo '
  62.             <script>
  63.             alert ("Tiene que aceptar las condiciones de uso para poder registrarse");
  64.             </script>
  65.             ';
  66.         }
  67.         elseif($calculos[0] !== "ocho" or $calculos[1] !== "cinco" or $calculos[2] !== "siete" or $calculos[3] !== "seis" or $calculos[4] !== "tres" or $calculos[5] !== "tres") {
  68.             echo '
  69.             <script>
  70.             alert ("Por favor, Introduzca con letras <strong>minúsculas</strong> la operación");
  71.             </script>
  72.             ';
  73.         }
  74.         //comprobamos si existe el usuario
  75.        
  76.             mysql_connect ('localhost' , 'root' ,'');
  77.             mysql_select_db ('planeta3d');
  78.             $q = mysql_query ("SELECT usuarios FROM usuarios WHERE usuarios = '$user'");
  79.             if (mysql_num_rows($q) > 1) {
  80.             echo 'Ese usuario ya existe';
  81.             }
  82.        
  83.  
  84.        
  85.        
  86.            
  87. }
  88. ?>
Formulario en la misma página:

Código PHP:
Ver original
  1. <form action="" method="post">
  2.  
  3.            
  4.  
  5.                 <h1>Formulario de registro <a href="#" id="clickout">[X]</a></h1>
  6.  
  7.                    
  8.  
  9.                     <label for="user">Nombre de Usuario:</label><br />
  10.                     <div style="font-size:smaller; text-decoration:underline" id="advertencia-de-registro">Caracteres mínimos: 4, máximo 12. Sólo se permiten letras y/o números </div><span>&dArr;</span><br />
  11. <input name="user" type="text" size="50" maxlength="12" value="Introduzca aquí el nombre de usuario deseado" onclick="this.value='';" onblur="this.value=(this.value=='')?'Introduzca aquí el nombre de usuario deseado':this.value;" /><br />
  12.  
  13.                     <label for="email">E-mail:</label><br />
  14.         <span>&dArr;</span><br />
  15.  
  16.                     <input name="email" type="text" size="50" maxlength="65" value="Introduzca aquí un e-mail" onclick="this.value='';" onblur="this.value=(this.value=='')?'Introduzca aquí un e-mail':this.value;" /><br />
  17.  
  18.         <label for="contraseña">Contraseña:</label><br />
  19.         <div style="font-size:smaller; text-decoration:underline" id="advertencia-de-registro">Caracteres mínimos: 4, máximo 12. Sólo se permiten letras y/o números </div>
  20. <span>&dArr;</span><br />
  21.                     <input name="contraseña" type="password" size="50" maxlength="15" /><br />
  22.  
  23.                     <label for="rcontraseña">Repita la contraseña:</label><br />
  24. <span>&dArr;</span><br />
  25. <input name="rcontraseña" type="password" size="50" maxlength="65" /><br />
  26. <div id="form-siguiente">Siguiente</div>
  27. <div id="2-parte">
  28.                     <label for="sexo">Sexo:</label><br />
  29. <span>&dArr;</span><br />
  30. <input type="radio" name="genero" value="Masculino">Masculino
  31.                     <input type="radio" name="genero" value="Femenino">Femenino<br />
  32.  
  33.                     <label for="pais">Pa&iacute;s:</label><br />
  34. <span>&dArr;</span><br />
  35. <select name="pais">
  36.  
  37.                       <option disabled="disabled" selected="selected">Selecciona tu Pa&iacute;s:</option>
  38.  
  39. <!-- Aquí va el select de países -->
  40.  
  41. </select>
  42.  
  43. <br />
  44.  
  45.                     <label for="region">Provincia / Regi&oacute;n / Estado:</label><br />
  46. <span>&dArr;</span><br />
  47.                    
  48.  
  49.                     <input name="region" type="text" size="50" maxlength="75" value="Ejemplo: California" onclick="this.value='';" onblur="this.value=(this.value=='')?'Ejemplo: California':this.value;" /><br />
  50.  
  51.         <label for="ciudad">Ciudad</label><br />
  52.  
  53.                     <span>&dArr;</span><br />
  54.  
  55.                     <input name="ciudad" type="text" size="50" maxlength="50" value="Ejemplo: Londres" onclick="this.value='';" onblur="this.value=(this.value=='')?'Ejemplo: Londres':this.value;" /><br />
  56.  
  57.                     Test anti-spam:<br />
  58.                    
  59.                     <?php
  60.                     $calculos = array (
  61.                     'tres <img src="objetos/captcha/mas.png"> cinco',
  62.                     'ocho <img src="objetos/captcha/menos.png"> dos',
  63.                     'siete <img src="objetos/captcha/mas.png"> cero',
  64.                     'diez <img src="objetos/captcha/menos.png"> cuatro',
  65.                     'uno <img src="objetos/captcha/mas.png"> dos',
  66.                     'siete <img src="objetos/captcha/menos.png"> cuatro',
  67.                     );
  68.                     $r = rand (0 , 3);
  69.                     echo '<div id="captcha">';
  70.                     echo $calculos[$r];
  71.                     echo '</div>';         
  72.                     ?>
  73.                     <span>&dArr;</span><br />
  74.                     <input name="captcha" type="text" size="50" maxlength="50" value="Ejemplo: &quot;uno&quot;. Escriba el resultado con letras minúsculas" onclick="this.value='';" onblur="this.value=(this.value=='')?'Ejemplo: &quot;uno&quot;. Escriba el resultado con letras minúsculas':this.value;" /><br />
  75.                     <div id="m-submit-form">
  76.                       <input name="finalcheck" type="checkbox" />
  77.  
  78.                       <span>Soy mayor de 13 años y acepto las condiciones de uso</span><br />
  79.                     </div>
  80.                    
  81.                    
  82.                     <input name="enviar" type="submit" value="Listo, ¡Regístrame!" />
  83.  
  84.                      <input name="borrar-todo" type="reset" value="Borrar todo" />
  85.                    
  86.                    
  87.  
  88.            
  89. </div>
  90. </form>
  91.  
  92. </div>


El problema está cuando quiero comprobar el usuario con mysql_num_rows = 1

me tira Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in mi ruta
Disculpen las molestias, espero que alguien me pueda solucionar mi problema
Saludos
  #2 (permalink)  
Antiguo 03/02/2011, 12:32
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Problema con registro de usuarios

¿y tienes una tabla llamada usuarios con un campo llamado usuarios? esto puede ser algo confuso, te recomendaría por ejemplo llamar a la tabla usuarios y al campo llamarlo simplemente usuario (sin la s) para verificar el error, imprime con echo mysql_error();

Por cierto, la comprobación de si el usuario existe no la veo bien, pues estás preguntando si hay más de un usuario con ese nombre, cuando deberías preguntar si hay al menos uno.

te sugiero cambiar la condición a

if (mysql_num_rows($q)){

así puedes saber si hay datos.
  #3 (permalink)  
Antiguo 03/02/2011, 12:35
Avatar de bullarobert  
Fecha de Ingreso: enero-2011
Mensajes: 31
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Problema con registro de usuarios

probaste la consulta en algun lugar antes??? en el gestor que trae phpmyadmin podria ser
  #4 (permalink)  
Antiguo 03/02/2011, 12:56
 
Fecha de Ingreso: diciembre-2010
Mensajes: 51
Antigüedad: 13 años, 4 meses
Puntos: 2
De acuerdo Respuesta: Problema con registro de usuarios

Cita:
Iniciado por bullarobert Ver Mensaje
probaste la consulta en algun lugar antes??? en el gestor que trae phpmyadmin podria ser
no sé que sea el gestor de php myadmin, pero si te refieres a que si la tabla la hice en php my admin, la respuesta es si.

Cita:
Iniciado por ocp001a Ver Mensaje
¿y tienes una tabla llamada usuarios con un campo llamado usuarios? esto puede ser algo confuso, te recomendaría por ejemplo llamar a la tabla usuarios y al campo llamarlo simplemente usuario (sin la s) para verificar el error, imprime con echo mysql_error();

Por cierto, la comprobación de si el usuario existe no la veo bien, pues estás preguntando si hay más de un usuario con ese nombre, cuando deberías preguntar si hay al menos uno.

te sugiero cambiar la condición a

if (mysql_num_rows($q)){

así puedes saber si hay datos.
Muchas gracias, problema solucionado.
Esta es la segunda vez que pregunto algo en esta comunidad y ambas veces me trataron con respeto y solucionaron mis problemas. La verdad .
Saludos
  #5 (permalink)  
Antiguo 03/02/2011, 13:03
Avatar de bullarobert  
Fecha de Ingreso: enero-2011
Mensajes: 31
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Problema con registro de usuarios

cuando entras al php myadmin y vas a tu base de datos hay una parte arriba que dice SQL esta junto a varias otras opciones como examinar, estructura, buscar, y varias mas, entras en SQL y hay puedes probar tus consultas antes de usarlas en algun codigo, sale mas facil... =D

Etiquetas: registro, usuarios
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 19:36.