Hola, creé una función para registrar a mis usuarios:
Código PHP:
Ver original<?
include('conectar.php');
$nivel = "1";
$fecha = "$anon-$mesn-$dian";
//SI IMPRIMO LAS VARIABLES AQUÍ, ELLAS TIENEN CONTENIDO
function edad($edad){
$anio_dif = date("Y") - $anio; $mes_dif = date("m") - $mes; $dia_dif = date("d") - $dia; if ($dia_dif < 0 || $mes_dif < 0)
$anio_dif--;
return $anio_dif;
}
function comprobar_email($email){
global $email;
$mail_correcto = 0;
//compruebo unas cosas primeras
//miro si tiene caracter .
//obtengo la terminacion del dominio
//compruebo que la terminación del dominio sea correcta
//compruebo que lo de antes del dominio sea correcto
if ($caracter_ult != "@" && $caracter_ult != "."){
$mail_correcto = 1;
}
}
}
}
}
}
function verificacion($nombref,$apellidof,$generof,$paisf,$emailf,$usuariof,$passf,$iniciof,$nivelf,$nacimientof)
{
global $conexion;
global $nombre;
global $apellido;
global $genero;
global $pais;
global $email;
global $usuario;
global $password;
global $inicio;
global $nivel ;
global $fecha;
if($nombref = "" || $apellidof = "" || $generof = "" || $paisf = "" || $emailf = "" || $usuariof = "" || $passf = "" || $iniciof = "" || $nivelf = "" || $nacimientof = "")
{
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>";
return false;
}
if($generof != "M" xor $generof != "F")
{
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>";
return false;
}
$fechado = edad($nacimientof);
if($fechado < 13)
{
echo"<b>Lo sentimos, pero para registrarte en el sitio debes tener más de 13 años.</b>";
return false;
}
comprobar_email($emailf);
if($mail_correcto == "0")
{
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>";
return false;
}
$consultaemail = mysql_query("SELECT email FROM datosp WHERE email = '$emailf'",$conexion); {
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>";
return false;
}
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>";
return false;
}
$permitidos = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789-_.";
for ($i=0; $i<strlen($usuariof); $i++){ 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>";
return false;
}
}
$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); if($ingreso)
{
echo"<b>¡Felicidades! ¡Ya estás registrado! Por favor, inicia sesión haciendo clic <a href=log.php>aquí</a></b>";
}
else
{
echo"<b> Hubo un problema al registrarte, inténtalo de nuevo en unos minutos </b>";
}
}
verificacion($nombre,$apellido,$genero,$pais,$email,$usuario,$password,$inicio,$nivel,$fecha);
?>
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