entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

problema al comprobar la existencia de campos en php y msql

mirar tengo el siguiente codigo y ya lo he intentado todo lo que he encontrado para comprobar si existe el usuario o el email en la base de datos, he probado con el mysql_num_rows y con el count() haciendolo una variable sin hacerlo cambiando la consulta etc y no hay manera, os dejo el codigo del intento final, ya estoy desesperado

    <?php
if($registro=1){
    define('DB_SERVER','xxx');

    define('DB_NAME','xxx');

    define('DB_USER','xxx');

    define('DB_PASS','xxx');

    $username= $_POST["username"];
    $password=$_POST["password"];
    $email=$_POST["email"];
    $con = mysql_connect(DB_SERVER,DB_USER,DB_PASS);
    mysql_select_db(DB_NAME,$con);
    $consulta2="SELECT COUNT(*) FROM usuarios WHERE usuario='$username'";
    $repetido1=mysql_query($consulta2);
    $repetido2=mysql_fetch_array($repetido1);
    $repetido3=$repetido2['total'];
    if($repetido3>=1){
        echo "this username already exists in our database";
        ob_start(); 
  header("refresh: 5; url = registro.html"); 
  echo "<br>";
  echo 'Wait a moment and you will be redirected...';
    }else{
        $consulta3="SELECT COUNT(*) FROM usuarios WHERE email='$email'";
        $repetidoemail1=mysql_query($consulta3);
        $repetidoemail2=mysql_fetch_array($repetidoemail1);
        $repetidoemail3=$repetidoemail2['total'];

    if($repetidoemail3>=1){
        echo"that email already exists in our database if you have forgotten your password or username please click the link 'I have forgotten my password/username in the login page";
        ob_start(); 
  header("refresh: 5; url = registro.html"); 
  echo "<br>";
  echo 'Wait a moment and you will be redirected...';

ob_end_flush();
    }else{
    $consulta="INSERT INTO usuarios(usuario,password,email) ";
    $consulta.="VALUES('$username','$password','$email')";
    $result=mysql_query($consulta);
    ob_start(); 
  header("refresh: 5; url = registro.html");
  echo "nice you have completed your registration" ;
  echo "<br>";
  echo 'Wait a moment and you will be redirected...';
    }}
}else{
    echo "error, try again later";
}
echo $repetido3;
echo $repetidoemail3;
?>

seguro que tendre un fallo super absurdo pero yo ahora mismo no lo veo si me pudierais ayudar estaria muy agradecido :D

1 Respuesta

2votos

white Puntos75880

El campo total no existe en tu consulta, debes definirlo.

intenta con las consultas:

SELECT COUNT(*) AS total FROM usuarios WHERE email='$email'

SELECT COUNT(*) AS total FROM usuarios WHERE usuario='$username'

como sugerencia adicional, filtra tus variables a modo de prevenir una inyeccion sql, tambien recuerda que las funciones mysql estan deprecadas es aconsejable que uses mysqli

saludos!

0voto

oscar rodriguez comentado

muchas gracias, funciona perfectamente, te debo una :)

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta