Foros del Web » Programando para Internet » PHP »

Como hago para comprobar que los datos de un usuario (nick y correo) ya existe.

Estas en el tema de Como hago para comprobar que los datos de un usuario (nick y correo) ya existe. en el foro de PHP en Foros del Web. En la base de datos para evitar duplicaciones del registro: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original <? include ( 'config.php' ) ;     // ...
  #1 (permalink)  
Antiguo 10/01/2011, 09:35
 
Fecha de Ingreso: enero-2011
Mensajes: 77
Antigüedad: 13 años, 10 meses
Puntos: 3
Como hago para comprobar que los datos de un usuario (nick y correo) ya existe.

En la base de datos para evitar duplicaciones del registro:
Código PHP:
Ver original
  1. <?
  2. include('config.php');
  3.     // Primero comprobamos que ningún campo esté vacío y que todos los campos existan.
  4.     if(isset($_POST['username']) && !empty($_POST['username']) &&
  5.     isset($_POST['password']) && !empty($_POST['password']) &&
  6.     isset($_POST['password2']) && !empty($_POST['password2']) &&
  7.     isset($_POST['nombre']) && !empty($_POST['nombre']) &&
  8.         isset($_POST['apellido1']) && !empty($_POST['apellido1']) &&
  9.             isset($_POST['apellido2']) && !empty($_POST['apellido2']) &&
  10.     isset ($_POST['email']) && !empty($_POST['email'])) {
  11.    
  12.         // Si entramos es que todo se ha realizado correctamente
  13.         $link = mysql_connect ($dbhost, $dbusername, $dbuserpass);
  14.         mysql_select_db($dbname,$link);
  15.  
  16.         // Con esta sentencia SQL insertaremos los datos en la base de datos
  17.         mysql_query("INSERT INTO usuarios (username,password, nombre, apellido1, apellido2,email)
  18.        VALUES ('{$_POST['username']}','{$_POST['password']}','{$_POST['nombre']}','{$_POST['apellido1']}','{$_POST['apellido2']}','{$_POST['email']}')",$link);
  19.        
  20.         // Ahora comprobaremos que todo ha ido correctamente
  21.         $my_error = mysql_error($link);
  22.  
  23.         if(!empty($my_error)) {
  24.  
  25.             echo "Ha habido un error al insertar los valores. $my_error";
  26.  
  27.         } else {
  28.  
  29.             echo "¡Te has registrado satisfactoriamente! Pincha ".'<a href="datosregistro.php">aquí</a>'." para mnadarte los datos de acceso al formulario.";
  30.  
  31.         }
  32.  
  33.     } else {
  34.  
  35.         echo "Error, no ha introducido todos los datos.";
  36.  
  37.     }
  38. ?>
  #2 (permalink)  
Antiguo 10/01/2011, 09:37
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 16 años, 4 meses
Puntos: 35
Respuesta: Como hago para comprobar que los datos de un usuario (nick y correo) ya ex

Antes de insertar el registro debes realizar un select buscando un registro con esos datos, si lo encuentra mostrar un mensaje acorde.
Sino /else insertarlo a la BD.
__________________
I am Doyle please insert code.
  #3 (permalink)  
Antiguo 10/01/2011, 09:39
 
Fecha de Ingreso: enero-2011
Mensajes: 77
Antigüedad: 13 años, 10 meses
Puntos: 3
Respuesta: Como hago para comprobar que los datos de un usuario (nick y correo) ya ex

Por casualidad tienes por hay un enlace que me explique eso, para hacerlo? O sabes hacerlo tu? Por favor ayudame.
  #4 (permalink)  
Antiguo 10/01/2011, 09:56
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 16 años, 4 meses
Puntos: 35
Respuesta: Como hago para comprobar que los datos de un usuario (nick y correo) ya ex

e? es muy fácil.
Debes verificarlo antes de registrarlo en la BD, pero luego del if de verificación de datos del form.
Código PHP:
$result mysql_query(select from usuarios where nick='$POST[nick]' and email='$POST[email]');
 
$cant mysql_num_rows($result); //funcion que cuenta cuantos registros posee un resulset
 
if ($cant >0) {
    
//encontró al menos un registro con dicho nick Y email 
        //entonces ya existe otro usuario con dichos datos, 
 
}else
 
//lo inserto en la base 
Es casi pseudocodigo pero es muy claro.
__________________
I am Doyle please insert code.
  #5 (permalink)  
Antiguo 10/01/2011, 10:12
 
Fecha de Ingreso: julio-2010
Mensajes: 6
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: Como hago para comprobar que los datos de un usuario (nick y correo) ya ex

Puedes hacerlo tbm con Ajax, antes de enviar el formulario con el boton puedes lanzar un evento y si sale todo correcto lo envia, sino salen mensajes de error. Esto para no hacer que el usuario recargue toda la pagina.

http://jqueryfordesigners.com/using-ajax-to-validate-forms/
  #6 (permalink)  
Antiguo 10/01/2011, 10:43
 
Fecha de Ingreso: enero-2011
Mensajes: 77
Antigüedad: 13 años, 10 meses
Puntos: 3
Respuesta: Como hago para comprobar que los datos de un usuario (nick y correo) ya ex

Mira este es el código actual, creo que tengo algún error:

Código PHP:
Ver original
  1. <?
  2. include('config.php');
  3.     // Primero comprobamos que ningún campo esté vacío y que todos los campos existan.
  4.     if(isset($_POST['username']) && !empty($_POST['username']) &&
  5.     isset($_POST['password']) && !empty($_POST['password']) &&
  6.     isset($_POST['password2']) && !empty($_POST['password2']) &&
  7.     isset($_POST['nombre']) && !empty($_POST['nombre']) &&
  8.         isset($_POST['apellido1']) && !empty($_POST['apellido1']) &&
  9.             isset($_POST['apellido2']) && !empty($_POST['apellido2']) &&
  10.     isset ($_POST['email']) && !empty($_POST['email'])) {
  11.    
  12.         // Si entramos es que todo se ha realizado correctamente
  13.         $link = mysql_connect ($dbhost, $dbusername, $dbuserpass);
  14.         mysql_select_db($dbname,$link);
  15.        
  16. // Recibimos los datos
  17. $username = trim($_POST['username']); // campo de usuario en formularo
  18. $password = $_POST['password'];
  19.  
  20. // chequeas si el usuario esta en la bd
  21. $sql_chk = mysql_query("SELECT * FROM usuarios WHERE username='$username'",$linkbd) or die(mysql_error());
  22. // entonces dices
  23. if(mysql_num_rows($sql_chk)==0)  {
  24. echo "EL usuario ya se encuentra registrado, por favor use otro nombre.";
  25. } else {
  26. header("Location: registro.php");
  27. // en caso de que te de problemas la funcion header utilizas a javascript
  28. print "<script>window.location.href='registro.php';</script>";
  29. }  
  30.         // Con esta sentencia SQL insertaremos los datos en la base de datos
  31.         mysql_query("INSERT INTO usuarios (username,password, nombre, apellido1, apellido2,email)
  32.        VALUES ('{$_POST['username']}','{$_POST['password']}','{$_POST['nombre']}','{$_POST['apellido1']}','{$_POST['apellido2']}','{$_POST['email']}')",$link);
  33.        
  34.         // Ahora comprobaremos que todo ha ido correctamente
  35.         $my_error = mysql_error($link);
  36.  
  37.         if(!empty($my_error)) {
  38.  
  39.             echo "Ha habido un error al insertar los valores. $my_error";
  40.  
  41.         } else {
  42.  
  43.             echo "¡Te has registrado satisfactoriamente! Pincha ".'<a href="sesion.php">aquí</a>'." para iniciar sesión.";
  44.  
  45.         }
  46.  
  47.     } else {
  48.  
  49.         echo "Error, no ha introducido todos los datos.";
  50.  
  51.     }
  52.  
  53. ?>
  #7 (permalink)  
Antiguo 10/01/2011, 10:50
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 16 años, 4 meses
Puntos: 35
Respuesta: Como hago para comprobar que los datos de un usuario (nick y correo) ya ex

Error, si no encontró a ningún registro con ese dato, ( o sea igual a cero), lo puedes insertar
Tu pusiste lo contrario, si no encontró a ninguno usuario '==0', tu muestras el mensaje "EL usuario ya se encuentra registrado" ?¿?¿?¿
__________________
I am Doyle please insert code.
  #8 (permalink)  
Antiguo 10/01/2011, 10:55
 
Fecha de Ingreso: enero-2011
Mensajes: 77
Antigüedad: 13 años, 10 meses
Puntos: 3
Respuesta: Como hago para comprobar que los datos de un usuario (nick y correo) ya ex

He cambiado como tu has dicho compañero, pero sige sin funcionar:
Código PHP:
Ver original
  1. <?
  2. include('config.php');
  3.     // Primero comprobamos que ningún campo esté vacío y que todos los campos existan.
  4.     if(isset($_POST['username']) && !empty($_POST['username']) &&
  5.     isset($_POST['password']) && !empty($_POST['password']) &&
  6.     isset($_POST['password2']) && !empty($_POST['password2']) &&
  7.     isset($_POST['nombre']) && !empty($_POST['nombre']) &&
  8.         isset($_POST['apellido1']) && !empty($_POST['apellido1']) &&
  9.             isset($_POST['apellido2']) && !empty($_POST['apellido2']) &&
  10.     isset ($_POST['email']) && !empty($_POST['email'])) {
  11.    
  12.         // Si entramos es que todo se ha realizado correctamente
  13.         $link = mysql_connect ($dbhost, $dbusername, $dbuserpass);
  14.         mysql_select_db($dbname,$link);
  15.        
  16. // Recibimos los datos
  17. $username = trim($_POST['username']); // campo de usuario en formularo
  18. $password = $_POST['password'];
  19.  
  20. // chequeas si el usuario esta en la bd
  21. $sql_chk = mysql_query("SELECT * FROM usuarios WHERE username='$username'",$linkbd) or die(mysql_error());
  22. // entonces dices
  23. if(mysql_num_rows($sql_chk)=="EL usuario ya se encuentra registrado, por favor use otro nombre.") else {
  24. header("Location: registro.php");
  25. // en caso de que te de problemas la funcion header utilizas a javascript
  26. print "<script>window.location.href='registro.php';</script>";
  27. }  
  28.         // Con esta sentencia SQL insertaremos los datos en la base de datos
  29.         mysql_query("INSERT INTO usuarios (username,password, nombre, apellido1, apellido2,email)
  30.        VALUES ('{$_POST['username']}','{$_POST['password']}','{$_POST['nombre']}','{$_POST['apellido1']}','{$_POST['apellido2']}','{$_POST['email']}')",$link);
  31.        
  32.         // Ahora comprobaremos que todo ha ido correctamente
  33.         $my_error = mysql_error($link);
  34.  
  35.         if(!empty($my_error)) {
  36.  
  37.             echo "Ha habido un error al insertar los valores. $my_error";
  38.  
  39.         } else {
  40.  
  41.             echo "¡Te has registrado satisfactoriamente! Pincha ".'<a href="sesion.php">aquí</a>'." para iniciar sesión.";
  42.  
  43.         }
  44.  
  45.     } else {
  46.  
  47.         echo "Error, no ha introducido todos los datos.";
  48.  
  49.     }
  50.  
  51. ?>
  #9 (permalink)  
Antiguo 10/01/2011, 11:28
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 16 años, 4 meses
Puntos: 35
Respuesta: Como hago para comprobar que los datos de un usuario (nick y correo) ya ex

mmm no estás prestando atención a la sintaxis, no cierras llaves correctamente.
Aqui hay un ejemplo similar pero deberás ver el flujo que realiza para extraer lo que te sirve.
http://www.sencha.com/forum/showthre...063#post559063
__________________
I am Doyle please insert code.
  #10 (permalink)  
Antiguo 10/01/2011, 11:44
 
Fecha de Ingreso: enero-2011
Mensajes: 77
Antigüedad: 13 años, 10 meses
Puntos: 3
Respuesta: Como hago para comprobar que los datos de un usuario (nick y correo) ya ex

Hay si que me pierdo... jejejejeje Mira he mirado el codigo, ahora me carga pero no me sale ningun mensaje:
Código PHP:
Ver original
  1. <?
  2. include('config.php');
  3.     // Primero comprobamos que ningún campo esté vacío y que todos los campos existan.
  4.     if(isset($_POST['username']) && !empty($_POST['username']) &&
  5.     isset($_POST['password']) && !empty($_POST['password']) &&
  6.     isset($_POST['password2']) && !empty($_POST['password2']) &&
  7.     isset($_POST['nombre']) && !empty($_POST['nombre']) &&
  8.         isset($_POST['apellido1']) && !empty($_POST['apellido1']) &&
  9.             isset($_POST['apellido2']) && !empty($_POST['apellido2']) &&
  10.     isset ($_POST['email']) && !empty($_POST['email'])) {
  11.    
  12.     // Recibimos los datos
  13. $username = trim($_POST['username']); // campo de usuario en formularo
  14. $password = $_POST['password'];
  15.  
  16. // chequeas si el usuario esta en la bd
  17. $sql_chk = mysql_query("SELECT * FROM usuarios WHERE username='$username'",$linkbd) or die(mysql_error());
  18. // entonces dices
  19. if(mysql_num_rows($sql_chk)=="EL usuario ya se encuentra registrado, por favor use otro nombre.");  
  20. else {
  21. header("Location: registro.php");
  22. // en caso de que te de problemas la funcion header utilizas a javascript
  23. print "<script>window.location.href='registro.php';</script>";
  24. }
  25.    
  26.         // Si entramos es que todo se ha realizado correctamente
  27.         $link = mysql_connect ($dbhost, $dbusername, $dbuserpass);
  28.         mysql_select_db($dbname,$link);
  #11 (permalink)  
Antiguo 10/01/2011, 12:18
 
Fecha de Ingreso: octubre-2008
Mensajes: 19
Antigüedad: 16 años, 1 mes
Puntos: 1
Respuesta: Como hago para comprobar que los datos de un usuario (nick y correo) ya ex

ijole... si que andas perdido.... a ver.... ahi te va...

pides datos..

si entras haces una culsulta con los datos introducido para ver si existe ese usuario, por ejemplo, SELECT * FROM tabla WHERE tabla.email='$_POST("mail")

si encuentra un registro o mas entonces te dice que ya esta registrado y termina, por ejemplo>

$cant = mysql_num_rows($result)
if ($cant == 0) { //das de alta, porque el usuario no exite
$sql='INSERT INTO ...bla blalba
}
else{ // si existe, es decir que $cant NO ES IGUAL A 0

echo "usuario ya exite";
die;
}

Asi de simple... espero que ahora s'i te caiga el concepto... cualquier duda a la orden que para eso estamos... te pondr'ia el c'odigo ya hecho.. pero no es la idea... tenemos que aprender. jejeje..
  #12 (permalink)  
Antiguo 10/01/2011, 13:43
 
Fecha de Ingreso: enero-2011
Mensajes: 77
Antigüedad: 13 años, 10 meses
Puntos: 3
Respuesta: Como hago para comprobar que los datos de un usuario (nick y correo) ya ex

No me funciona :( No sé como introducir el código para que me funcione... Que desastre soy...

Etiquetas: comprobar, correo, existe, nick, 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 15:11.