Foros del Web » Programando para Internet » PHP »

como evitar registro si el email existe

Estas en el tema de como evitar registro si el email existe en el foro de PHP en Foros del Web. hola mi duda es que tengo hecho este sencillo codigo de registro que bueno no es mucho el cual quisiera saber como puedo incorporar un ...
  #1 (permalink)  
Antiguo 26/10/2011, 18:50
 
Fecha de Ingreso: junio-2011
Mensajes: 76
Antigüedad: 12 años, 9 meses
Puntos: 0
como evitar registro si el email existe

hola mi duda es que tengo hecho este sencillo codigo de registro
que bueno no es mucho el cual quisiera saber como puedo incorporar
un mensaje que diga que el correo ya existe, asi evite que se registre
aqui dejo mi codigo.

Código PHP:
Ver original
  1. <?php
  2. @include("Includes/Configurar.php");
  3. @include("Includes/Funciones.php");
  4. @include("Includes/Conexion.php");
  5. $msg = "";
  6. if($_POST['agregar'])
  7. {
  8.  
  9.     if(!empty($_POST['Cuenta']) || !empty($_POST['Nombres']) || !empty($_POST['Apellidos']) || !empty($_POST['Email']))
  10.     {
  11.  
  12. $Cuenta = Seguridad($_POST["Cuenta"]);
  13. $Nombre = Seguridad($_POST["Nombre"]);
  14. $Apellidos = Seguridad($_POST["Apellidos"]);
  15. $Email = Seguridad($_POST["Email"]);
  16.  
  17. $sql = "INSERT INTO usuarios (Cuenta,
  18. Nombre,
  19. Apellidos,
  20. Email) VALUES ('".$Cuenta."',
  21. '".$Nombre."',
  22. '".$Apellidos."',
  23. '".$Email."')";
  24.         mysql_query($sql,$conectar) or die(mysql_error());
  25.         $msg = "</td>
  26. </tr>
  27. </table>
  28. <table class=\"cart_last_product std\">
  29. <tr>
  30. <th colspan=\"2\">Cuenta Registrada Correctamente.</th>
  31. </tr>
  32. </table>";
  33.     } else {
  34.         $msg = "</td>
  35. </tr>
  36. </table>
  37. <table class=\"cart_last_product std\">
  38. <tr>
  39. <th colspan=\"2\">Aviso: Rellene todo el formulario.</th>
  40. </tr>
  41. </table>";
  42.     }
  43. }
  44. if($_SESSION['Acceso'])
  45. {
  46.      $usuario = mysql_fetch_array(Query("SELECT * FROM `usuarios`  WHERE  Email='".$_SESSION['Email']."'"));
  47.      $privilegios = $usuario["privilegios"];
  48.  
  49.    
  50. }else
  51. {
  52.    
  53.    Redireccionar("login.html?nocache=".base64_encode(base64_encode(bin2hex(Seguridad($_SERVER['REQUEST_URI']))))."&tiempo=".time());
  54. }
  55. if($privilegios == "admin"){
  56. ?>

ya lo probe asi como esta..
pero eso registra hasta los mismos datos.. las veces que quiera..
y quiero evitar que no pase eso.. gracias espero algun ejemplo de como
poder incorporar el sistema que evita que se registren con el mismo correo
  #2 (permalink)  
Antiguo 26/10/2011, 20:25
(Desactivado)
 
Fecha de Ingreso: agosto-2011
Mensajes: 42
Antigüedad: 12 años, 8 meses
Puntos: 9
Respuesta: como evitar registro si el email existe

mira no tengo mucho tiempo pero te explico, haz una variable $resultado = mysql_query("CONSULTA PARA LLAMAR AL MAIL, ejemplo: SELECT mail FROM tutabla WHERE (mail = 'mail')");
bueno ahora que tienes $resultado creas $fila = mysql_fetch_array($resultado);
Entonces ahora comparas
if($fila['mail'] == $mail o $_POST['mail']){
echo "los mails coinciden no se pueden mandar los datos";
}
else{
INSERTAS TODOS LOS DATOS EN LA TABLA
}

Espero haberte ayudado, no pude leer tu codigo pero asi es una idea de como se hace, lo hice asi y me funciona.
  #3 (permalink)  
Antiguo 26/10/2011, 22:52
 
Fecha de Ingreso: junio-2011
Mensajes: 76
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: como evitar registro si el email existe

intento hacerlo.. pero fallo..
no soy buena realizando estas variables..
mas que solo insertar editar o borrar.. pero
internat hacer lo que me dices.. en mi codigo no puedo lograr
que funcione.. si tienes un poco de tiempo no se si podrias..
darme un ejemplo usando mi codigo actual.. gracias
  #4 (permalink)  
Antiguo 26/10/2011, 23:38
Avatar de animerika1  
Fecha de Ingreso: octubre-2011
Mensajes: 27
Antigüedad: 12 años, 6 meses
Puntos: 3
Respuesta: como evitar registro si el email existe

Prueba con este, recuerda en el select cambiar por tus nombres de tabla o variables



if(!empty($_POST['Cuenta']) || !empty($_POST['Nombres']) || !empty($_POST['Apellidos']) || !empty($_POST['Email']))
{

$busqueda= mysql_query("SELECT Email FROM usuarios WHERE Email='".$Email."'");

if(mysql_num_rows($busqueda)>0) {
echo "email existe";

}

else {

$Cuenta = Seguridad($_POST["Cuenta"]);
$Nombre = Seguridad($_POST["Nombre"]);
$Apellidos = Seguridad($_POST["Apellidos"]);
$Email = Seguridad($_POST["Email"]);

$sql = "INSERT INTO usuarios (Cuenta,
Nombre,
Apellidos,
Email) VALUES ('".$Cuenta."',
'".$Nombre."',
'".$Apellidos."',
'".$Email."')";
mysql_query($sql,$conectar) or die(mysql_error());
$msg = "</td>
</tr>
</table>
<table class=\"cart_last_product std\">
<tr>
<th colspan=\"2\">Cuenta Registrada Correctamente.</th>
</tr>
</table>";

}
}

else {
$msg = "</td>
</tr>
</table>
<table class=\"cart_last_product std\">
<tr>
<th colspan=\"2\">Aviso: Rellene todo el formulario.</th>
</tr>
</table>";
}
}
  #5 (permalink)  
Antiguo 27/10/2011, 00:00
 
Fecha de Ingreso: junio-2011
Mensajes: 76
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: como evitar registro si el email existe

fue casi lo mismo que realize..
es como si se pasara por alto..
y registra siempre a cualquiera con el mismo email..
es por ello.. que no se como hacerlo para que funcione y niege el registro
por existir ya otro email con el mismo nombre en la base de datos

PD: intente usando el ejemplo que me das.. pero lo sige pasando por alto
y sigue registrandose..
  #6 (permalink)  
Antiguo 27/10/2011, 00:03
Avatar de animerika1  
Fecha de Ingreso: octubre-2011
Mensajes: 27
Antigüedad: 12 años, 6 meses
Puntos: 3
Respuesta: como evitar registro si el email existe

Cita:
Iniciado por andrea7755 Ver Mensaje
fue casi lo mismo que realize..
es como si se pasara por alto..
y registra siempre a cualquiera con el mismo email..
es por ello.. que no se como hacerlo para que funcione y niege el registro
por existir ya otro email con el mismo nombre en la base de datos

PD: intente usando el ejemplo que me das.. pero lo sige pasando por alto
y sigue registrandose..
Ese codigo lo uso yo y me funciona perfectamente, si quieres ayuda mas personalizada pasame tus archivos de formulario y de recibo para ver en que estas fallando.
  #7 (permalink)  
Antiguo 27/10/2011, 00:09
Avatar de animerika1  
Fecha de Ingreso: octubre-2011
Mensajes: 27
Antigüedad: 12 años, 6 meses
Puntos: 3
Respuesta: como evitar registro si el email existe

edito. dejame seguir revisando, este condicional deberia funcionarte

Última edición por animerika1; 27/10/2011 a las 00:16
  #8 (permalink)  
Antiguo 27/10/2011, 00:17
 
Fecha de Ingreso: junio-2011
Mensajes: 76
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: como evitar registro si el email existe

aqui te envio es formulario unico como lo tengo
normalmente

Código PHP:
Ver original
  1. <?php
  2. @include("Includes/Configurar.php");
  3. @include("Includes/Funciones.php");
  4. @include("Includes/Conexion.php");
  5. $msg = "";
  6. if($_POST['agregar'])
  7. {
  8.  
  9.     if(!empty($_POST['Cuenta']) || !empty($_POST['Nombres']) || !empty($_POST['Apellidos']) || !empty($_POST['Email']))
  10.     {
  11.  
  12. $Cuenta = Seguridad($_POST["Cuenta"]);
  13. $Nombre = Seguridad($_POST["Nombre"]);
  14. $Apellidos = Seguridad($_POST["Apellidos"]);
  15. $Email = Seguridad($_POST["Email"]);
  16.  
  17. $sql = "INSERT INTO usuarios (Cuenta,
  18. Nombre,
  19. Apellidos,
  20. Email) VALUES ('".$Cuenta."',
  21. '".$Nombre."',
  22. '".$Apellidos."',
  23. '".$Email."')";
  24.         mysql_query($sql,$conectar) or die(mysql_error());
  25.         $msg = "</td>
  26. </tr>
  27. </table>
  28. <table class=\"cart_last_product std\">
  29. <tr>
  30. <th colspan=\"2\">Cuenta Registrada Correctamente.</th>
  31. </tr>
  32. </table>";
  33.     } else {
  34.         $msg = "</td>
  35. </tr>
  36. </table>
  37. <table class=\"cart_last_product std\">
  38. <tr>
  39. <th colspan=\"2\">Aviso: Rellene todo el formulario.</th>
  40. </tr>
  41. </table>";
  42.     }
  43. }
  44. if($_SESSION['Acceso'])
  45. {
  46.      $usuario = mysql_fetch_array(Query("SELECT * FROM `usuarios`  WHERE  Email='".$_SESSION['Email']."'"));
  47.      $privilegios = $usuario["privilegios"];
  48.  
  49.    
  50. }else
  51. {
  52.    
  53.    Redireccionar("loginpanel.html?nocache=".base64_encode(base64_encode(bin2hex(Seguridad($_SERVER['REQUEST_URI']))))."&tiempo=".time());
  54. }
  55. if($privilegios == "admin"){
  56. ?>
  57.  
  58. <?=$msg;?>
  59. <form name="rg" action="" method="post" enctype="multipart/form-data" class="std identity">
  60. <fieldset>
  61. <p class="required text">
  62. <label for="firstcuenta">Direccion de Cuenta</label>
  63. <input type="text" id="Cuenta" name="Cuenta" /> <sup>*</sup>
  64. </p>
  65.  
  66. <p class="required text">
  67. <label for="firstnombre">Nombres</label>
  68. <input type="text" id="Nombre" name="Nombre" /> <sup>*</sup>
  69. </p>
  70.  
  71. <p class="required text">
  72. <label for="firstapellido">Apellidos</label>
  73. <input type="text" id="Apellidos" name="Apellidos" /> <sup>*</sup>
  74. </p>
  75.  
  76. <p class="required text">
  77. <label for="firstemail">Correo Electronico</label>
  78. <input type="text" id="Email" name="Email" /> <sup>*</sup>
  79. </p>
  80. <p class="required required_desc"><sup>*</sup>Todos los Campos son Obligatorios</p>
  81.             <p class="submit">
  82.                 <input type="submit" class="button" name="agregar" value="Guardar" />
  83.             </p>
  84.         </fieldset>
  85.     </form>
  86. <?php }else
  87. {
  88. Redireccionar("home.html?nocache=".base64_encode(base64_encode(bin2hex(Seguridad($_SERVER['REQUEST_URI']))))."&tiempo=".time());
  89. }?>

y esta es la forma como me dices que lo realize:

Código PHP:
Ver original
  1. <?php
  2. @include("Includes/Configurar.php");
  3. @include("Includes/Funciones.php");
  4. @include("Includes/Conexion.php");
  5. $msg = "";
  6. if($_POST['agregar'])
  7. {
  8.  
  9. if(!empty($_POST['Cuenta']) || !empty($_POST['Nombres']) || !empty($_POST['Apellidos']) || !empty($_POST['Email']))
  10. {
  11.  
  12. $busqueda= mysql_query("SELECT Email FROM usuarios WHERE Email='".$Email."'");
  13.  
  14. if(mysql_num_rows($busqueda)>0) {
  15. echo "email existe";
  16.  
  17. }
  18.  
  19. else {
  20.  
  21. $Cuenta = Seguridad($_POST["Cuenta"]);
  22. $Nombre = Seguridad($_POST["Nombre"]);
  23. $Apellidos = Seguridad($_POST["Apellidos"]);
  24. $Email = Seguridad($_POST["Email"]);
  25.  
  26. $sql = "INSERT INTO usuarios (Cuenta,
  27. Nombre,
  28. Apellidos,
  29. Email) VALUES ('".$Cuenta."',
  30. '".$Nombre."',
  31. '".$Apellidos."',
  32. '".$Email."')";
  33. mysql_query($sql,$conectar) or die(mysql_error());
  34. $msg = "</td>
  35. </tr>
  36. </table>
  37. <table class=\"cart_last_product std\">
  38. <tr>
  39. <th colspan=\"2\">Cuenta Registrada Correctamente.</th>
  40. </tr>
  41. </table>";
  42.  
  43. }
  44. }
  45.  
  46. else {
  47. $msg = "</td>
  48. </tr>
  49. </table>
  50. <table class=\"cart_last_product std\">
  51. <tr>
  52. <th colspan=\"2\">Aviso: Rellene todo el formulario.</th>
  53. </tr>
  54. </table>";
  55. }
  56. }
  57. if($_SESSION['Acceso'])
  58. {
  59.      $usuario = mysql_fetch_array(Query("SELECT * FROM `usuarios`  WHERE  Email='".$_SESSION['Email']."'"));
  60.      $privilegios = $usuario["privilegios"];
  61.  
  62.    
  63. }else
  64. {
  65.    
  66.    Redireccionar("loginpanel.html?nocache=".base64_encode(base64_encode(bin2hex(Seguridad($_SERVER['REQUEST_URI']))))."&tiempo=".time());
  67. }
  68. if($privilegios == "admin"){
  69. ?>
  70. <?=$msg;?>
  71. <form name="rg" action="" method="post" enctype="multipart/form-data" class="std identity">
  72. <fieldset>
  73. <p class="required text">
  74. <label for="firstcuenta">Direccion de Cuenta</label>
  75. <input type="text" id="Cuenta" name="Cuenta" /> <sup>*</sup>
  76. </p>
  77.  
  78. <p class="required text">
  79. <label for="firstnombre">Nombres</label>
  80. <input type="text" id="Nombre" name="Nombre" /> <sup>*</sup>
  81. </p>
  82.  
  83. <p class="required text">
  84. <label for="firstapellido">Apellidos</label>
  85. <input type="text" id="Apellidos" name="Apellidos" /> <sup>*</sup>
  86. </p>
  87.  
  88. <p class="required text">
  89. <label for="firstemail">Correo Electronico</label>
  90. <input type="text" id="Email" name="Email" /> <sup>*</sup>
  91. </p>
  92. <p class="required required_desc"><sup>*</sup>Todos los Campos son Obligatorios</p>
  93.             <p class="submit">
  94.                 <input type="submit" class="button" name="agregar" value="Guardar" />
  95.             </p>
  96.         </fieldset>
  97.     </form>
  98. <?php }else
  99. {
  100. Redireccionar("home.html?nocache=".base64_encode(base64_encode(bin2hex(Seguridad($_SERVER['REQUEST_URI']))))."&tiempo=".time());
  101. }?>

pero pareciera que no hace nada.. y registra siempre todo igual
  #9 (permalink)  
Antiguo 27/10/2011, 00:35
Avatar de animerika1  
Fecha de Ingreso: octubre-2011
Mensajes: 27
Antigüedad: 12 años, 6 meses
Puntos: 3
Respuesta: como evitar registro si el email existe

Prueba con este.



$Cuenta = Seguridad($_POST["Cuenta"]);
$Nombre = Seguridad($_POST["Nombre"]);
$Apellidos = Seguridad($_POST["Apellidos"]);
$Email = Seguridad($_POST["Email"]);

if(!empty($_POST['Cuenta']) || !empty($_POST['Nombres']) || !empty($_POST['Apellidos']) || !empty($_POST['Email']))
{

/seleccionas la tabla donde quieres hacer la consulta:

mysql_select_db("usuarios", $conectar);
$busqueda= mysql_query("SELECT Email FROM usuarios WHERE Email='".$Email."'");


Haz la prueba con 2 tipos para ver cual te funciona, este :

if(mysql_num_rows($busqueda)>0) {

o este:

if($busqueda['Email'] == $_POST['Email']){





echo "email existe";

}

else {


$sql = "INSERT INTO usuarios (Cuenta,
Nombre,
Apellidos,
Email) VALUES ('".$Cuenta."',
'".$Nombre."',
'".$Apellidos."',
'".$Email."')";
mysql_query($sql,$conectar) or die(mysql_error());
$msg = "</td>
</tr>
</table>
<table class=\"cart_last_product std\">
<tr>
<th colspan=\"2\">Cuenta Registrada Correctamente.</th>
</tr>
</table>";

}
}

else {
$msg = "</td>
</tr>
</table>
<table class=\"cart_last_product std\">
<tr>
<th colspan=\"2\">Aviso: Rellene todo el formulario.</th>
</tr>
</table>";
}
}
  #10 (permalink)  
Antiguo 27/10/2011, 11:04
 
Fecha de Ingreso: junio-2011
Mensajes: 76
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: como evitar registro si el email existe

Edito:
ya pude solucionarlo.. usando de esta manera..
y aclaro que volvi a rehacerla con algunos ejemplos...
y me quedo asi.. con nuevas variables

usando estas 2 variables para realizar las validaciones
Código PHP:
Ver original
  1. $error = array();
  2. $validacion = array();

y empeze a rehacer.. desde donde pide el llenado del formuladio
asi que la volvi a rehacer esta
Código PHP:
Ver original
  1. if(!empty($_POST['Cuenta']) || !empty($_POST['Nombres']) || !empty($_POST['Apellidos']) || !empty($_POST['Email']))
  2. {

y empeze hacer una x una de sta manera.. y mejorada
Código PHP:
Ver original
  1. if(empty($Cuenta))
  2. {  
  3.     $error[0] = "</td>
  4. </tr>
  5. </table>
  6. <table class=\"cart_last_product std\">
  7. <tr>
  8. <th colspan=\"2\">La Cuenta debe ser superior a 3. Caracteres.</th>
  9. </tr>
  10. </table>";
  11.     $validacion[0] = false;
  12.    
  13. }else
  14. {
  15.      if(strlen($Cuenta) > 3)
  16.      {
  17.       if(Queryvalido($Cuenta,"usuarios","Cuenta"))
  18.        {
  19.           $error[0] = "</td>
  20. </tr>
  21. </table>
  22. <table class=\"cart_last_product std\">
  23. <tr>
  24. <th colspan=\"2\">Esta Cuenta ya existe en nuestra base de datos.</th>
  25. </tr>
  26. </table>";
  27.           $validacion[0] = false;
  28.        }else
  29.        {
  30.        $validacion[0] =true;
  31.        $error[0] = "";
  32.        }
  33.      }else
  34.      {
  35.          $error[0] = "</td>
  36. </tr>
  37. </table>
  38. <table class=\"cart_last_product std\">
  39. <tr>
  40. <th colspan=\"2\">Esta Cuenta ya existe en nuestra base de datos.</th>
  41. </tr>
  42. </table>";
  43.          $validacion[0] = false;
  44.      }
  45. }

como pueden ver ahora.. pide cantidad de caracteres minimos que es como decir que se llene
ya que lo que intengo es ver si existe la cuenta y el correo aqui solo deje de cuenta
y lo demas es casi lo mismo..
muchas gracias por su ayuda

Última edición por andrea7755; 27/10/2011 a las 12:49
  #11 (permalink)  
Antiguo 27/10/2011, 13:48
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 6 meses
Puntos: 80
Respuesta: como evitar registro si el email existe

Algo fácil es poner en tu base de datos el campo email como único, al insertar dará error creo que es 1062, lo capturas y ves si es ese numero, si es le dices que ese usuario esta repetido..

Saludos
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp
  #12 (permalink)  
Antiguo 27/10/2011, 14:00
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 6 meses
Puntos: 511
Respuesta: como evitar registro si el email existe

Hola que tal.

y por que no lo compruebas al instante con php ajax para evitar todo este proceso
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125

Etiquetas: email, formulario, html, mysql, registro, 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 22:31.