Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/02/2012, 07:24
lauchag95
 
Fecha de Ingreso: septiembre-2011
Ubicación: La Plata, Buenos Aires
Mensajes: 26
Antigüedad: 12 años, 7 meses
Puntos: 0
Variables de post no funcionan dentro de una función

Hola, creé una función para registrar a mis usuarios:
Código PHP:
Ver original
  1. <?
  2. include('conectar.php');
  3. $nombre = mysql_real_escape_string(strip_tags($_POST['nombre']));
  4. $apellido = mysql_real_escape_string(strip_tags($_POST['apellido']));
  5. $genero = mysql_real_escape_string(strip_tags($_POST['genero']));
  6. $pais = mysql_real_escape_string(strip_tags($_POST['pais']));
  7. $email = mysql_real_escape_string(strip_tags($_POST['email']));
  8. $usuario = mysql_real_escape_string(strip_tags($_POST['usuario']));
  9. $pass = mysql_real_escape_string(strip_tags($_POST['pass']));
  10. $inicio = date("Y-m-d");
  11. $nivel = "1";
  12. $password = md5($pass);
  13. $dian = mysql_real_escape_string(strip_tags($_POST['dia']));
  14. $mesn = mysql_real_escape_string(strip_tags($_POST['mes']));
  15. $anon = mysql_real_escape_string(strip_tags($_POST['ano']));
  16. $fecha = "$anon-$mesn-$dian";
  17. //SI IMPRIMO LAS VARIABLES AQUÍ, ELLAS TIENEN CONTENIDO
  18. function edad($edad){
  19. list($anio,$mes,$dia) = explode("-",$edad);
  20. $anio_dif = date("Y") - $anio;
  21. $mes_dif = date("m") - $mes;
  22. $dia_dif = date("d") - $dia;
  23. if ($dia_dif < 0 || $mes_dif < 0)
  24. $anio_dif--;
  25. return $anio_dif;
  26. }
  27. function comprobar_email($email){
  28.     global $email;
  29.     $mail_correcto = 0;
  30.     //compruebo unas cosas primeras
  31.     if ((strlen($email) >= 6) && (substr_count($email,"@") == 1) && (substr($email,0,1) != "@") && (substr($email,strlen($email)-1,1) != "@")){
  32.        if ((!strstr($email,"'")) && (!strstr($email,"\"")) && (!strstr($email,"\\")) && (!strstr($email,"\$")) && (!strstr($email," "))) {
  33.           //miro si tiene caracter .
  34.           if (substr_count($email,".")>= 1){
  35.              //obtengo la terminacion del dominio
  36.              $term_dom = substr(strrchr ($email, '.'),1);
  37.              //compruebo que la terminación del dominio sea correcta
  38.              if (strlen($term_dom)>1 && strlen($term_dom)<5 && (!strstr($term_dom,"@")) ){
  39.                 //compruebo que lo de antes del dominio sea correcto
  40.                 $antes_dom = substr($email,0,strlen($email) - strlen($term_dom) - 1);
  41.                 $caracter_ult = substr($antes_dom,strlen($antes_dom)-1,1);
  42.                 if ($caracter_ult != "@" && $caracter_ult != "."){
  43.                    $mail_correcto = 1;
  44.                 }
  45.              }
  46.           }
  47.        }
  48.     }
  49. }
  50.  
  51.  
  52.  
  53. function verificacion($nombref,$apellidof,$generof,$paisf,$emailf,$usuariof,$passf,$iniciof,$nivelf,$nacimientof)
  54. {
  55.     global $conexion;
  56.     global $nombre;
  57.      global $apellido;
  58.       global $genero;
  59.        global $pais;
  60.        global $email;
  61.        global $usuario;
  62.         global $password;
  63.          global $inicio;
  64.          global $nivel ;
  65.           global $fecha;
  66.  
  67.     if($nombref = "" || $apellidof = "" || $generof = "" || $paisf = "" || $emailf = "" || $usuariof = "" || $passf = "" || $iniciof = "" || $nivelf = "" || $nacimientof = "")
  68.     {
  69.        
  70.         echo"<b>Lo sentimos pero al parecer tus datos se perdieron en el proceso de registro, por favor <a href=registro-1.php>vuelve atrás</a> e inténtalo nuevamente.</b>";
  71.         return false;
  72.     }
  73.    
  74.     if($generof != "M" xor $generof != "F")
  75.     {
  76.         echo"<b>Lo sentimos, pero tu solicitud no puede ser procesada porque hubo un error al verificar los datos, por favor <a href=registro-1.php>vuelve atrás</a> e inténtalo nuevamente.</b>";
  77.         return false;
  78.     }
  79.    
  80.     $fechado = edad($nacimientof);
  81.     if($fechado < 13)
  82.     {
  83.         echo"<b>Lo sentimos, pero para registrarte en el sitio debes tener más de 13 años.</b>";
  84.         return false;
  85.     }
  86.    
  87.     comprobar_email($emailf);
  88.    
  89.     if($mail_correcto == "0")
  90.     {
  91.         echo"<b>Lo sentimos, pero la dirección de correo electrónico registrada es inválida, <a href=registro-1.php>vuelve atrás</a> y vuelve a intentarlo.</b>";
  92.         return false;
  93.     }
  94.     $consultaemail = mysql_query("SELECT email FROM datosp WHERE email = '$emailf'",$conexion);
  95.     if(mysql_num_rows($consultaemail) > 0)
  96. {
  97.     echo"<b>Lo sentimos, pero sólo se permite tener una cuenta por propietario, y tu dirección de correo electrónico ya está registrada. </b>";
  98.     return false;
  99. }
  100.  
  101.      if (strlen($usuariof)<3 || strlen($usuariof)>13){
  102.        
  103.      echo"<b>Lo sentimos, pero tu usuario debe tener entre 3 y 13 caracteres. <a href=registro-1.php>Vuelve atrás</a> e inténtalo de nuevo.</b>";
  104.         return false;
  105.    }
  106.      $permitidos = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789-_.";
  107.    for ($i=0; $i<strlen($usuariof); $i++){
  108.       if (strpos($permitidos, substr($usuariof,$i,1))===false){
  109.        echo"<b>Lo sentimos, pero tu usuario sólo puede contener letras (en mayúsculas y minúsculas), guión (-) , guión bajo (_) y punto (.). <a hreg=registro-1.php>Vuelve atrás</a> e inténtalo de nuevo.</b>";
  110.         return false;
  111.       }
  112.    }
  113.    
  114.     $ingreso = mysql_query("INSERT INTO datosp (nombre,apellido,genero,nacimiento,email,nacionalidad,usuario,pass,inicio,nivel) VALUES ('$nombref','$apellidof','$generof','$nacimientof','$emailf','$paisf','$usuariof','$passf','$iniciof','$nivelf')",$conexion);
  115.     if($ingreso)
  116.     {
  117.         echo"<b>¡Felicidades! ¡Ya estás registrado! Por favor, inicia sesión haciendo clic <a href=log.php>aquí</a></b>";
  118.     }
  119.     else
  120.     {
  121.         echo"<b> Hubo un problema al registrarte, inténtalo de nuevo en unos minutos </b>";
  122.     }
  123. }
  124. verificacion($nombre,$apellido,$genero,$pais,$email,$usuario,$password,$inicio,$nivel,$fecha);
  125. ?>

El asunto es que si imprimo las variables dentro de la función o si intento hacer algo con ellas, aparecen como vacías, y si lo hago fuera de la función, luego de declararlas, ya aparecen con contenido.. no sé que es lo que pasa