Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/05/2010, 15:34
den_22
 
Fecha de Ingreso: enero-2010
Mensajes: 198
Antigüedad: 15 años, 1 mes
Puntos: 1
Email duplicado en bd Ayuda!

Hola amigos, estoy con un gran problema, al registrarse se puede utilizar la misma direccion de correo electronico. Como hago para que diga en $err "Pon otra casilla de email" ?
Intenté con poner lo de la parte de $busqueda, pero no funciona.

Necesito ayuda. gracias.

Código PHP:
Ver original
  1. <?php
  2.  
  3.  
  4.  
  5. error_reporting(E_ALL ^ E_NOTICE);
  6.  
  7. define('INCLUDE_CHECK',true);
  8.  
  9. require("connect.php");
  10. require("functions.php");
  11.  
  12.  
  13. //Archivos incluidos solo si el INCLUDE_CHECK est� definido
  14.  
  15. session_name('pLogin');
  16. //Empezando la sesi�n
  17.  
  18. //La cookie vive por 2 semanas
  19.  
  20.  
  21. if($_SESSION['id'] && !isset($_COOKIE['dmRemember']) && !$_SESSION['rememberMe'])
  22. {
  23.     //Si est� logueado, pero no tiene la cookie dmRemember (el navegador se reinicia)
  24.     // y si no ha checkeado la rememberMe checkbox:
  25.    
  26.     $_SESSION=array();
  27.    
  28.     //Destruir la sesion
  29. }
  30.  
  31. if(isset($_GET['logoff']))
  32. {
  33.     $_SESSION=array();
  34.    
  35.     header("Location: index.php");
  36.     exit;
  37. }
  38.  
  39. if($_POST['submit']=='Ingresar')
  40. {
  41.     //checando si el login form ha sido submit
  42.     $err=array();
  43.     //Tira los errores nuestros
  44.    
  45.    
  46. if(!$_POST['username'] || !$_POST['password'])
  47.     $err[]='Todos los campos deben ser completados!';
  48.  
  49. if(!count($err))
  50. {
  51.     $_POST['username']=mysql_real_escape_string($_POST['username']);
  52.     $_POST['password']=mysql_real_escape_string($_POST['password']);
  53.     $_POST['rememberMe']=(int)$_POST['rememberMe'];
  54.    
  55.     //escaping all input data
  56.    
  57.     $row=mysql_fetch_assoc(mysql_query("SELECT id,usuario FROM members WHERE usuario='{$_POST['username']}' AND pass='".md5($_POST['password'])."'"));
  58.    
  59.     if($row['usuario'])
  60.     {
  61.         //Si todo est� logueado correctamente
  62.        
  63.         //$_SESSION['username']=$row['user'];
  64.         $_SESSION['usuario']=$row['usuario'];
  65.         $_SESSION['id']=$row['id'];
  66.         $_SESSION['sexo']=$row['sexo'];
  67.         $_SESSION['rememberMe']=$_POST['rememberMe'];
  68.        
  69.         //Store some data in the session
  70.        
  71.         setcookie('dmRemember',$_POST['rememberMe']);
  72.         }
  73.         else    $err[]='Usuario y/o Password incorrectos!';
  74.     }
  75.    
  76.     if($err)
  77.     $_SESSION['msg']['login-err']=implode('<br />', $err);
  78.     //Guardamos los mensajes de error en la sesion
  79.    
  80.     header("Location: index.php");
  81.     exit;
  82. }
  83. else if($_POST['submit']=='Registrar')
  84. {
  85.     //Si el formulario de registro ha sido enviado
  86.    
  87.     $err=array();
  88.     if(strlen($_POST['firstname'])>100)
  89.     {
  90.         $err[]='Tu nombre(s) debe tener menos de 100 caracteres!';
  91.     }
  92.  
  93.     if(!preg_match('/[^0-9\-\_\.]+/i',$_POST['firstname']))
  94.     {
  95.         $err[]='Tu nombre(s) contiene caracteres inválidos!';
  96.     }
  97.  
  98.     if(strlen($_POST['lastname'])>100)
  99.     {
  100.         $err[]='Tu apellido debe tener menos de 100 caracteres!';
  101.     }
  102.  
  103.     if(!preg_match('/[^0-9\-\_\.]+/i',$_POST['lastname']))
  104.     {
  105.         $err[]='Tu apellido contiene caracteres inválidos!';
  106.     }
  107.    
  108.     if(strlen($_POST['username'])<4 || strlen($_POST['username'])>100)
  109.     {
  110.         $err[]='Tu nombre de usuario debe tener entre 4 y 100 caracteres!';
  111.     }
  112.    
  113.     if(preg_match('/[^a-z0-9\-\_\.]+/i',$_POST['username']))
  114.     {
  115.         $err[]='Tu nombre de usuario contiene caracteres inválidos!';
  116.     }
  117.    
  118.     if(strlen($_POST['password'])<6 || strlen($_POST['password'])>32)
  119.     {
  120.         $err[]='Tu contraseña debe tener entre 6 y 32 caracteres!';
  121.     }
  122.    
  123.     if(preg_match('/[^a-z0-9\-\_\.]+/i',$_POST['password']))
  124.     {
  125.         $err[]='Tu contrase�a es d�bil!';
  126.     }
  127.    
  128.     if($_POST['repassword']!=$_POST['password'])
  129.     {
  130.         $err[]='Tu repetición de password es distinta de la primera!';
  131.     }
  132.    
  133.     if(!checkEmail($_POST['email']))
  134.     {
  135.         $err[]='Tu email no es válido!';
  136.     }
  137.    
  138.     if(!count($err))
  139.     {
  140.         //Si no hay errores
  141.        
  142.         $_POST['email']=mysql_real_escape_string($_POST['email']);
  143.         $_POST['password']=mysql_real_escape_string($_POST['password']);
  144.         $_POST['username']=mysql_real_escape_string($_POST['username']);
  145.         $_POST['firstname']=mysql_real_escape_string($_POST['firstname']);
  146.         $_POST['lastname']=mysql_real_escape_string($_POST['lastname']);
  147.         $_POST['sexo']=mysql_real_escape_string($_POST['sexo']);
  148.         //Escape the input data
  149.        
  150.     $busqueda= mysql_query("SELECT email FROM members WHERE email='$email'");
  151.  
  152.  
  153.  
  154. if(mysql_num_rows($busqueda)>0) {
  155.  
  156. echo   $err[]= 'La direccion de correo electronico no se encuentra disponible. Por favor intente con otro';    
  157.     }
  158.     else {     
  159.        
  160.             mysql_query("   INSERT INTO members(firstname,lastname,usuario,pass,email,sexo,dt)
  161.                         VALUES('".$_POST['firstname']."','".$_POST['lastname']."','".$_POST['username']."','".md5($_POST['password'])."','".$_POST['email']."','".$_POST['sexo']."',NOW())");
  162.                        
  163.            
  164.             if(mysql_affected_rows($link)==1)
  165.             {
  166.                 send_mail(  '[email protected]',
  167.                         $_POST['email'],
  168.                         'Registro',
  169.                         'Tu nombre de usuario es: '.$username.'\n Tu contrase�a es: '.$password);
  170.                        
  171.                
  172.                 $_SESSION['msg']['reg-success']='Te hemos enviado un email con tu información de registro!';
  173.                 }
  174.                 else
  175.                  $err[]='El nombre de usuario ya está en uso!';
  176.                  
  177.             }
  178.            
  179.             if(count($err))
  180.             {
  181.                 $_SESSION['msg']['reg-err']=implode('<br />',$err);
  182.             }
  183.                
  184.     header("Location: index.php");
  185.     exit;
  186.        
  187.            
  188.     }
  189.  
  190. }
  191.  
  192. ?>