Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/02/2012, 15:21
lauchag95
 
Fecha de Ingreso: septiembre-2011
Ubicación: La Plata, Buenos Aires
Mensajes: 26
Antigüedad: 12 años, 7 meses
Puntos: 0
If anidados no funcionan..

Hola, gracias por su ayuda..

en mi sitio tengo la página de registro, que te manda a una página donde éste se procesa..
el asunto es que en un IF la secuencia de condicionales anidados deja de funcionar y no encuentro el porqué.
El error comienza en la línea 98 y lo marqué en un comentario en el código
Código PHP:
Ver original
  1. <?
  2.  
  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.  
  18.         function comprobar_email($email){
  19.     $mail_correcto = 0;
  20.     //compruebo unas cosas primeras
  21.     if ((strlen($email) >= 6) && (substr_count($email,"@") == 1) && (substr($email,0,1) != "@") && (substr($email,strlen($email)-1,1) != "@")){
  22.          if ((!strstr($email,"'")) && (!strstr($email,"\"")) && (!strstr($email,"\\")) && (!strstr($email,"\$")) && (!strstr($email," "))) {
  23.              //miro si tiene caracter .
  24.              if (substr_count($email,".")>= 1){
  25.                  //obtengo la terminacion del dominio
  26.                  $term_dom = substr(strrchr ($email, '.'),1);
  27.                  //compruebo que la terminación del dominio sea correcta
  28.                  if (strlen($term_dom)>1 && strlen($term_dom)<5 && (!strstr($term_dom,"@")) ){
  29.                  //compruebo que lo de antes del dominio sea correcto
  30.                  $antes_dom = substr($email,0,strlen($email) - strlen($term_dom) - 1);
  31.                  $caracter_ult = substr($antes_dom,strlen($antes_dom)-1,1);
  32.                  if ($caracter_ult != "@" && $caracter_ult != "."){
  33.                      $mail_correcto = 1;
  34.                  }
  35.                  }
  36.              }
  37.          }
  38.     }
  39. function edad($edad){
  40. list($anio,$mes,$dia) = explode("-",$edad);
  41. $anio_dif = date("Y") - $anio;
  42. $mes_dif = date("m") - $mes;
  43. $dia_dif = date("d") - $dia;
  44. if ($dia_dif < 0 || $mes_dif < 0)
  45. $anio_dif--;
  46. return $anio_dif;
  47. }
  48.  
  49.  
  50. if($nombre = "" || $apellido = "" || $nacimiento = "" || $genero = "" || $pais = "" || $email = "" || $usuario = "" || $pass = "")
  51. {
  52.     echo"Disculpa, pero al parecer has accedido aquí de forma inesperada y no podemos procesar tu solicitud";
  53. }
  54. else
  55. {
  56.     $comprobarusuario = mysql_query("SELECT usuario FROM datosp WHERE usuario = '$usuario'",$conexion);
  57.     $filasusuario = mysql_num_rows($comprobarusuario);
  58.     if($filasusuario == "1")
  59.     {
  60.         echo"Disculpa, el nombre de usuario <b>$usuario <font color=red>no está disponible para su uso</font></b>, por favor haz clic <a href=registro-1.php>aquí</a> para volver a la página de registro.";
  61.     }
  62.     else
  63.     {
  64.         $comprobaremail = mysql_query("SELECT usuario FROM datosp WHERE email = '$email'",$conexion);
  65.         $filasemail = mysql_num_rows($comprobaremail);
  66.         if($filasemail == "1")
  67.         {
  68.             echo"Disculpa, pero ese e-mail ya está asociado a otra cuenta. Haz clic <a href=registro-1.php>aquí</a> para regresar.";
  69.         }
  70.         else
  71.         {
  72.             function CalcularEdad($fecha){
  73.                 list($dia,$mes,$anio) = explode("/",$fecha);
  74.                 $anio_dif = date("Y") - $anio;
  75.                 $mes_dif = date("m") - $mes;
  76.                 $dia_dif = date("d") - $dia;
  77.                 if($dia_dif < 0 || $mes_dif < 0)
  78.                 $anio_dif--;
  79.                 return $anio_dif;
  80.             }
  81.            
  82.  
  83.         $edad = edad("$fecha");
  84.         if($edad < 13)
  85.         {
  86.        
  87.             echo"<b>Disculpa, pero sólo las personas mayores a 13 años pueden registrarse en el sitio.</b>";
  88.         }
  89.         else
  90.         {
  91.             if($genero != "M" xor $genero != "F")
  92.             {
  93.                
  94.                 echo"Disculpa, ocurrió un error. Inténta completar el formulario nuevamente haciendo clic <a href=registro-2.php>aquí</a>";
  95.             }
  96.             else
  97.             {
  98.                 //AQUI ES EL PROBLEMA
  99.                 echo"ESTO NO SE IMPRIME";
  100.  
  101.     if($mail_correcto == "0")
  102.     {
  103.         echo" Disculpa, pero la dirección de correo electrónico que ingresaste no es correcta, por favor, <a href=registro-1.php>vuelve atrás</a> e ingrésala nuevamente ";
  104.     }
  105.     else
  106.     {
  107.         function comprobar_nombre_usuario($nombre_usuario){
  108.    //compruebo que el tamaño del string sea válido.
  109.    if (strlen($nombre_usuario)<3 || strlen($nombre_usuario)>20){
  110.       $verificarusuario = "0";
  111.       return false;
  112.    }
  113.  
  114.    //compruebo que los caracteres sean los permitidos
  115.    $permitidos = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789-_.";
  116.    for ($i=0; $i<strlen($nombre_usuario); $i++){
  117.       if (strpos($permitidos, substr($nombre_usuario,$i,1))===false){
  118.        $verificarusuario = "0";
  119.          return false;
  120.       }
  121.    }
  122.    $verificarusuario ="1";
  123.    return true;
  124. }
  125.  
  126.  comprobar_nombre_usuario($usuario);
  127.  if($verificarusuario == "0")
  128.  {
  129.      echo"<b>¡Tu usuario tiene que contener entre 3 y 20 caracteres que deben ser: <font color=red>letras de la 'a' a la 'z' (inclusive mayúsculas), guión (-), guión bajo (_) y punto (.)!</b></font>. Haz clic <a href=registro-1.php>aquí</a> para volver.";
  130.  }
  131.     else
  132.     {
  133.         function comprobarpass($contrasena){
  134.    //compruebo que el tamaño del string sea válido.
  135.    if (strlen($nombre_usuario)<3 || strlen($nombre_usuario)>13){
  136.       $verificarc = "0";
  137.       return false;
  138.    }
  139.    else
  140.    {
  141.        $verificarc = "1";
  142.    }
  143.         }
  144.         comprobarpass($pass);
  145.         if($verificarc == "0")
  146.         {
  147.             echo"Tu contraseña debe tener entre 3 y 13 caracteres, por favor haz clic <a href=registro-1.php> aquí </a> para volver.";
  148.         }
  149.         else
  150.         {
  151.             function cambiaf_a_mysql($fecha){
  152.     ereg("([0-9]{1,2})/([0-9]{1,2})/([0-9]{2,4})", $fecha, $mifecha);
  153.     $lafecha=$mifecha[3]."-".$mifecha[2]."-".$mifecha[1];
  154.     return $lafecha;
  155. }
  156.  
  157. $nuevafecha = cambiarf_a_mysql($fecha);
  158.  
  159.             $consultar = mysql_query("INSERT INTO datosp (nombre,apellido,genero,nacimiento,email,nacionalidad,usuario,pass,inicio,nivel) VALUES ('$nombre','$apellido','$genero','$nuevafecha','$email','$pais','$usuario','$password','$inicio','$nivel')",$conexion);
  160.            
  161.             if($consultar)
  162.             {
  163.                 echo" <B><font COLOR=GREEN>¡Se te ha registrado con éxito!<br> <a href=log-1.php>Haz clic aquí para iniciar sesión</a></FONT></b>";
  164.             }}}}}}}}}}
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  ?>

Gracias por su ayuda