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
<?php if (!$_POST){ ?> <form action="" method="post" enctype="multipart/form-data" id="form1" name="form1"> <br> Usuario: <input type="text" name="usuario" size="30"> <br> contraseña: <input type="password" name="password" size="30"> <br> Repetir contraseña: <input type="password" name="password2" size="30"> <br> Email: <input type="text" name="email" size="30"> <br> Telefono: <input type="text" name="telefono" size=14 > <br> <input type="submit" value="registrarse"> </form> <? }//aqui termina el if del formulario de la autollamada else{ $password= $_POST["password"]; $password2= $_POST["password2"]; $email= $_POST["email"]; $telefono= $_POST["telefono"]; require_once("conexion.php"); if($_POST['password'] == $_POST['password2']) { echo "Iguales"; } else{ echo "Alguna es diferente"; } // chequeas si el usuario esta en la bd $sql="SELECT * FROM usuarios WHERE usuario='".$usuario."'"; // entonces dices // aqui el codigo de ingreso del usuario y datos } else { // en caso de que te de problemas la funcion header utilizas a javascript print "<script>window.location.href='registrarse.php';</script>"; } //validar que se haya escrito bien email con expresion regular '^[a-z0-9]+([\.]?[a-z0-9_-]+)*@'.// usuario '[a-z0-9]+([\.-]+[a-z0-9]+)*\.[a-z]{2,}$', $email)){ echo "correo invalido"; } //funcion que checa si campos estan vacios function check_formText($post) { //Se inicia en 0 $contador=0; //Recorremos la variable que nos fue enviada --> $_POST, $_GET, etc foreach($post as $validar) { //Se eliminan espacios en blanco al inicio y fin //Si esta vacio { //Se suman errores a la variable contador asi sabes si lleno algo en cada campo $contador = $contador + 1; } } //Solo retornamos el total de campos no llenados return $contador; } //y desde aqui se usa la funcion if(check_formText($_POST)) { echo 'Porfavor llene bien tus campos: <form action="" method="post" enctype="multipart/form-data" id="form1" name="form1"> <br> Usuario:<input type="text" name="usuario" value="'.$usuario.'"/> <br> Contraseña:<input type="password" name="password" value="'.$password.'"/> <br> Repetir contraseña:<input type="password" name="password" value="'.$password2.'"/> <br> Email: <input type="text" name="email" value="'.$email.'"/> <br> Telefono: <input type="text" name="telefono" value="'.$telefono.'"/> <br> <input type="submit" name="button" id="button" value="registrarse" /> </form> '; } else { echo"Te has registrado"; require_once("conexion.php"); //AHORA GUARDAMOS EL ARCHVO EN UNA BASE DE DATOS. mysql_select_db("base_datos",$conexion) OR DIE ("Error: Imposible Conectar");//seleccionamos la base de datos $sql ="insert into usuarios values (null,'$usuario','$password','$password2','$email','$telefono')";/*camiarle aki*/ } } ?>