He ido comprobando todo lo que pudiera ser erróneo y he aislado el problema en el momento en que jquery pasa las variables al script PHP. Porque el resto lo hace bien.
Aquí el javascript:
Código:
Aquí el PHP (valido también por PHP por seguridad):$("#register_submit").click(function(){ if(r_name.val().length < 3 || r_name.val().length > 20){ r_name.removeClass('textfield'); r_name.addClass('error'); $('#name_alert').show(); } else if(!r_email.val().match(/^[^\s()<>@,;:\/]+@\w[\w\.-]+\.[a-z]{2,}$/i)){ r_email.removeClass('textfield'); r_email.addClass('error'); $('#email_alert').show(); } else if(r_pass0.val().length < 6 || r_pass0.val().length > 20){ r_pass0.removeClass('textfield'); r_pass0.addClass('error'); $('#pass0_alert').show(); } else if(r_pass0.val() != r_pass1.val()){ r_pass0.removeClass('textfield'); r_pass1.removeClass('textfield'); r_pass0.addClass('error'); r_pass1.addClass('error'); $('#pass1_alert').show(); } else{ $.post("scripts/register.php", {name:name, email:email, pass0:pass0, pass1:pass1}, function(data){$("#register").html(data)}); } });
Código PHP:
<?php
include('../db_connection.php');
$user = $_POST['name'];
$email = $_POST['email'];
$pass0 = $_POST['pass0'];
$pass1 = $_POST['pass1'];
$date = date("d/n/Y");
$encryptedpass = md5($pass1);
$l_user = strlen($user);
$l_password = strlen($pass1);
$sql = "SELECT * FROM web_users WHERE user = '$user'";
$query = mysql_query($sql) or die (mysql_error());
$data = mysql_fetch_array($query);
$error = array('0' => 'No has rellenado todos los campos.',
'1' => 'Has introducido un mail no válido.',
'2' => 'Las contraseñas no son iguales.',
'3' => 'La contraseña debe tener entre 6 y 20 caracteres.',
'4' => 'El nombre de usuario debe tener entre 5 y 20 caracteres.',
'5' => 'El nombre de usuario ya existe en la base de datos.');
if ($user == '' || $email == '' || $pass0 == '' || $pass1 == ''){
echo "<span>$error[0]</span>";
}
elseif (!preg_match("/^[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]{2,}"."$/i",$email)){
echo "<span>$error[1]</span>";
}
elseif ($pass0 != $pass1){
echo "<span>$error[2]</span>";
}
elseif ($l_user < 3 or $l_user > 20){
echo "<span>$error[4]</span>";
}
elseif ($l_password < 6 or $l_password > 20){
echo "<span>$error[3]</span>";
}
elseif (ucwords(trim($user)) == $data['user']){
echo "<span>$error[5]</span>";
}
else{
$sql = "INSERT INTO web_users (user, email, password, date) VALUES ('".mysql_real_escape_string(ucwords(trim($user)))."', '".mysql_real_escape_string($email)."', '$encryptedpass', '".mysql_real_escape_string($date)."')";
$query = mysql_query($sql) or die (mysql_error());
echo "<h1>¡Enhorabuena!</h1><p>Has sido registrado con éxito en la web. Visita la sección de ayuda para más información.</p><p>Te hemos enviado un correo electrónico a la dirección que nos han indicado para que actives tu cuenta. No te olvides de revisar la carpeta de spam o correo no deseado.</p><p>¡Bienvenid@¡</p>";
}
?>
Código HTML:
<div id="register"> <div id="register_header"><h1>Únete a XXXXXXX</h1><span>Sólo te llevará un par de minutos y tendrás grandes ventajas.</span></div> <div id="register_info"> <ul> <li>BLABLABALBALBA</li> <li>BLABALBALBALBALAB</li> <li>BLABALBABALBALA</li> <li>BLABALBALBALAB</li> </ul> </div> <div id="register_form"> <ul> <li><label>Nombre:</label><input class="textfield" type="text" name="name" id="name"><span id="name_alert" style="display:none">El nombre debe tener entre 5 y 20 caracteres</span></li> <li><label>Email:</label><input class="textfield" type="text" name="email" id="email"><span id="email_alert" style="display:none">Escribe un email válido</span></li> <li><label>Contraseña:</label><input class="textfield" type="password" name="password0" id="password0"><span id="pass0_alert" style="display:none">La contraseña debe tener entre 6 y 20 caractéres</span></li> <li><label>Repite la contraseña:</label><input class="textfield" type="password" name="password1" id="password1"><span id="pass1_alert" style="display:none">Las contraseñas no coinciden</span></li> <li><input class="button" type="submit" name="register_submit" id="register_submit" value="Registrar"></li> </ul> </div> <div id="register_footer"><span>Al registrarme acepto los <a href="#" title="Condiciones de uso">téminos y condiciones de uso</a> del sitio.</span></div> </div>