Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/03/2011, 13:36
lauchalp95
 
Fecha de Ingreso: julio-2006
Mensajes: 254
Antigüedad: 17 años, 9 meses
Puntos: 0
¿Por qué solo se inserta el usuario y no lo demás? PHP-MYSQL

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($permitidossubstr($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..!

Última edición por lauchalp95; 12/03/2011 a las 13:42