Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Comprobar si un usuario existe en la base de datos con PHP

Estas en el tema de Comprobar si un usuario existe en la base de datos con PHP en el foro de PHP en Foros del Web. Hola chicos Verán, tengo un formulario de registro en mi sitio web que estoy recién implementando, el cual pide un nombre de usuario, correo electrónico ...
  #1 (permalink)  
Antiguo 23/09/2014, 18:12
 
Fecha de Ingreso: mayo-2014
Mensajes: 13
Antigüedad: 3 años, 9 meses
Puntos: 4
Exclamación Comprobar si un usuario existe en la base de datos con PHP

Hola chicos

Verán, tengo un formulario de registro en mi sitio web que estoy recién implementando, el cual pide un nombre de usuario, correo electrónico y contraseña.
No sé mucho sobre seguridad para validar, así que he validado los campos con un codigo php bastante simple en realidad.

Mi problema es que no sé como verificar si el nombre de usuario (o correo eléctronico) están ya registrados

Por ejemplo, así estoy validando los campos

Código PHP:
//Verificar que contenga caracteres permitidos
if(!preg_match("/^[a-zA-Z0-9\-_]+$/"$usuario)){
    
$errores[]=true;
    
$_SESSION['error1']="El nombre de usuario solo puede contener letras, numeros, guion o underscore";
}

//Comprobar que el nombre de usuario no esté vacio
if($usuario==""){
    
$errores[]=true;
    
$_SESSION['error1']="Ingrese un nombre de usuario";
}

//Comprobar que el nombre de usuario tenga un mínimo de 4 caracteres
$minimocaracteres=4
if (
strlen($usuario)<$minimocaracteres){ 
$errores[]=true;
    
$_SESSION['error1']=" Minimo cuatro caracteres";

Esas validaciones me funcionan bien, pero no sé como incluir una consulta SQL que me diga si el nombre de usuario ya existe en la base de datos escribiendo el error en el $_SESSION['error1']

Como dato les digo que la función de validación se encuentra en otra página y la tabla de usuarios y email en mi base de datos son campos únicos, por lo tanto aunque se valide el formulario el registro no se guardará.

Si alguien me ayuda le estaría muy agradecido
  #2 (permalink)  
Antiguo 23/09/2014, 18:31
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 9 años, 10 meses
Puntos: 2527
Respuesta: Comprobar si un usuario existe en la base de datos con PHP

Antes que nada, ¿sabes ejecutar consultas?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 23/09/2014, 18:36
 
Fecha de Ingreso: septiembre-2012
Mensajes: 53
Antigüedad: 5 años, 5 meses
Puntos: 2
Respuesta: Comprobar si un usuario existe en la base de datos con PHP

Saludos,
Para validarlo tiene que conectar a la base de datos en tu tabla usuarios

x ejemplo hay una tabla usuarios con los siguientes campos
ID, nombre, email, password

harias la siguiente consulta (antes de hacer deberias conectar a la base de datos en caso de que no lo hallas hecho antes)

Código PHP:
Ver original
  1. <?php
  2. // donde dice $variableUsuario tienes que poner la variable en la cual tienes el nombre del user para validarlo, supongo que ha de ser una POST, pero tu lo modificas
  3.  
  4. $usuario = $variableUsuario;
  5.  
  6.  $q = mysql_query("SELECT * FROM usuarios WHERE nombre = '$usuario'")
  7.  //verificamos si el user exite con un condicional
  8.  if( mysql_num_rows($q) == 0){
  9. // mysql_num_rows <- esta funcion me imprime el numero de registro que encontro
  10. // si el numero es igual a 0 es porque el registro no exite, en otras palabras ese user no esta en la tabla miembro por lo tanto se puede registrar
  11.  
  12. echo "el user es valido";
  13. }
  14. else{
  15. //caso contario (else) es porque ese user ya esta registrado
  16.  
  17. echo 'el user ya esta registrado, ingresa otro';
  18. }
  19.  
  20. ?>
bueno el resto ya depende de ti, ya te di la pauta para que le sigas, investiga mas
Suerte!!
  #4 (permalink)  
Antiguo 23/09/2014, 19:25
 
Fecha de Ingreso: mayo-2014
Mensajes: 13
Antigüedad: 3 años, 9 meses
Puntos: 4
Respuesta: Comprobar si un usuario existe en la base de datos con PHP

Por ejemplo tengo las variables definidas asi

Código PHP:
session_start();

include(
'conexion.php');

$usuario = isset($_POST['user']) ? $_POST['user'] : null ;
...

$_SESSION['imp']=$_POST;

$errores=array(); 
Y las comprobaciones como ya les había mencionado

Código PHP:
if($usuario==""){
    
$errores[]=true;
    
$_SESSION['error1']="Ingrese un nombre de usuario;

Para hacer la consulta utilicé un "SELECT usuario FROM usuarios WHERE usuario='$usuario", y aqui es donde quedo varado

¿Cómo trato esa consulta para poder utilizarla?

Por ejemplo, había echo algo como esto

Código PHP:
$sql mysql_query("SELECT usuario FROM usuarios WHERE usuario = '$usuario'");

if( 
mysql_num_rows($sql) != 0){
$errores[]=true;
$_SESSION['error1']="usuario NO disponible";

Obviamente no me funcionó Perdonen mi ignorancia
  #5 (permalink)  
Antiguo 24/09/2014, 04:34
 
Fecha de Ingreso: octubre-2012
Ubicación: Madrid
Mensajes: 67
Antigüedad: 5 años, 3 meses
Puntos: 1
Respuesta: Comprobar si un usuario existe en la base de datos con PHP

yo tengo un archivo tipo para hacer las acciones con la bbdd:

Código:
<?php

function connBBDD() 

{
	$DBName = 'nombre_de_la_bbdd';
	$DBUser = 'usuario_de_la_bbdd';
	$DBHost = 'host';
	$DBPassword = 'contraseña_de_la_bbdd';

	$conn = mysql_connect($DBHost,$DBUser,$DBPassword);
	if($conn != null)
  		$conexion = mysql_select_db($DBName, $conn);
  	return $conn;
}

function closeBBDD($conn) 
{
  	mysql_close($conn);
}

function select($conn, $sql)
{
	$results = mysql_query($sql);
	$resultados = obtenerArray($results);
	if($resultados != "")
		return $resultados;
	else
		return 0;
}

function insert($conn, $sql)
{
	$results = mysql_query($sql,$conn);
	if (!$results) 
		return false;
	return true;
}

function update($conn, $sql)
{
	$results = mysql_query($sql,$conn);
	if (!$results) 
		return false;
	return true;
}

function delete($conn, $sql)
{
	$results = mysql_query($sql,$conn);
	if (!$results) 
		return false;
	return true;
}

function obtenerArray($rs)
{
      $j=0;
      $filas = "";
      $num = mysql_num_fields($rs);
      for($i=0;$i<$num;$i++){
          $columnas[$i] = mysql_field_name($rs, $i);
      }
      while($fila = mysql_fetch_assoc($rs)){
          $filas[$j] = $fila;
          $j++;
      }
         return $filas;
}

?>
con esto pues para hacer tu consulta tendrías que hacer algo más o menos así:

Código:
$conn = connBBDD();
$sql = 'SELECT * FROM usuarios WHERE nombre=\''.$usuario.'\';';
$resultado = select($conn, $sql);
closeBBDD($conn);
de este modo en la variable $resultado tendrías un array con la fila perteneciente a ese usuario
  #6 (permalink)  
Antiguo 25/09/2014, 02:15
 
Fecha de Ingreso: mayo-2014
Mensajes: 13
Antigüedad: 3 años, 9 meses
Puntos: 4
Respuesta: Comprobar si un usuario existe en la base de datos con PHP

Gracias Educdd, eso era justo lo que necesitaba

Etiquetas: formulario, registro, sql, tabla, usuario, 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 00:09.