Foros del Web » Programando para Internet » PHP »

Error en Formulario Variable

Estas en el tema de Error en Formulario Variable en el foro de PHP en Foros del Web. Hola: estoy haciendo un formulario varialble y me larga el Sgte. error Warning: Undefined variable: boton in c:\inetpub\wwwroot\pp\formuvar.php on line 26 , alguien me podrá ...
  #1 (permalink)  
Antiguo 04/11/2003, 21:54
 
Fecha de Ingreso: noviembre-2002
Ubicación: cordoba
Mensajes: 59
Antigüedad: 15 años
Puntos: 0
Error en Formulario Variable

Hola:

estoy haciendo un formulario varialble y me larga el Sgte. error
Warning: Undefined variable: boton in c:\inetpub\wwwroot\pp\formuvar.php on line 26
, alguien me podrá decir por que ???
La linea en cuestion está coloreada.
Desde ya muchas gracias

<?
if (empty($num))
{
Echo "<form method=post action=$PHP_SELF>";
echo "Cuantos datos quiere leer" ;
Echo "<input name=num >";
Echo "<input type=submit value=Aceptar >";
Echo "</form>";
}
if (empty($boton) && !empty($num))
{
Echo "<FORM METHOD=POST ACTION=$PHP_SELF>";
for ($i=0; $i<$num; $i++)
{
Echo "nombre :" ;
Echo "<input name=Nombre[$i] ><p>";
Echo "Apellidos :";
Echo "<input name=apellidos[$i]><p>";
Echo "Edad :";
Echo "<input name=Edad[$i]><p>";
}
Echo "<input type=hidden name=num value=$num ><p>" ;
Echo "<input type=submit name=boton value= Aceptar >" ;
echo "</form>";
}
if ($boton=="Aceptar")
{
for ($i=0; $i<$num; $i++)
Echo "$apellidos[$i], $nombre[$i], $edad[$i] <br>" ;
}
?>
  #2 (permalink)  
Antiguo 04/11/2003, 22:38
 
Fecha de Ingreso: octubre-2003
Mensajes: 37
Antigüedad: 14 años, 2 meses
Puntos: 0
if ($_POST["boton"]=="Aceptar")

Recuerda usar las variables super-globales para accesar a los datos que traigas de un formulario o del querystring, ya que si el servidor esta configurado para no registrarlas automaticamente, te va a seguir dando ese error...


En los usos que tienes antes no te marca error ya que la verificación "empty" te devuelve verdadero al no estar definida la variable.

  #3 (permalink)  
Antiguo 04/11/2003, 23:07
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
nancyBB:
Lo de los arrays superglobales es por sise tiene el register_globals en "off". Yo probé el code que posteó gitanocordobes con mi register_globals en ON y me funcionó bien (salvo algunos errores como el array nombre[] o edad[] que están creados con la primera letra en mayúsculas y utilizados con minúsculas --> Ojo gitanocordobes: no es lo mismo $var que $VAR).
También puse mi register_globals en OFF y simplemente no pasa de la primera página, pues la variable $num siempre va a estar vacía. (la que se crea se llama $_POST['num'])...

Pero en ninguno de los dos casos me muestra el error de gitanocordobes. O sea que no creo que tenga que ver con utilizar el superglobal.

Saludos

Última edición por jpinedo; 05/11/2003 a las 02:07
  #4 (permalink)  
Antiguo 05/11/2003, 06:42
 
Fecha de Ingreso: noviembre-2002
Ubicación: cordoba
Mensajes: 59
Antigüedad: 15 años
Puntos: 0
Muchas gracias por su respuesta, probaré con lo indicado
  #5 (permalink)  
Antiguo 05/11/2003, 07:03
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

El fallo es claro. Se esta intentando acceder a $boton cuando puede que no exista. Solo deberias acceder a la variable cuando sabes que existe. Y para saber si existe tienes que usar isset() o empty(). Asi que te quedaria:
Código PHP:
if (!empty($boton) && $boton=="Aceptar"
{
for (
$i=0$i<$num$i++)
Echo 
"$apellidos[$i], $nombre[$i], $edad[$i] <br>" ;

Asi solo compara $boton si esta existe y no es vacia.

Saludos.

PD: No lo he puesto como else porque no se si el '&& !empty($num)' le afectaria a la logica.

PD2: Por supuesto, si usas PHP4.1 o superior, mejor usa $_POST y los arrays superglobales.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #6 (permalink)  
Antiguo 08/11/2003, 17:46
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Yo quiero preguntar si alguien sabe por qué sale warning y no notice.

Saludos
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:15.