Foros del Web » Programando para Internet » PHP »

como evitar usuarios repetidos?

Estas en el tema de como evitar usuarios repetidos? en el foro de PHP en Foros del Web. Hola a todos. Necesito saber como controlar este problema. y esque se puede registrar varias veces con el mismo nombre de usuario. el codigo que ...
  #1 (permalink)  
Antiguo 19/06/2010, 07:38
 
Fecha de Ingreso: mayo-2010
Mensajes: 10
Antigüedad: 13 años, 11 meses
Puntos: 0
como evitar usuarios repetidos?

Hola a todos.

Necesito saber como controlar este problema. y esque se puede registrar varias veces con el mismo nombre de usuario.


el codigo que utilizo para insertar los datos es este:

Código PHP:
<?php

  
include("funcions.php");

        
$login=$_POST["login"];
        
$pass=$_POST["pass"];
        
$mail=$_POST["mail"];
        
$Nombre=$_POST["Nombre"];
        
$fecha_nacimiento=$_POST["fecha_nacimiento"];
        
$apellidos=$_POST["apellidos"];
        
$direccion=$_POST["direccion"];
        
$movil=$_POST["movil"];
        
$poblacion=$_POST["poblacion"];
        
$cod_postal=$_POST["cod_postal"];
        
$dni=$_POST["dni"];
        
        
$dbd=connecta();


$sql="INSERT INTO usuario (login, pass, mail, Nombre, fecha_nacimiento, apellidos, direccion, movil, poblacion, cod_postal, dni) VALUES ('".$login."', '".$pass."', '".$mail."' , '".$Nombre."', '".$fecha_nacimiento."', '".$apellidos."', '".$direccion."', '".$movil."', '".$poblacion."', '".$cod_postal."', '".$dni."');";


        
$res mysql_query($sql$dbd);
        if (
$res)        
            {echo
'
            <html>
            <head> <title> Paguina de Logeo </title>
            <link rel="stylesheet" href="style.css" type="text/css" />  
                <style type="text/css">
                <!--
                .aviso {
                background:#000000;
                opacity: .8; /*Este es el codigo de tranparencia de fondo*/
                color:#09F;
                border: 1px solid #d1d0ad;
                }
                -->
                </style>
            </head>
            <body>
            <table align="center" border="0"  background="img/bienvenido.jpg">
            <tr class="aviso">
            <td><center><img src="img/welcome.gif"></center><h1><center>Te damos la bienvenida como nuevo miembro<br>Te has registrado correctamente</h1><br><a href="loginhtml.php"><img src="img/atras2.png" border="none"></a></center></td>
            <br>
            <br>
            <br>
            </tr>
            </table>
            </body>
            </html> '
;}
        else {echo 
"ERROR a l’afegir: "mysql_error();}
?>
Gracias anticipadas
  #2 (permalink)  
Antiguo 19/06/2010, 08:11
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: como evitar usuarios repetidos?

Haz una consulta antes del INSERT que valide lo que deseas:
Código PHP:
Ver original
  1. $consulta = "SELECT * FROM usuario WHERE Nombre = '$Nombre'";
  2. $result = mysql_query($consulta) or die (mysql_error());
  3. if (mysql_num_rows($result) > 0) {
  4. echo "Ya existe un usuario registrado con ese nick";
  5. } else {
  6.    // Realizas el INSERT
  7. }


Saludos.
__________________
"SELECT * FROM Mujeres WHERE situacion NOT IN ('CASADAS','CON HIJOS','ATORMENTADAS','CUASI-ENNOVIADAS') AND personalidad <> 'INTENSA'"

Última edición por Carlojas; 19/06/2010 a las 09:26
  #3 (permalink)  
Antiguo 19/06/2010, 08:27
 
Fecha de Ingreso: mayo-2010
Mensajes: 10
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: como evitar usuarios repetidos?

Ya he probado el codigo pero no me funciona

me queda asi:

Código PHP:
<?php

  
include("funcions.php");

        
$login=$_POST["login"];
        
$pass=$_POST["pass"];
        
$mail=$_POST["mail"];
        
$Nombre=$_POST["Nombre"];
        
$fecha_nacimiento=$_POST["fecha_nacimiento"];
        
$apellidos=$_POST["apellidos"];
        
$direccion=$_POST["direccion"];
        
$movil=$_POST["movil"];
        
$poblacion=$_POST["poblacion"];
        
$cod_postal=$_POST["cod_postal"];
        
$dni=$_POST["dni"];
        
        
$dbd=connecta();

$consulta "SELECT * FROM usuario WHERE Nombre = '$Nombre'";
$result mysql_query($consulta) or die (mysql_error());
if (
mysql_num_rows($result) > 0) {
echo 
"Ya existe un usuario registrado con ese nick";
} else { 
   
// Realizas el INSERT 
}


$sql="INSERT INTO usuario (login, pass, mail, Nombre, fecha_nacimiento, apellidos, direccion, movil, poblacion, cod_postal, dni) VALUES ('".$login."', '".$pass."', '".$mail."' , '".$Nombre."', '".$fecha_nacimiento."', '".$apellidos."', '".$direccion."', '".$movil."', '".$poblacion."', '".$cod_postal."', '".$dni."');";


        
$res mysql_query($sql$dbd);
        if (
$res)        
            {echo
'
            <html>
            <head> <title> Paguina de Logeo </title>
            <link rel="stylesheet" href="style.css" type="text/css" />  
                <style type="text/css">
                <!--
                .aviso {
                background:#000000;
                opacity: .8; /*Este es el codigo de tranparencia de fondo*/
                color:#09F;
                border: 1px solid #d1d0ad;
                }
                -->
                </style>
            </head>
            <body>
            <table align="center" border="0"  background="img/bienvenido.jpg">
            <tr class="aviso">
            <td><center><img src="img/welcome.gif"></center><h1><center>Te damos la bienvenida como nuevo miembro<br>Te has registrado correctamente</h1><br><a href="loginhtml.php"><img src="img/atras2.png" border="none"></a></center></td>
            <br>
            <br>
            <br>
            </tr>
            </table>
            </body>
            </html> '
;}
        else {echo 
"ERROR a l’afegir: "mysql_error();}
?>

nose porque pero se salta la consulta.
Porfavor echame una mano
  #4 (permalink)  
Antiguo 19/06/2010, 08:32
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: como evitar usuarios repetidos?

El INSERT debe ir dentro del else si no siempre te registrara el usuario sin importar las validación.

Código PHP:
Ver original
  1. <?php
  2.  
  3.   include("funcions.php");
  4.  
  5.         $login=$_POST["login"];
  6.         $pass=$_POST["pass"];
  7.         $mail=$_POST["mail"];
  8.         $Nombre=$_POST["Nombre"];
  9.         $fecha_nacimiento=$_POST["fecha_nacimiento"];
  10.         $apellidos=$_POST["apellidos"];
  11.         $direccion=$_POST["direccion"];
  12.         $movil=$_POST["movil"];
  13.         $poblacion=$_POST["poblacion"];
  14.         $cod_postal=$_POST["cod_postal"];
  15.         $dni=$_POST["dni"];
  16.        
  17.        
  18. $dbd=connecta();
  19.  
  20. $consulta = "SELECT * FROM usuario WHERE Nombre = '$Nombre'";
  21. $result = mysql_query($consulta,$dbd) or die (mysql_error());
  22. if (mysql_num_rows($result) > 0) {
  23. echo "Ya existe un usuario registrado con ese nick";
  24. } else {
  25.    // Realizas el INSERT
  26. $sql="INSERT INTO usuario (login, pass, mail, Nombre, fecha_nacimiento, apellidos, direccion, movil, poblacion, cod_postal, dni) VALUES ('".$login."', '".$pass."', '".$mail."' , '".$Nombre."', '".$fecha_nacimiento."', '".$apellidos."', '".$direccion."', '".$movil."', '".$poblacion."', '".$cod_postal."', '".$dni."');";
  27.  
  28.  
  29.         $res = mysql_query($sql, $dbd);
  30.         if ($res)        
  31.             {echo'
  32.            <html>
  33.            <head> <title> Paguina de Logeo </title>
  34.            <link rel="stylesheet" href="style.css" type="text/css" />  
  35.                <style type="text/css">
  36.                <!--
  37.                .aviso {
  38.                background:#000000;
  39.                opacity: .8; /*Este es el codigo de tranparencia de fondo*/
  40.                color:#09F;
  41.                border: 1px solid #d1d0ad;
  42.                }
  43.                -->
  44.                </style>
  45.            </head>
  46.            <body>
  47.            <table align="center" border="0"  background="img/bienvenido.jpg">
  48.            <tr class="aviso">
  49.            <td><center><img src="img/welcome.gif"></center><h1><center>Te damos la bienvenida como nuevo miembro<br>Te has registrado correctamente</h1><br><a href="loginhtml.php"><img src="img/atras2.png" border="none"></a></center></td>
  50.            <br>
  51.            <br>
  52.            <br>
  53.            </tr>
  54.            </table>
  55.            </body>
  56.            </html> ';}
  57.         else {echo "ERROR a l’afegir: ", mysql_error();}
  58. }
  59.  
  60.  
  61.  
  62. ?>

Saludos.
__________________
"SELECT * FROM Mujeres WHERE situacion NOT IN ('CASADAS','CON HIJOS','ATORMENTADAS','CUASI-ENNOVIADAS') AND personalidad <> 'INTENSA'"

Última edición por Carlojas; 19/06/2010 a las 09:26
  #5 (permalink)  
Antiguo 19/06/2010, 08:56
 
Fecha de Ingreso: mayo-2010
Mensajes: 10
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: como evitar usuarios repetidos?

Espero que tengas paciencia conmigo

esque me da fallo en la linea 20

Cita:
Parse error: syntax error, unexpected '"' in C:\xampp\htdocs\ejercicios\infinity films\No registrado\insertar.php on line 20

Código PHP:
Ver original
  1. <?php
  2.  
  3.   include("funcions.php");
  4.  
  5.         $login=$_POST["login"];
  6.         $pass=$_POST["pass"];
  7.         $mail=$_POST["mail"];
  8.         $Nombre=$_POST["Nombre"];
  9.         $fecha_nacimiento=$_POST["fecha_nacimiento"];
  10.         $apellidos=$_POST["apellidos"];
  11.         $direccion=$_POST["direccion"];
  12.         $movil=$_POST["movil"];
  13.         $poblacion=$_POST["poblacion"];
  14.         $cod_postal=$_POST["cod_postal"];
  15.         $dni=$_POST["dni"];
  16.        
  17.        
  18. $dbd=connecta();
  19.  
  20. $consulta "SELECT * FROM usuario WHERE Nombre = '$Nombre'";
  21. $result = mysql_query($consulta,$dbd) or die (mysql_error());
  22. if (mysql_num_rows($result) > 0) {
  23. echo "Ya existe un usuario registrado con ese nick";
  24. } else {
  25.    // Realizas el INSERT
  26. $sql="INSERT INTO usuario (login, pass, mail, Nombre, fecha_nacimiento, apellidos, direccion, movil, poblacion, cod_postal, dni) VALUES ('".$login."', '".$pass."', '".$mail."' , '".$Nombre."', '".$fecha_nacimiento."', '".$apellidos."', '".$direccion."', '".$movil."', '".$poblacion."', '".$cod_postal."', '".$dni."');";
  27.  
  28.  
  29.         $res = mysql_query($sql, $dbd);
  30.         if ($res)        
  31.             {echo'
  32.            <html>
  33.            <head> <title> Paguina de Logeo </title>
  34.            <link rel="stylesheet" href="style.css" type="text/css" />  
  35.                <style type="text/css">
  36.                <!--
  37.                .aviso {
  38.                background:#000000;
  39.                opacity: .8; /*Este es el codigo de tranparencia de fondo*/
  40.                color:#09F;
  41.                border: 1px solid #d1d0ad;
  42.                }
  43.                -->
  44.                </style>
  45.            </head>
  46.            <body>
  47.            <table align="center" border="0"  background="img/bienvenido.jpg">
  48.            <tr class="aviso">
  49.            <td><center><img src="img/welcome.gif"></center><h1><center>Te damos la bienvenida como nuevo miembro<br>Te has registrado correctamente</h1><br><a href="loginhtml.php"><img src="img/atras2.png" border="none"></a></center></td>
  50.            <br>
  51.            <br>
  52.            <br>
  53.            </tr>
  54.            </table>
  55.            </body>
  56.            </html> ';}
  57.         else {echo "ERROR a l’afegir: ", mysql_error();}
  58. }
  59.  
  60.  
  61.  
  62. ?>

Gracias Carlojas
  #6 (permalink)  
Antiguo 19/06/2010, 09:01
 
Fecha de Ingreso: octubre-2007
Mensajes: 118
Antigüedad: 16 años, 5 meses
Puntos: 11
Respuesta: como evitar usuarios repetidos?

Prueba asi :
Código PHP:
$consulta "SELECT * FROM usuario WHERE Nombre = ".$Nombre.""
  #7 (permalink)  
Antiguo 19/06/2010, 09:06
 
Fecha de Ingreso: mayo-2010
Mensajes: 10
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: como evitar usuarios repetidos?

No me abandonen porfavoorr



sigue petando.


Cita:
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\xampp\htdocs\ejercicios\infinity films\No registrado\insertar.php on line 20
  #8 (permalink)  
Antiguo 19/06/2010, 09:11
 
Fecha de Ingreso: octubre-2007
Mensajes: 118
Antigüedad: 16 años, 5 meses
Puntos: 11
Respuesta: como evitar usuarios repetidos?

Esto me pasa por contestar a correprisas sin mirar bien tu código:
Tienes escrito esto :
Código PHP:
$consulta "SELECT * FROM usuario WHERE Nombre = '$Nombre'"
Te falta el '=' despues de consulta
Código PHP:
$consulta="SELECT * FROM usuario WHERE Nombre = '".$Nombre."' "
  #9 (permalink)  
Antiguo 19/06/2010, 09:12
 
Fecha de Ingreso: abril-2010
Mensajes: 89
Antigüedad: 14 años
Puntos: 1
Respuesta: como evitar usuarios repetidos?

$consulta "SELECT * FROM usuario WHERE Nombre = '$Nombre'";
  #10 (permalink)  
Antiguo 19/06/2010, 09:25
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: como evitar usuarios repetidos?

Cita:
Iniciado por shilen79 Ver Mensaje
Esto me pasa por contestar a correprisas sin mirar bien tu código:
Tienes escrito esto :
Código PHP:
$consulta "SELECT * FROM usuario WHERE Nombre = '$Nombre'"
Te falta el '=' despues de consulta
Código PHP:
$consulta="SELECT * FROM usuario WHERE Nombre = '".$Nombre."' "

Tienes razón shilen79 pido disculpas fue error mio en el ejemplo que publique.


Saludos.
__________________
"SELECT * FROM Mujeres WHERE situacion NOT IN ('CASADAS','CON HIJOS','ATORMENTADAS','CUASI-ENNOVIADAS') AND personalidad <> 'INTENSA'"
  #11 (permalink)  
Antiguo 19/06/2010, 09:30
 
Fecha de Ingreso: mayo-2010
Mensajes: 10
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: como evitar usuarios repetidos?

MUCHISIMAS GRACIAS A TODOSSSSSSSSSSS

QUE GRAN FORO


Gracias a Carlojas, Shilen79 y apu



El codigo final que funciona es este:

Código PHP:
Ver original
  1. <?php
  2.  
  3.   include("funcions.php");
  4.  
  5.         $login=$_POST["login"];
  6.         $pass=$_POST["pass"];
  7.         $mail=$_POST["mail"];
  8.         $Nombre=$_POST["Nombre"];
  9.         $fecha_nacimiento=$_POST["fecha_nacimiento"];
  10.         $apellidos=$_POST["apellidos"];
  11.         $direccion=$_POST["direccion"];
  12.         $movil=$_POST["movil"];
  13.         $poblacion=$_POST["poblacion"];
  14.         $cod_postal=$_POST["cod_postal"];
  15.         $dni=$_POST["dni"];
  16.        
  17.        
  18. $dbd=connecta();
  19.  
  20. $consulta="SELECT * FROM usuario WHERE Nombre = '".$Nombre."'";
  21. $result = mysql_query($consulta,$dbd) or die (mysql_error());
  22. if (mysql_num_rows($result) > 0) {
  23. echo "Ya existe un usuario registrado con ese nick";
  24. } else {
  25.    // Realizas el INSERT
  26. $sql="INSERT INTO usuario (login, pass, mail, Nombre, fecha_nacimiento, apellidos, direccion, movil, poblacion, cod_postal, dni) VALUES ('".$login."', '".$pass."', '".$mail."' , '".$Nombre."', '".$fecha_nacimiento."', '".$apellidos."', '".$direccion."', '".$movil."', '".$poblacion."', '".$cod_postal."', '".$dni."');";
  27.  
  28.  
  29.         $res = mysql_query($sql, $dbd);
  30.         if ($res)        
  31.             {echo'
  32.            <html>
  33.            <head> <title> Paguina de Logeo </title>
  34.            <link rel="stylesheet" href="style.css" type="text/css" />  
  35.                <style type="text/css">
  36.                <!--
  37.                .aviso {
  38.                background:#000000;
  39.                opacity: .8; /*Este es el codigo de tranparencia de fondo*/
  40.                color:#09F;
  41.                border: 1px solid #d1d0ad;
  42.                }
  43.                -->
  44.                </style>
  45.            </head>
  46.            <body>
  47.            <table align="center" border="0"  background="img/bienvenido.jpg">
  48.            <tr class="aviso">
  49.            <td><center><img src="img/welcome.gif"></center><h1><center>Te damos la bienvenida como nuevo miembro<br>Te has registrado correctamente</h1><br><a href="loginhtml.php"><img src="img/atras2.png" border="none"></a></center></td>
  50.            <br>
  51.            <br>
  52.            <br>
  53.            </tr>
  54.            </table>
  55.            </body>
  56.            </html> ';}
  57.         else {echo "ERROR a l’afegir: ", mysql_error();}
  58. }
  59.  
  60.  
  61.  
  62. ?>
Gracias a todos
  #12 (permalink)  
Antiguo 19/06/2010, 09:32
 
Fecha de Ingreso: octubre-2007
Mensajes: 118
Antigüedad: 16 años, 5 meses
Puntos: 11
Respuesta: como evitar usuarios repetidos?

Cita:
Iniciado por Carlojas Ver Mensaje
Tienes razón shilen79 pido disculpas fue error mio en el ejemplo que publique.
Saludos.
No hay que pedir disculpas, cuando te atrancas con el código ,la mayoria de las veces es por cosas de estas jeje ;)
  #13 (permalink)  
Antiguo 19/06/2010, 09:33
 
Fecha de Ingreso: abril-2010
Mensajes: 89
Antigüedad: 14 años
Puntos: 1
Respuesta: como evitar usuarios repetidos?

mucha razon, si no nos abra pasado :O

Etiquetas: repetidos, 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 11:33.