![:-P](http://static.forosdelweb.com/fdwtheme/images/smilies/tongue.png)
Tengo un sistema de registro para mi web pero tengo 2 problemas
1) En la casilla donde el usuario coloca su Email puede colocar cualquier cosa....
Ejemplo el usuario podria poner así: xxxx cuando deberia colocar [email protected]
Lo que quisiera es obligar al usuario a escribir su correo Electronico de la Forma Correcta y ademas proibirle algunos signos no validos en la casilla de Correo Electronico
un invento que hice pero que no me gusta fué la de crear 3 Variables
$email1 donde el usuario colocara su correo
$emasils Esta la Cree para darle opciones del final de su correo ejemplo @hotmail.com, @yahoo.com entre otros. pero seria limitar a lo usuarios con distintos compañias de correos
$email para juntar lo que coloca el usuario con las opciones que le doy
quisiera utilizar una sola variable llamada $email pero con las restricciones ya dichas
2) La segunda es que creé un if de verificacion para que la contraseña contenga 6 o mas digitos pero me funciona solo con Numeros si coloca 6 o mas letras presenta error si coloco seis numeros Funciona pero quisiera que la contraseña llevara numeros y letras
Para no enrredarlos mucho le dejo el codigo
registro.php
Código PHP:
<?php
// verificamos si se han enviado ya las variables necesarias.
if (isset($_POST["username"])) {
$username = mysql_real_escape_string($_POST["username"]);
$password = mysql_real_escape_string($_POST["password"]);
$password2 = mysql_real_escape_string($_POST["password2"]);
$email1 = mysql_real_escape_string($_POST["email1"]);//correo del usuario sin el @hotmail, @yahoo.com, etc
$emails = mysql_real_escape_string($_POST["emails"]); //Esta la tuve que crear para presentarles opciones como @hotmail.com, @yahoo.com,etc pero seria muy limitado
$email =$email1.$emails;//Aquí sumo el email que coloca el usuario con las opciones que les doy
$pregunta = mysql_real_escape_string($_POST["pregunta"]);
$respuesta = mysql_real_escape_string($_POST["respuesta"]);
// Hay campos en blanco
if($username==NULL|$password==NULL|$password2==NULL|$email==NULL|$pregunta==NULL|$respuesta==NULL) {
echo "<p>Debes rellenar todos los Campos</p>\n";
formRegistro();
}else{
if ($password<6) {echo "<p>La Contraseña debe contener almenos 6 Digitos</p>\n";} // este es el If que cree para que la contraseña no contenga menos de 6 digitos pero como ya dije funciona solo con numeros y es lo que yo no quiero
// ¿Coinciden las contrasenas?
if($password!=$password2) {
echo "<p>Las contrasenas no coinciden</p>\n";
formRegistro();
}else{
// Comprobamos si el nombre de usuario o la cuenta de correo ya existian
$checkuser = mysql_query("SELECT usuario FROM usuarios WHERE usuario='$username'");
$username_exist = mysql_num_rows($checkuser);
$checkemail = mysql_query("SELECT email FROM usuarios WHERE email='$email'");
$email_exist = mysql_num_rows($checkemail);
if ($email_exist>0|$username_exist>0) {
echo "<p>El nombre de usuario o la cuenta de correo estan ya en uso</p>\n";
formRegistro();
}else{
$query = 'INSERT INTO usuarios (usuario, password, email, pregunta, respuesta, fecha)
VALUES (\''.$username.'\',\''.$password.'\',\''.$email.'\',\''.$pregunta.'\',\''.$respuesta.'\',\''.date("Y-m-d").'\')';
mysql_query($query) or die(mysql_error());
echo '<p>El usuario <span class="usuarioreco">'.$username.'</span> ha sido registrado de manera satisfactoria.</p>';
echo '<SCRIPT LANGUAGE="javascript">
location.href = "index.php";
</SCRIPT>';
echo '<p>Ahora puede entrar ingresando su usuario y su password</p>';}}}}
?>
Esta Funcion es una de las que encontre
Código PHP:
function valida_email($correo) {
if (preg_match('/^[A-Za-z0-9-_.+%]+@[A-Za-z0-9-.]+\.[A-Za-z]{2,4}$/', $correo)) return true;
else return false;
}
![Negacion](http://static.forosdelweb.com/fdwtheme/images/smilies/negacion.gif)
Gracias
![Adios](http://static.forosdelweb.com/fdwtheme/images/smilies/adios.gif)