Foros del Web » Programando para Internet » PHP »

comprobar si un usuario existe al registrarlo

Estas en el tema de comprobar si un usuario existe al registrarlo en el foro de PHP en Foros del Web. Estimados , Estoy creando una aplicación donde el administrador debe crear los usuarios , una vez ingresado le llega al email una notificación con su ...
  #1 (permalink)  
Antiguo 18/07/2012, 09:07
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 10 meses
Puntos: 61
comprobar si un usuario existe al registrarlo

Estimados ,

Estoy creando una aplicación donde el administrador debe crear los usuarios , una vez ingresado le llega al email una notificación con su usuario y clave, el problema radico en que antes de ingresar el usuario compruebo si existe a través del nombre de usuario y el email , pero me arroja el siguiente error .


Código error:
Ver original
  1. mysql_num_rows expects parameter 1 to be resource

mi codigo php es el siguiente,

crear_usuario.php

Código PHP:
Ver original
  1. <form action="include/procesar.php" method="post" enctype="multipart/form-data">
  2.           <fieldset class="fieldsetBox" style="margin:auto">
  3.           <legend>Crear Usuario</legend>
  4.           <div id="contenidos">
  5.             <ul class="opciones_laterales">
  6.               <li>
  7.                 <label for="resumen" class="label">Nombre de Usuario<span id="mensaje-resumen" class="mensajeError"></span></label>
  8.                 <input name="usuario" id="resumen" size="32" type="text" />
  9.               </li>
  10.               <li>
  11.                 <label for="resumen" class="label">Nombres<span id="mensaje-resumen" class="mensajeError"></span></label>
  12.                 <input name="nombres" id="resumen" size="32" type="text" />
  13.               </li>
  14.               <li>
  15.             <label for="nombre" class="label">Apellido Paterno<span id="mensaje-nombre" class="mensajeError"></span></label>
  16.             <input name="apellido_paterno" id="nombre" size="32" type="text" />
  17.             </li>
  18.               <li>
  19.                 <label for="resumen" class="label">Apellido Materno<span id="mensaje-resumen" class="mensajeError"></span></label>
  20.                 <input name="apellido_materno" id="nombre" size="32" type="text" />
  21.               </li>
  22.               <li>
  23.               <li>
  24.                 <label for="resumen" class="label">E-mail<span id="mensaje-resumen" class="mensajeError"></span></label>
  25.                 <input name="email" id="resumen" size="32" type="text" />
  26.               </li>
  27.              
  28.                 <label for="resumen" class="label">Contrase&ntilde;a<span id="mensaje-resumen" class="mensajeError"></span></label>
  29.                 <input name="password" id="resumen" size="25" type="password" />
  30.               </li>
  31.               <li>
  32.                 <br>
  33.                 <input name="accion" value="crearusuario" type="hidden" />
  34.                 <input type="hidden" value="<?php echo $_POST['usuario'];?>" name="usuario">
  35.                 <input type="hidden" value="<?php echo $_POST['email'];?>" name="email">
  36.                 <input type="submit" name="Submit" value="Guardar">
  37.               </li>
  38.             </ul>
  39.           </div>
  40.           </fieldset>


procesar.php


Código PHP:
Ver original
  1. function Crear_Usuario($link){
  2.        
  3.                                                    
  4.         $select_user = "SELECT tb_usuarios.usuario, tb_usuarios.email
  5.                FROM tb_usuarios WHERE tb_usuarios.usuario = '".$_POST['usuario']."' AND tb_usuarios.email = '".$_POST['email']."'";
  6.         $ejecutar = mysql_query($select_user,$link)or die(mysql_error());
  7. //$total = mysql_num_rows($ejecutar);
  8.  
  9.         if (mysql_num_rows($select_user) > 0) {
  10.         $row_user = @mysql_fetch_assoc($select_user);
  11.                                                     @mysql_query(sprintf("INSERT IGNORE INTO tb_usuarios (id_usuario, usuario, email)
  12.                                                                           VALUES (%s, %s, %s)",
  13.                                                                           GetSQLValueString($_POST["id_usuario"], "int"),
  14.                                                                           GetSQLValueString($_POST['usuario'], "text"),
  15.                                                                           GetSQLValueString($_POST['email'], "text")),
  16.                                                                  $link) or die(mysql_error());
  17.         header ("Location: ../inicio.php?accion=crear_usuario");
  18.    
  19.             }
  20.            
  21.     }                                          
  22. ?>

Espero puedan ayudarme .

Saludos .
  #2 (permalink)  
Antiguo 18/07/2012, 09:32
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 15 años, 2 meses
Puntos: 44
Respuesta: comprobar si un usuario existe al registrarlo

Código PHP:
Ver original
  1. mysql_num_rows($select_user)

en esa linea está tu error

trata cambiando a

Código PHP:
Ver original
  1. mysql_num_rows($ejecutar)

y dinos que tal va
__________________
Desde hace tiempo estoy esperandote... bienvenido mi pequeño Diego!!!
  #3 (permalink)  
Antiguo 18/07/2012, 09:41
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 10 meses
Puntos: 61
Respuesta: comprobar si un usuario existe al registrarlo

amigo , hice lo que me indicas pero la pantalla queda en blanco y el log de errores no me arroja nada.

Saludos y gracias por comentar .
  #4 (permalink)  
Antiguo 18/07/2012, 09:43
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 15 años, 2 meses
Puntos: 44
Respuesta: comprobar si un usuario existe al registrarlo

claro!!! ya eliminaste el error de sintaxis... ahora viene el error de lógica...

para empezar quita los "@" para que puedas ver los errores... segundo... insertas cuando el usuario existe????

saludos
__________________
Desde hace tiempo estoy esperandote... bienvenido mi pequeño Diego!!!
  #5 (permalink)  
Antiguo 18/07/2012, 09:46
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 10 meses
Puntos: 61
Respuesta: comprobar si un usuario existe al registrarlo

probe el insert solo y efectivamente inserta , pero al intentar seleccionar viene el problema , quite el@ como me indicaste , pero aun asi cuando ejecuto la acción la pantalla queda en blanco.

Saludos
  #6 (permalink)  
Antiguo 18/07/2012, 09:50
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 15 años, 2 meses
Puntos: 44
Respuesta: comprobar si un usuario existe al registrarlo

si... tu insert está bien... pero creo que la posición no es la correcta...

analiza bien tu código... revisa tu "IF", en caso de que el usuario YA ESTE REGISTRADO

num_rows > 0

creo que debería ser al revés

num_rows <1




trata así y nos dices...
__________________
Desde hace tiempo estoy esperandote... bienvenido mi pequeño Diego!!!
  #7 (permalink)  
Antiguo 18/07/2012, 10:05
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 10 meses
Puntos: 61
Respuesta: comprobar si un usuario existe al registrarlo

amigo , hice algo como esto pero me inserta el id autoincremental en ambos caso

Código PHP:
Ver original
  1. function Crear_Usuario($link){
  2.        
  3.                                                    
  4.         $select_user = "SELECT tb_usuarios.usuario, tb_usuarios.email
  5.                         FROM tb_usuarios WHERE tb_usuarios.usuario = '".$_POST['usuario']."' AND tb_usuarios.email = '".$_POST['email']."'";
  6.         $ejecutar = mysql_query($select_user,$link)or die(mysql_error());
  7.         $total = mysql_num_rows($ejecutar);  
  8.         if ($total > 0) {
  9.             echo "El usuario o Email ya existen en la base de datos";
  10.         }else{
  11.                                                     mysql_query(sprintf("INSERT IGNORE INTO tb_usuarios (id_usuario, usuario, email)
  12.                                                                           VALUES (%s, %s, %s)",
  13.                                                                           GetSQLValueString($_POST["id_usuario"], "int"),
  14.                                                                           GetSQLValueString($_POST['usuario'], "text"),
  15.                                                                           GetSQLValueString($_POST['email'], "text")),
  16.                                                                  $link) or die(mysql_error());
  17.         header ("Location: ../inicio.php?accion=listar_usuarios");
  18.    
  19.             }
  20.            
  21.     }
  #8 (permalink)  
Antiguo 18/07/2012, 10:17
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 15 años, 2 meses
Puntos: 44
Respuesta: comprobar si un usuario existe al registrarlo

como que inserta en ambos casos???

el insert solo está en el "ELSE"... revisa bien... en "ambos" casos no debe de hacer la inserción


saludos
__________________
Desde hace tiempo estoy esperandote... bienvenido mi pequeño Diego!!!
  #9 (permalink)  
Antiguo 18/07/2012, 10:32
 
Fecha de Ingreso: enero-2011
Ubicación: /root
Mensajes: 530
Antigüedad: 13 años, 10 meses
Puntos: 61
Respuesta: comprobar si un usuario existe al registrarlo

Amigo gracias por tu ayuda solucione el problema , era de lógica y además no debía enviar los datos como hidden desde el formulario como $_POST .

Gracias por tu tiempo .
  #10 (permalink)  
Antiguo 18/07/2012, 11:16
Avatar de p414  
Fecha de Ingreso: agosto-2009
Ubicación: casi casi casi... a un lado de la cuna...
Mensajes: 575
Antigüedad: 15 años, 2 meses
Puntos: 44
Respuesta: comprobar si un usuario existe al registrarlo

al contrario... estamos para ayudarnos y gracias a ti por poner cómo lo solucionaste... a más de uno puede serle de utilidad...


saludos
__________________
Desde hace tiempo estoy esperandote... bienvenido mi pequeño Diego!!!

Etiquetas: mysql, sql, 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 14:11.