Foros del Web » Programando para Internet » PHP »

Registros duplicados en Formulario

Estas en el tema de Registros duplicados en Formulario en el foro de PHP en Foros del Web. Buenas tardes, estoy intentando modificar un código de un formulario de registro, pero no quiero que se dupliquen los emails ni los nombres de los ...
  #1 (permalink)  
Antiguo 08/08/2012, 16:07
 
Fecha de Ingreso: junio-2012
Mensajes: 46
Antigüedad: 12 años, 5 meses
Puntos: 1
Registros duplicados en Formulario

Buenas tardes, estoy intentando modificar un código de un formulario de registro, pero no quiero que se dupliquen los emails ni los nombres de los usuarios. Pero me inserta igual los registros. Les dejo el código para ver si me pueden dar una mano.

Código PHP:
Ver original
  1. public function registrarUsuario()
  2.     {
  3.         $nombre = $_POST["nombre"];
  4.         $mail = $_POST["mail"];
  5.         $login = $_POST["login"];
  6.         $pass_JS = $_POST["pass"];
  7.         $pass_PHP = md5($_POST["pass"]);
  8.        
  9.         $sql = "SELECT * FROM usuarios WHERE correo_us='$mail' AND user='$login'";
  10.         $res = mysql_query($sql, ConectarBD::conectar());
  11.        
  12.         if(mysql_num_rows($res) == 0){
  13.            
  14.             $sql = "INSERT INTO usuarios VALUES
  15.                    (null,'$nombre','$mail','$login','$pass_JS','$pass_PHP',now(),'INACTIVO')";
  16.             $res = mysql_query($sql, ConectarBD::conectar());
  17.             $fecha = date("d-m-Y");
  18.             $hora = date("H:m:s");
  19.             $remitente = "Remitente <email@email>";
  20.             $asunto = "Confirme su Registro";
  21.             $mensaje = "Contenido del email";
  22.            
  23.             $cabeceras  = 'MIME-Version: 1.0' . "\r\n";
  24.             $cabeceras .= 'Content-type: text/html; charset=utf8' . "\r\n";
  25.             $cabeceras .= 'From:'. $remitente . "\r\n";
  26.             $cabeceras .= 'Reply-To:'. $remitente . "\r\n";
  27.             $cabeceras .= 'X-Mailer: PHP/' . phpversion();
  28.            
  29.             mail($mail, $asunto, $mensaje, $cabeceras);
  30.             echo "<script type='text/javascript'>
  31.                    alert('Gracias por registrarte, sólo falta que confirmes tu registro, revisa tu e-mail, por favor!!!');
  32.                    window.location = 'index.php';
  33.                  </script>";
  34.            
  35.         }else{
  36.            
  37.             echo "<script type='text/javascript'>
  38.                    alert('El nombre de usuario o email ya está siendo usado por otro usuario');
  39.                    window.location = 'registro.php';
  40.                  </script>";
  41.         }
  42.     }
  #2 (permalink)  
Antiguo 08/08/2012, 16:15
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Registros duplicados en Formulario

Me parece que tu código solo funcionaría si introducen dos valores y ambos campos existen en un mismo registro, de ahí que estás usando el operador AND.

En dado caso deberías cambiarlo a OR, pues la idea es no permitir que ningún valor de los dos se repita, ¡no los dos al mismo tiempo!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 08/08/2012, 16:22
 
Fecha de Ingreso: junio-2012
Mensajes: 46
Antigüedad: 12 años, 5 meses
Puntos: 1
Respuesta: Registros duplicados en Formulario

Muchas gracias peteketrueke ! Otra consulta, si yo quisiera distinguir los 2, por ejemplo, si el usuario está duplicado, o el email está duplicado y que le envíe dos errores distintos, cómo sería?
  #4 (permalink)  
Antiguo 08/08/2012, 16:23
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Registros duplicados en Formulario

En dado caso podrían ser dos consultas, o bien, extraer el array y comparar las columnas.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 08/08/2012, 16:25
 
Fecha de Ingreso: agosto-2012
Ubicación: Santiago
Mensajes: 124
Antigüedad: 12 años, 3 meses
Puntos: 60
Respuesta: Registros duplicados en Formulario

En el else {} puedes hacer un mysql_fetch_array(), luego crear un IF para el usuario o el email, si existe uno de esos, mandas el mensaje
__________________
~~Aprendiendo.
Become a Programmer, Moth*rf*cker

Etiquetas: duplicados, formulario, html, mysql, registro, registros, sql, 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 13:08.