Foros del Web » Programando para Internet » PHP »

Comprobar si usuario existe en bbdd

Estas en el tema de Comprobar si usuario existe en bbdd en el foro de PHP en Foros del Web. Hola buenas tardes. Se que tengo algún fallo pero no lo detecto. Les comento lo que pretendo es que cuado dé de alta un usuario ...
  #1 (permalink)  
Antiguo 05/01/2010, 12:08
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 16 años, 5 meses
Puntos: 1
Comprobar si usuario existe en bbdd

Hola buenas tardes.

Se que tengo algún fallo pero no lo detecto.

Les comento lo que pretendo es que cuado dé de alta un usuario si ya existe que me lo diga y no me lo deje meter de nuevo.

Si no introdusco datos si que me avisa y no me introduce datos en la base de datos, pero cuando introduzco algún nombre de usuario que ya existe me lo introduce directamente.

Les dejo el codigo, seguro que es que lo tengo mal enfocado el problema.

Código PHP:
session_start();
if(isset(
$_SESSION["validado"])){

    
$usuario=$_POST["usuario"];
    
$password=$_POST["password"];
    
    if (
$usuario==""){
        echo 
"No ha introducido ningún usuario";
        echo 
"<a href='./usualta.php'>Regresar</a>";
        }else{
    
    
$sql="SELECT usuario FROM usuarios";
    
$r=mysql_query($sql$link);
    
    while (
$fila=mysql_fetch_assoc($r)){
        if (
$usuario==$fila["usuario"]){
            echo 
"El usuario ya existe";
            echo 
"<a href='./usualta.php'>Regresar</a>";
            }else{
                
$sql="INSERT INTO usuarios (usuario, password) VALUES ('$usuario', '$password')";
                
$r=mysql_query($sql$link);
                
header("location:./usualta.php");
                }
        }
        }
    }else{
        
header ("location:./usualta.php");

Muchas gracias una vez más.
  #2 (permalink)  
Antiguo 05/01/2010, 12:13
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: Comprobar si usuario existe en bbdd

es mejor que apliques un indice unico (unique key) al campo y así evitas la duplicacion en base de datos del nombre del usuario
  #3 (permalink)  
Antiguo 05/01/2010, 12:14
Avatar de TKZeXe  
Fecha de Ingreso: diciembre-2009
Ubicación: Flowers
Mensajes: 166
Antigüedad: 14 años, 10 meses
Puntos: 6
Respuesta: Comprobar si usuario existe en bbdd

a simple vista te falta una condicion:

ahi va.

Código PHP:
Ver original
  1. if(isset($_SESSION["validado"])){
  2.  
  3.     $usuario=$_POST["usuario"];
  4.     $password=$_POST["password"];
  5.    
  6.     if ($usuario==""){
  7.         echo "No ha introducido ningún usuario";
  8.         echo "<a href='./usualta.php'>Regresar</a>";
  9.         }else{
  10.    
  11.     $sql="SELECT usuario FROM usuarios where usuario='$usuario'";
  12.     $r=mysql_query($sql, $link);
  13.    
  14.         if ($usuario==$fila["usuario"]){
  15.             echo "El usuario ya existe";
  16.             echo "<a href='./usualta.php'>Regresar</a>";
  17.             }
  18.         else{
  19.              $sql="INSERT INTO usuarios (usuario, password) VALUES ('$usuario', '$password')";
  20.              $r=mysql_query($sql, $link);
  21.              header("location:./usualta.php");
  22.              }
  23.     }
  24.     }else{
  25.         header ("location:./usualta.php");
  26. }
  #4 (permalink)  
Antiguo 05/01/2010, 12:15
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 8 meses
Puntos: 77
Respuesta: Comprobar si usuario existe en bbdd

Ese codigo hace un ciclo recorriendo todos los registros de usuario, y por cada uno que no sea igual al introducido en $_POST, inserta este dato.

Seria mejor hacer la consulta buscando un registro donde el campo usuario sea igual al introducido en $_POST, si la consulta devuelve un registro, mostrar el mensaje de que ya existe, y si no, insertarlo.
  #5 (permalink)  
Antiguo 05/01/2010, 12:16
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: Comprobar si usuario existe en bbdd

Ya lo habia pensado, en la bbdd ya tengo tres campos, id, usuario y password, en mi caso el campo con indice unico se lo tengo puesto al id, lo quería controlar por codigo para que me saltase un mensaje de aviso y no de error.

De todas formas muchas gracias.
  #6 (permalink)  
Antiguo 05/01/2010, 12:22
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 16 años, 5 meses
Puntos: 1
De acuerdo Respuesta: Comprobar si usuario existe en bbdd

Muchas gracias a todos.

Con el código que ha publicado TKZeXe me funciona perfectamente.

El error por lo que he podido comprobar lo tenía con el While.

Muchas gracias una vez más y ya van unas cuantas.

Fernando
  #7 (permalink)  
Antiguo 05/01/2010, 12:24
Avatar de TKZeXe  
Fecha de Ingreso: diciembre-2009
Ubicación: Flowers
Mensajes: 166
Antigüedad: 14 años, 10 meses
Puntos: 6
Respuesta: Comprobar si usuario existe en bbdd

tenias un enredo de identacion de locos, asi que borre el end del while al azar casi ajja

^^!
  #8 (permalink)  
Antiguo 19/05/2010, 09:42
 
Fecha de Ingreso: mayo-2010
Mensajes: 4
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Comprobar si usuario existe en bbdd

Buenas tardes, yo quiero hacer lo mismo con mi bbdd pero no me sale.
Dispongo del siguiente codigo:

Código PHP:
Ver original
  1.        
  2.         include("usuario_validado.php");
  3.        
  4.         $accion=$_GET['accion'];
  5.         if ($accion=="enviar"){
  6.             $cadena_sql="INSERT INTO usuario (nombre, email, login, password, tipo_usuario, activo)";
  7.             $cadena_sql .=" VALUES (";
  8.             $cadena_sql .="'".$_POST['NOMBRE']."', ";
  9.             $cadena_sql .="'".$_POST['EMAIL']."', ";
  10.             $cadena_sql .="'".$_POST['LOGIN']."', ";
  11.             $cadena_sql .="'".md5($_POST['PASSWORD'])."', ";
  12.             $cadena_sql .="'web', ";
  13.             $cadena_sql .="'t' ";
  14.             $cadena_sql .=")";
  15.            
  16.             $conector->ejecutarConsultaActualizacion($cadena_sql);
  17.             //$contenido="El formulario ha sido enviado correctamente";
  18.             $contenido=$smarty->fetch('registro_usuarios_fin.html');
  19.         }
  20.         else
  21.         {
  22.             $contenido=$smarty->fetch('registro_usuarios.html');
  23.         }

Gracias de antemano

Última edición por jkano8; 19/05/2010 a las 09:54

Etiquetas: bbdd, comprobar, existe, 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 12:35.