Foros del Web » Programando para Internet » PHP »

Formulario no envía las variable y/o página no las recibe

Estas en el tema de Formulario no envía las variable y/o página no las recibe en el foro de PHP en Foros del Web. Hola, tengo un problema y es que yo tengo un formulario que envía información pero la página siguiente no la recibe. Digo que no la ...
  #1 (permalink)  
Antiguo 16/02/2012, 19:52
 
Fecha de Ingreso: septiembre-2011
Ubicación: La Plata, Buenos Aires
Mensajes: 26
Antigüedad: 12 años, 7 meses
Puntos: 0
Formulario no envía las variable y/o página no las recibe

Hola, tengo un problema y es que yo tengo un formulario que envía información pero la página siguiente no la recibe.

Digo que no la recibe porque ya intenté imprimir en la página las variables de post sin tocar nada (hacerle strip_tags, etc) y tampoco las muestra.
FORMULARIO:
Código HTML:
Ver original
  1. <?
  2.  
  3. $nombre = mysql_real_escape_string(strip_tags($_POST['nombre']));
  4. $usuario = mysql_real_escape_string(strip_tags($_POST['usuario']));
  5. $diar = mysql_real_escape_string(strip_tags($_POST['dia']));
  6. $mesr = mysql_real_escape_string(strip_tags($_POST['mes']));
  7. $anor = mysql_real_escape_string(strip_tags($_POST['anio']));
  8. ?>
  9.  
  10. <form action="7.php" method="post" name="form1" target="_self" id="form1">
  11.   <p>
  12.     <label for="apellido">¿Cómo es tu apellido?<br />
  13.       <br />
  14.     </label>
  15.     <input class="campo" type="text" name="apellido" id="apellido" />
  16.   </p>
  17.   <p>¿Eres
  18.     <input class="campo" type="radio" name="genero" id="genero" value="M" />
  19.     <label for="genero"></label>
  20.   <font color="blue"><b>hombre</b></font> o
  21.   <input class="campo" type="radio" name="genero" id="radio" value="F" />
  22.   <label for="genero"></label>
  23.   <font color="#FF66CC"><b>mujer</b></font>?</p>
  24.   <p>¿Cómo es tu dirección de correo electrónico?</p>
  25.   <p>
  26.     <label for="email"></label>
  27.     <input class="campo" type="text" name="email" id="email" />
  28.   </p>
  29.   <p>Por favor, asigna una contraseña a el usuario <? echo"$usuario"; ?>:</p>
  30.   <p>
  31.     <label for="pass"></label>
  32.     <input class="campo" style="color:#F00; font-weight:bold;" name="pass" type="password" id="pass" size="15" maxlength="15" />
  33.   </p>
  34.   <p>¿De dónde eres?</p>
  35.   <p>
  36.     <label for="pais"></label>
  37.     <select name="pais" class="campo" id="pais">
  38.     <option value='AF'>Afganistán</option>
  39. <option value='AL'>Albania</option>
  40. <option value='DE'>Alemania</option>
  41. <option value='DZ'>Algeria</option>
  42. <option value='AD'>Andorra</option>
  43.     </select>
  44.   </p>
  45.   <p>Al registrarte, aceptas los <a href="tyc.php" target="_new">términos y condiciones de usuario</a>.</p>
  46.   <p>
  47.     <input name="nombre" type="hidden" id="nombre" value="<? echo"$nombre"; ?>" />
  48.     <input name="dia" type="hidden" id="dia" value="<? echo "$diar"; ?>" />
  49.     <input name="mes" type="hidden" id="mes" value="<? echo"$mesr"; ?>" />
  50.     <input name="anio" type="hidden" id="anio" value="<? echo"$anor"; ?>" />
  51.     <input name="usuario" type="hidden" id="usuario" value="<? echo"$usuario"; ?>" />
  52.     <input class="botones" type="submit" name="button" id="button" value="¡Registrarme!" />
  53.     <br />
  54.     <br />
  55.   </p>
  56. </form>


7.php
Código PHP:
Ver original
  1. <? include('../conectar.php'); ?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. <title>Documento sin título</title>
  7. <link rel="stylesheet"  type="text/css" href="../estilo1.css" />
  8.  
  9. <style>
  10. a {
  11.     font-size: 11px;
  12.     color: #000;
  13.     font-weight: bold;
  14. }
  15. a:link {
  16.     text-decoration: none;
  17. }
  18. a:visited {
  19.     text-decoration: none;
  20.     color: #000;
  21. }
  22. a:hover {
  23.     text-decoration: underline;
  24.     color: #000;
  25. }
  26. a:active {
  27.     text-decoration: none;
  28.     color: #000;
  29. }
  30. </style>
  31.  
  32. </head>
  33.  
  34. <body style="margin:auto; text-align:center; font-family:arial; font-size:12px;">
  35. <?
  36. function comprobar_email($email){
  37.     $mail_correcto = 0;
  38.     //compruebo unas cosas primeras
  39.     if ((strlen($email) >= 6) && (substr_count($email,"@") == 1) && (substr($email,0,1) != "@") && (substr($email,strlen($email)-1,1) != "@")){
  40.          if ((!strstr($email,"'")) && (!strstr($email,"\"")) && (!strstr($email,"\\")) && (!strstr($email,"\$")) && (!strstr($email," "))) {
  41.              //miro si tiene caracter .
  42.              if (substr_count($email,".")>= 1){
  43.                  //obtengo la terminacion del dominio
  44.                  $term_dom = substr(strrchr ($email, '.'),1);
  45.                  //compruebo que la terminación del dominio sea correcta
  46.                  if (strlen($term_dom)>1 && strlen($term_dom)<5 && (!strstr($term_dom,"@")) ){
  47.                  //compruebo que lo de antes del dominio sea correcto
  48.                  $antes_dom = substr($email,0,strlen($email) - strlen($term_dom) - 1);
  49.                  $caracter_ult = substr($antes_dom,strlen($antes_dom)-1,1);
  50.                  if ($caracter_ult != "@" && $caracter_ult != "."){
  51.                      $mail_correcto = 1;
  52.                  }
  53.                  }
  54.              }
  55.          }
  56.     }
  57. }
  58. $nombre = mysql_real_escape_string(strip_tags($_POST['nombre']));
  59. $usuario = mysql_real_escape_string(strip_tags($_POST['usuario']));
  60. $diar = mysql_real_escape_string(strip_tags($_POST['dia']));
  61. $mesr = mysql_real_escape_string(strip_tags($_POST['mes']));
  62. $anor = mysql_real_escape_string(strip_tags($_POST['anio']));
  63. $apellido = mysql_real_escape_string(strip_tags($_POST['apellido']));
  64. $email = mysql_real_escape_string(strip_tags($_POST['email']));
  65. $genero = mysql_real_escape_string(strip_tags($_POST['genero']));
  66. $pass = mysql_real_escape_string(strip_tags($_POST['pass']));
  67. $pais = mysql_real_escape_string(strip_tags($_POST['pais']));
  68. $nacimiento = $anor-$mesr-$diar;
  69. $codificada = md5($pass);
  70. if($nombre = "" || $usuario = "" || $diar = "" || $mesr = "" || $anor = "" || $apellido = "" || $email = "" || $genero = "" || $pass = "" || $pais = "")
  71. {
  72.         echo" ¡¡ERROR!! ";
  73.     header ("Location: ../index.php");
  74. }
  75.  
  76. $paso = comprobar_email($email);
  77.  
  78. if($paso == "0")
  79. {
  80.     echo" <b>¡Tu correo electrónico no existe!</b> ";
  81. }
  82. else
  83. {
  84.    
  85.     $consultarmail = mysql_query("SELECT email FROM datosp WHERE email = '$email'",$conexion);
  86.     $consultarmailf = mysql_num_rows($consultarmail);
  87.     if($consultarmailf == "1")
  88.     {
  89.         echo" <b> Disculpa, pero ese correo electrónico ya tiene una cuenta asociada. </b> ";
  90.     }
  91.     else
  92.     {
  93.         $consultarusuario = mysql_query("SELECT usuario FROM datosp WHERE usuario = '$usuario'",$conexion);
  94.         $consultarusuariof = mysql_num_rows($consultarusuario);
  95.         if($consultarusuariof == "1")
  96.         {
  97.             echo" ¡Te pedimos disculpas, pero en el proceso de registro otro usuario se registró con tu nombre de usuario! ";
  98.         }
  99.         else
  100.         {
  101.            
  102.         $nuevo = mysql_query("INSERT INTO datosp (nombre,apellido,genero,nacimiento,email,nacionalidad,usuario,pass) VALUES ('$nombre','$apellido','$genero','$nacimiento','$email','$pais','$usuario','$codificada')",$conexion);
  103.         if($nuevo)
  104.         {
  105.             echo" ¡Felicidades! <br> Acabas de registrarte como $usuario. <br> Por favor, inicia sesión haciendo clic <a href=../log.php target=_top>aquí</a> ";
  106.         }
  107.         else
  108.         {
  109.             echo" Hubo un error al procesar su solicitud. Inténtelo de nuevo en unos minutos o contacte con el administrador.";
  110.         }
  111.         }
  112.     }
  113.    
  114. }
  115.  
  116.  
  117.  
  118.  ?>
  119.  
  120. </body>
  121. </html>
  #2 (permalink)  
Antiguo 16/02/2012, 19:54
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Formulario no envía las variable y/o página no las recibe

Usa <?php en lugar de <?.

Saludos.
  #3 (permalink)  
Antiguo 16/02/2012, 19:58
 
Fecha de Ingreso: septiembre-2011
Ubicación: La Plata, Buenos Aires
Mensajes: 26
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Formulario no envía las variable y/o página no las recibe

Cita:
Iniciado por GatorV Ver Mensaje
Usa <?php en lugar de <?.

Saludos.
Hola =)
Gracias por responder, lamento decirte que aún sigue imprimiendo las variables en blanco (aunque no está en el código, acabo de intentarlo) y además inserta a la base de datos la consulta con todos los datos en blanco..

PD: ¿Qué diferencia hay entre <? y <?php ?
  #4 (permalink)  
Antiguo 16/02/2012, 20:07
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Formulario no envía las variable y/o página no las recibe

Realiza un var_dump($_POST); al inicio de tu script para que veas que variables recibes desde tu script.

La diferencia es que hay servidores que no tienen activado el short_open_tag y no interpretan el <? correctamente.

Saludos.
  #5 (permalink)  
Antiguo 16/02/2012, 20:25
 
Fecha de Ingreso: septiembre-2011
Ubicación: La Plata, Buenos Aires
Mensajes: 26
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Formulario no envía las variable y/o página no las recibe

Cita:
Iniciado por GatorV Ver Mensaje
Realiza un var_dump($_POST); al inicio de tu script para que veas que variables recibes desde tu script.

La diferencia es que hay servidores que no tienen activado el short_open_tag y no interpretan el <? correctamente.

Saludos.
Bueno, hize un var dump de esto:
Código PHP:
var_dump($_POST['nombre']);

var_dump($_POST['apellido']);

var_dump($_POST['genero']);

var_dump($_POST['pass']);

var_dump($_POST['email']); 
Y el resultado:
Cita:
string(0) "" string(9) "González" string(1) "M" string(9) "xjsmlms" string(18) "lfg.****@gmail.com"
Evidentemente funciona correctamente.


Ahora hago un var_dump de:
Código PHP:
var_dump($nombre);

var_dump($apellido);

var_dump($genero);

var_dump($pass);

var_dump($email); 
¡Y el resultado!
Cita:
string(0) "" string(9) "González" string(1) "M" string(9) "xjsmlms" string(18) "lfg.****@gmail.com"
Por lo tanto, no comprendo porque esas variables no funcionan luego en los condicionales ni en la impresión ni en la inserción.
  #6 (permalink)  
Antiguo 16/02/2012, 20:36
 
Fecha de Ingreso: septiembre-2011
Ubicación: La Plata, Buenos Aires
Mensajes: 26
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Formulario no envía las variable y/o página no las recibe

Gracias al var_dump descubrí que el error estaba realmente en otro lado. Gracias.

Etiquetas: formulario, html, mysql, página, registro, variables, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 01:09.