Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] evitar duplicado de usuarios registrados por cedula

Estas en el tema de evitar duplicado de usuarios registrados por cedula en el foro de PHP en Foros del Web. buen dia. tengo una bd con registros de usuarios. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original <?php   include ( "conexion.php" ) ;       ...
  #1 (permalink)  
Antiguo 01/05/2015, 15:13
 
Fecha de Ingreso: marzo-2015
Mensajes: 184
Antigüedad: 9 años
Puntos: 3
Pregunta evitar duplicado de usuarios registrados por cedula

buen dia.
tengo una bd con registros de usuarios.
Código PHP:
Ver original
  1. <?php
  2.  
  3. include("conexion.php");
  4.  
  5.  
  6.  
  7.  
  8.      if(isset($_POST['nombres']) && !empty($_POST['nombres']) &&
  9.        (isset($_POST['apellidos']) && !empty($_POST['apellidos']) &&
  10.        (isset($_POST['cedula']) && !empty($_POST['cedula']) &&
  11.        (isset($_POST['password']) && !empty($_POST['password']) &&
  12.        (isset($_POST['nickname']) && !empty($_POST['nickname']))))))
  13.  
  14.  
  15.  
  16. {
  17.      $conexion=md5($_POST['password']);
  18.  
  19.      $conexion = mysqli_connect("localhost","root","","registro");
  20.       mysqli_select_db($conexion,"registro");
  21.  
  22.  
  23.  
  24.  
  25.  
  26. mysqli_query ($conexion,"INSERT INTO usuario (NOMBRES, APELLIDOS, CEDULA, PASSWORD, NICKNAME) VALUES ('$_POST[nombres]','$_POST[apellidos]','$_POST[cedula]','$_POST[password]','$_POST[nickname]')");
  27.  
  28.  
  29.  echo"<script type=\"text/javascript\">alert('Usuario Creado Con Exito.'); window.location='registro.php';</script>";  
  30.      
  31.  
  32. }else{
  33. echo ("Datos Incorrectos");
  34.  }
  35. }
  36. ?>

y quisiera saber como puedo mandar un script alert que me indique que si el usuario que esta registrando con la misma cedula me arroje un mensaje que diga que ya existe.
adicionalmente en la bd ya puse el campo cedula como unico.


muchas gracias por sus aportes.
  #2 (permalink)  
Antiguo 01/05/2015, 16:00
Avatar de GeniosWeb  
Fecha de Ingreso: abril-2015
Ubicación: Mar del Plata
Mensajes: 50
Antigüedad: 8 años, 11 meses
Puntos: 3
Respuesta: evitar duplicado de usuarios registrados por cedula

Tendrias que hacer una consulta SELECT primero, si el usuario existe mandas el mensaje, si no existe entonces haces el insert
  #3 (permalink)  
Antiguo 01/05/2015, 16:06
 
Fecha de Ingreso: marzo-2015
Mensajes: 184
Antigüedad: 9 años
Puntos: 3
Pregunta Respuesta: evitar duplicado de usuarios registrados por cedula

muchas gracias por tu ayuda.
tengo el codigo asi pero manda el error de usuario ya existe y depues el usuario ya creado con exito.

Código PHP:
Ver original
  1. <?php
  2.  
  3. include("conexion.php");
  4.  
  5.  
  6.  
  7.  
  8.      if(isset($_POST['nombres']) && !empty($_POST['nombres']) &&
  9.        (isset($_POST['apellidos']) && !empty($_POST['apellidos']) &&
  10.        (isset($_POST['cedula']) && !empty($_POST['cedula']) &&
  11.        (isset($_POST['password']) && !empty($_POST['password']) &&
  12.        (isset($_POST['nickname']) && !empty($_POST['nickname']))))))
  13.  
  14.  
  15.  
  16. {
  17.      $conexion=md5($_POST['password']);
  18.  
  19.      $conexion = mysqli_connect("localhost","root","","registro");
  20.       mysqli_select_db($conexion,"registro");
  21.  
  22.  
  23. $result = mysql_query("SELECT * FROM $usuario WHERE $cedula='$dato'");
  24.  //Comprobamos si ya existen los nuevos datos.
  25.   if ($result && (mysql_num_rows($result)>0))
  26.           return true;  
  27. }
  28. echo"<script type=\"text/javascript\">alert('El Usuario Ya Existe.');</script>";
  29.  
  30. {
  31. mysqli_query ($conexion,"INSERT INTO usuario (NOMBRES, APELLIDOS, CEDULA, PASSWORD, NICKNAME) VALUES ('$_POST[nombres]','$_POST[apellidos]','$_POST[cedula]','$_POST[password]','$_POST[nickname]')");
  32.  
  33.  
  34.  echo"<script type=\"text/javascript\">alert('Usuario Creado Con Exito.'); window.location='registro.php';</script>";  
  35.      
  36.  
  37. }else{
  38. echo ("Datos Incorrectos");
  39.  }
  40.  
  41. ?>


que podria tener mal????

muchas gracias por tu apoyo
  #4 (permalink)  
Antiguo 01/05/2015, 17:33
 
Fecha de Ingreso: marzo-2015
Mensajes: 184
Antigüedad: 9 años
Puntos: 3
Respuesta: evitar duplicado de usuarios registrados por cedula

ya lo solucione el codigo es
Código PHP:
Ver original
  1. <?php
  2.  
  3. include("conexion.php");
  4.  
  5.     $id_ced=$_POST['cedula'];
  6.     $id_nick=$_POST['nickname'];
  7.  
  8.  
  9.      if(isset($_POST['nombres']) && !empty($_POST['nombres']) &&
  10.        (isset($_POST['apellidos']) && !empty($_POST['apellidos']) &&
  11.        (isset($_POST['cedula']) && !empty($_POST['cedula']) &&
  12.        (isset($_POST['password']) && !empty($_POST['password']) &&
  13.        (isset($_POST['nickname']) && !empty($_POST['nickname']))))))
  14.  
  15.  
  16.  
  17. {
  18.      $conexion=md5($_POST['password']);
  19.  
  20.      $conexion = mysqli_connect("localhost","root","","registro");
  21.       mysqli_select_db($conexion,"registro");
  22.  
  23. $consulta ="SELECT * FROM usuario WHERE cedula = '$id_ced' || nickname ='$id_nick'";
  24. $resultado =$conexion->query($consulta);
  25.       if ($resultado AND $resultado->num_rows> 0) {
  26.         echo"<script type=\"text/javascript\">alert('El Usuario Ya Existe.'); window.location='registro.php';</script>";
  27.      
  28.  
  29. }else{
  30.   echo"<script type=\"text/javascript\">alert('Usuario Creado Con Exito.'); window.location='registro.php';</script>";
  31.    
  32.  
  33. }
  34.  
  35. mysqli_query ($conexion,"INSERT INTO usuario (NOMBRES, APELLIDOS, CEDULA, PASSWORD, NICKNAME) VALUES ('$_POST[nombres]','$_POST[apellidos]','$_POST[cedula]','$_POST[password]','$_POST[nickname]')");
  36.  
  37. }
  38.  
  39. ?>
  #5 (permalink)  
Antiguo 02/05/2015, 02:10
Avatar de GeniosWeb  
Fecha de Ingreso: abril-2015
Ubicación: Mar del Plata
Mensajes: 50
Antigüedad: 8 años, 11 meses
Puntos: 3
Respuesta: evitar duplicado de usuarios registrados por cedula

Perfecto!! Me parece que lo que tenías mal era el if, pero la version final quedó mucho mas elegante!!
  #6 (permalink)  
Antiguo 02/05/2015, 05:54
 
Fecha de Ingreso: mayo-2015
Mensajes: 9
Antigüedad: 8 años, 10 meses
Puntos: 1
Respuesta: evitar duplicado de usuarios registrados por cedula

Creo que sigue habiendo un error, ya que cuando no existe en la base de datos, envias el mensaje de exito y sale, sin almacenar en DB.

creo que así estaria mas correcto, quedando aun por añadir comprobaciones de que al hacer el insert into no haya error.
Código PHP:
<?php
 
include("conexion.php");
 
    
$id_ced=$_POST['cedula'];
    
$id_nick=$_POST['nickname'];
 
 
     if(isset(
$_POST['nombres']) && !empty($_POST['nombres']) && 
       (isset(
$_POST['apellidos']) && !empty($_POST['apellidos']) &&
       (isset(
$_POST['cedula']) && !empty($_POST['cedula']) &&
       (isset(
$_POST['password']) && !empty($_POST['password']) &&
       (isset(
$_POST['nickname']) && !empty($_POST['nickname'])))))) 
 
 
 
{
     
$conexion=md5($_POST['password']);
 
     
$conexion mysqli_connect("localhost","root","","registro");
      
mysqli_select_db($conexion,"registro"); 
 
$consulta ="SELECT * FROM usuario WHERE cedula = '$id_ced' || nickname ='$id_nick'";
$resultado =$conexion->query($consulta);
      if (
$resultado AND $resultado->num_rows0) {
        echo
"<script type=\"text/javascript\">alert('El Usuario Ya Existe.'); window.location='registro.php';</script>";
      
 
}else{
mysqli_query ($conexion,"INSERT INTO usuario (NOMBRES, APELLIDOS, CEDULA, PASSWORD, NICKNAME) VALUES ('$_POST[nombres]','$_POST[apellidos]','$_POST[cedula]','$_POST[password]','$_POST[nickname]')");

  echo
"<script type=\"text/javascript\">alert('Usuario Creado Con Exito.'); window.location='registro.php';</script>";
    
 
}
 
 
}
 
?>

Última edición por alfonmaco; 02/05/2015 a las 05:56 Razón: detallar la explicación.
  #7 (permalink)  
Antiguo 02/05/2015, 11:31
 
Fecha de Ingreso: marzo-2015
Mensajes: 184
Antigüedad: 9 años
Puntos: 3
Respuesta: evitar duplicado de usuarios registrados por cedula

si exacto ya lo estoy arreglando mejor lo importante es que funciono, los arreglos ya se hacen revisando linea por linea.


muchas gracias por sus aportes

Etiquetas: cedula, duplicado, mysql, registrados, registro, select, 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 04:20.