Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/06/2012, 21:47
towi62
 
Fecha de Ingreso: abril-2005
Mensajes: 253
Antigüedad: 19 años
Puntos: 0
no logro validar bien

Tengo un formulario de registro de usuarios.
Y los problemas que tengo con este formulario son al momento de validar, es que necesito validar email mediante expresión regular; y comparar las claves y los problemas que me presentan son:

-en la validación de email, si no relleno todos los campos del formulario y escribo el email incorrecto, si me avisa que escribí mal email.
Pero si lleno todos los campos y escribo email incorrecto lo ignora e inserta los datos en la tabla sin importarle que el email este mal escrito.
-En la comparación de claves si escribo las claves incorrectas y aunque ya exista usuario en la tabla me inserta el usuario repetido.


Este es mi código haber que le solución se le encuentra:

Código PHP:
Ver original
  1. <?php
  2.  
  3.  
  4.  
  5. if (!$_POST){
  6. ?>
  7. <form action="" method="post" enctype="multipart/form-data" id="form1" name="form1">  
  8.     <br>
  9.     Usuario: <input type="text" name="usuario" size="30">
  10.     <br>
  11.     contraseña: <input type="password" name="password" size="30">
  12.     <br>
  13.     Repetir contraseña: <input type="password" name="password2" size="30">
  14.     <br>
  15.     Email: <input type="text" name="email" size="30">
  16.     <br>
  17.     Telefono: <input type="text" name="telefono" size=14 >  
  18.     <br>
  19.     <input type="submit" value="registrarse">
  20.     </form>
  21. <?
  22. }//aqui termina el if del formulario de la autollamada
  23. else{
  24.    
  25.    $usuario = trim($_POST['usuario']);
  26.      $password= $_POST["password"];
  27.       $password2= $_POST["password2"];  
  28.      $email= $_POST["email"];
  29.      $telefono= $_POST["telefono"];
  30.      
  31.    
  32.          require_once("conexion.php");
  33.      
  34.  
  35.  if($_POST['password'] == $_POST['password2'])
  36. { echo "Iguales"; }
  37. else{
  38.     echo "Alguna es diferente"; }  
  39.  
  40.  
  41. mysql_select_db ("base_datos",$conexion);
  42. // chequeas si el usuario esta en la bd
  43. $sql="SELECT * FROM usuarios WHERE usuario='".$usuario."'";
  44. $respuesta= mysql_query($sql,$conexion) or die("Error: ".mysql_error());
  45.  
  46. // entonces dices
  47. if(mysql_num_rows($respuesta)==0){ // no esta disponible
  48. // aqui el codigo de ingreso del usuario y datos
  49. } else {
  50. header("Location: registrarse.php");
  51. // en caso de que te de problemas la funcion header utilizas a javascript
  52. print "<script>window.location.href='registrarse.php';</script>";
  53. }
  54.  
  55. //validar que se haya escrito bien email con expresion regular
  56.     if(!ereg(
  57. '^[a-z0-9]+([\.]?[a-z0-9_-]+)*@'.// usuario
  58. '[a-z0-9]+([\.-]+[a-z0-9]+)*\.[a-z]{2,}$',  $email)){
  59. echo "correo invalido";
  60. }
  61.  //funcion que checa si campos estan vacios
  62.      function check_formText($post)
  63. {
  64.  //Se inicia en 0
  65.  $contador=0;                        
  66.   //Recorremos la variable que nos fue enviada --> $_POST, $_GET, etc
  67.    foreach($post as $validar)        
  68.    {
  69.     //Se eliminan espacios en blanco al inicio y fin
  70.     $validar = trim($validar);
  71.      //Si esta vacio
  72.      if(empty($validar))                
  73.      {
  74.        //Se suman errores  a la variable contador asi sabes si lleno algo en cada campo
  75.         $contador = $contador + 1;    
  76.       }
  77.    }
  78.    //Solo retornamos el total de campos no llenados
  79.    return $contador;                
  80. }
  81.  
  82. //y desde aqui se usa la funcion
  83. if(check_formText($_POST))
  84. {
  85. echo 'Porfavor llene bien tus campos:
  86. <form action="" method="post" enctype="multipart/form-data" id="form1" name="form1">
  87. <br>
  88. Usuario:<input type="text" name="usuario" value="'.$usuario.'"/>
  89. <br>
  90. Contraseña:<input type="password" name="password" value="'.$password.'"/>
  91. <br>
  92. Repetir contraseña:<input type="password" name="password" value="'.$password2.'"/>
  93. <br>
  94. Email: <input type="text" name="email" value="'.$email.'"/>
  95. <br>
  96. Telefono: <input type="text" name="telefono" value="'.$telefono.'"/>
  97. <br>
  98. <input type="submit" name="button" id="button" value="registrarse" />
  99. </form>
  100. ';
  101.  
  102. }
  103. else
  104. {
  105.     echo"Te has registrado";    
  106.      require_once("conexion.php");
  107.      
  108.    //AHORA GUARDAMOS EL ARCHVO EN UNA BASE DE DATOS.
  109. mysql_select_db("base_datos",$conexion) OR DIE ("Error: Imposible Conectar");//seleccionamos la base de datos
  110.  
  111. $sql ="insert into usuarios values (null,'$usuario','$password','$password2','$email','$telefono')";/*camiarle aki*/
  112.  
  113. }        
  114. }
  115.  
  116. ?>
__________________
:cool: aprendiz :cool: