Buenos días, ante todo gracias.
Este es el código que recopila las variables del formulario de registro:
Código PHP:
function limpiar($value){
$value = mysql_real_escape_string(trim($value));
return $value;
}
function contrasena($value) {
$value = md5(mysql_real_escape_string(trim($value)));
return $value;
}
$nombre = limpiar($_POST['nombre']);
$apellido = limpiar($_POST['apellido']);
$email = limpiar($_POST['email']);
$genero = limpiar($_POST['genero']);
$usuario = limpiar($_POST['usuario']);
$pais = limpiar($_POST['pais']);
$ip = limpiar($_POST['ip']);
$nacimiento = limpiar($_POST['nacimiento']);
$contrasena = contrasena($_POST['contrasena']);
$suma = $_POST['suma'];
Y este código las procesa:
Código PHP:
function comprobar($usuario){ // inicio funcion
//compruebo que los caracteres sean los permitidos
$permitidos = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789-_."; //caracteres permitidos
for ($i=0; $i<strlen($usuario); $i++){ //inicio for i empieza en 0 , y el for se ejecuta hasta que i sea igual a la cant. de caracteres de usuario, y cada vez q se ejecuta se agrega 1 */
if (strpos($permitidos, substr($usuario,$i,1))===false){ //inicio if si hay caracteres no validos...
echo "El usuario $usuario no es válido porque tiene caracteres no permitidos. Solo se permite usar las mayúsculas, las minúsculas, los números, el guión bajo, el guión y el punto. ¿Quieres volver a llenar el <a href=/index.php?cont=registro-1.php>formulario de registro</a>?<br>"; //hacer esto
return false;
} //fin if
} //si no
$anadir = mysql_query("INSERT INTO usuarios (nombre,apellido,email,genero,usuario,pais,ip,nacimiento,password)
VALUES ('$nombre','$apellido','$email','$genero','$usuario','$pais','$ip','$nacimiento','$contrasena')") or die(mysql_error());
if($anadir) {echo"Te has registrado correctamente. Puedes iniciar sesión en el centro de control que está en la parte superior.";}
else
{ echo" No pudimos registrarte... Lo sentimos mucho. Pero podrías <a href=/index.php?cont=registro-1.php>volverlo a intentar</a>. De todas formas, si esto te sigue pasando, contacta con el administrador.";
}
return true;
} //fin funcion
//////
$nuevo = mysql_query("SELECT usuario FROM usuarios WHERE usuario = '$usuario'",$general);
$filas = mysql_num_rows($nuevo);
if($filas == 0) {
if($suma == $_POST[resultado])
{
comprobar($usuario);
}
else
{
echo" ¿$_POST[numero1] + $_POST[numero2] es igual a $suma? ¿Estás seguro? Y yo que pensaba que era $_POST[resultado].";
echo" <br> Te has equivocado en la suma. Debes <a href=/index.php?cont=registro-1.php>volverlo a intentar</a>. ";
}
}
else
{ echo "El usuario que intentas registrar ya está en uso. Vuelve <a href=/index.php?cont=registro-1.php>atrás</a> y elige otro.";}
El asunto es que si todo es correcto, el mensaje de éxito sale:
Cita: Te has registrado correctamente. Puedes iniciar sesión en el centro de control que está en la parte superior.
Sin embargo, en la base de datos, solo se inserta la $usuario.
Osea, si completo TODOS los campos, todos se insertan en blanco salvo usuario.
Los nombres de los campos son correctos..
Me cansé de pensar y no poder resolverlo, gracias..!