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.";}
Cita:
Sin embargo, en la base de datos, solo se inserta la $usuario.Te has registrado correctamente. Puedes iniciar sesión en el centro de control que está en la parte superior.
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..!