Foros del Web » Programando para Internet » PHP »

variables globales y XP

Estas en el tema de variables globales y XP en el foro de PHP en Foros del Web. Sres: Que hay del uso de variables globales en XP, ya que en 98 se setea a "on" y listo pero en XP esta seteado ...
  #1 (permalink)  
Antiguo 09/11/2003, 11:11
 
Fecha de Ingreso: noviembre-2002
Ubicación: cordoba
Mensajes: 59
Antigüedad: 21 años, 5 meses
Puntos: 0
variables globales y XP

Sres:

Que hay del uso de variables globales en XP, ya que en 98 se setea a "on" y listo pero en XP esta seteado en "on" y me da errores, habrá que tocar algo en php.ini ????.
Desde ya muchas gracias
  #2 (permalink)  
Antiguo 09/11/2003, 14:02
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

¿Varaibles globales? Supongo que te referiras al register_globals. ¿Y que errores te da? Quizas son por otra causa.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 09/11/2003, 16:19
 
Fecha de Ingreso: noviembre-2002
Ubicación: cordoba
Mensajes: 59
Antigüedad: 21 años, 5 meses
Puntos: 0
Warning: Undefined variable: boton in c:\inetpub\wwwroot\pp\formuvar.php on line 26

este error me da en el codigo de abajo, los otros dias tuve el mismo problema corriendo en w98, seteando register globals a on
solucione el problema. Ahora corriendo en XP me vuelve a dar problemas y register globals esta en on

<?
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>" ;
}
?>
  #4 (permalink)  
Antiguo 09/11/2003, 17:36
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
MENSAJE DUPLICADO???

gitanocordobes:
Ya josemi te respondió sobre el "Undefined variable..."
en este post:
http://www.forosdelweb.com/s/msg163378.html
estás repitiendo la pregunta, con el código exactamente igual... y se te habían planteado las soluciones.
¿Probaste la solución propuesta por josemi?... si lo has hecho no es posible que te siga dando ese error.
Trata de mantener la discusión en el otro tema.

Saludos

Última edición por jpinedo; 09/11/2003 a las 17:43
  #5 (permalink)  
Antiguo 09/11/2003, 18:55
 
Fecha de Ingreso: noviembre-2002
Ubicación: cordoba
Mensajes: 59
Antigüedad: 21 años, 5 meses
Puntos: 0
si estimado pinedo, la estoy repitiendo con el mismisimo codigo, por que con ese mismisimo codigo tengo ahora problemas en XP, si has leido mi post, te darás cuenta que digo que en w98 lo he solucionado poniendo REGISTER_GLOBAS=on, ahora quiero saber si en XP hay que hacer alguna otra configuracion ya que mi REGISTER_GLOBAS está en on, se entiende ?????
  #6 (permalink)  
Antiguo 09/11/2003, 19:13
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 6 meses
Puntos: 41
Configuración?... no, claro que no (al menos no ahora)...

-Primero: La solución por la que optas no es la mejor. De ser posible debes trabajar con el register_globals en OFF. esto es por la propia seguridad de tu aplicación. Además las últimas versiones de php lo traen por defecto en OFF... y ojalá dentro de poco todos los servidores lo tengan configurado así (en off).

-Segundo: Si leíste lo que posteó josemi en el otro mensaje, te enterarás que ese "Undefined variable..." normalmente es consecuencia de querer trabajar con una variable que no existe, o no está definida. Tu script pregunta si $boton=="Aceptar"... entonces busca la variable $boton para compararla... y si no la encuentra, te da ese error. Por eso debes preguntar primero si está seteada esa variable. Para esto utilizas isset() o empty()... te repito que josemi ya te aconsejó esto.

-Lo que debes hacer en lugar de trabajar con el register_globals en ON, es empezar a utilizar los arrays supergloobales. Así, si tu formulario utiliza el método post, las variables que recojas tendrás que escribirlas así: $_POST['boton'], $_POST['num'], etc...

También te avisé en el otro hilo... que estabas cometiendo un error al nombrar tus campos de formulario por ejemplo Nombre[$i]... y luego querer utilizarlo todo con minúsculas... php diferencia mayúsculas de minúsculas... por eso debes utlizarlas llamándolas exactamente igual.

Por favor, prueba los cambios (sobretodo lo que puso josemi) y nos cuentas.

Lo que sí me parece curioso es que yo probé tu script tal cual lo posteaste y no me da ese error. (ni con reg_glob en ON ni en OFF)

Saludos
  #7 (permalink)  
Antiguo 10/11/2003, 06:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
En tu php.ini tienes la configuración de:

error_reporting .. Fijate bien .. segúro que ahora lo tieens a "ALL" (muestras los "Notice" errores) .. Cambialo (según el ejemplo que comenta ahí mismo en el php.ini) .. o usa error_reporting() función en tus scripts.

Lo ideal es que programes "bien" .. es decir .. todo lo que se comentó en el mensaje que te respondío josemi (usar isset() .. etc)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 15:22.