Re: [Solar-tecnica] activar variables como parámetros

Martin Olivera molivera en solar.org.ar
Lun Abr 10 12:26:09 CEST 2006


Ricardo M. Morales wrote:

>Hola:
>
>no encontré en las ayudas, pero supongo que se puede, desactivar y reactivar
>pasaje de variables como parámetros al navegar en un script php, por ejemplo:
>
>http://dominio/carpeta/script.php?variable=valor
>
>en ese caso estoy pasando al navegar, la variable "$variable", con el
>valor "valor", al script "script.php" ... quiero saber si hay forma de:
>  
>
bueno, no exactamente estas pasando el parametro "variable", que el 
servidor PHP levanta como $_HTTP_GET_VARS["variable"] ó 
$_GET["variable"] que son variables predefinidas de PHP.
Tambien podrias levantarlo con $HTTP_REQUEST_VARS["variable"] o 
$_REQUEST["variable"], que incluye los parametros pasados a traves de POST.

>* desactivar ese pasaje, al menos en particular para ese script, mejor si para
>  carpetas y subcarpetas completas (por ejemplo con algo en .httaccess).-
>  
>
no entiendo a que le llamas "desactivar el pasaje". Si el parametro pasa 
en la linea de URL, el servidor lo recibe, vos que queres, que un PHP 
que hoy lo lee, de pronto no lo lea mas?

>* activar ese pasaje, en caso que estuviera desactivado para el servidor en
>  general, también podrúa ser con algo en .httaccess o en el mismo script.-
>  
>
umm, lo mismo, pero vayamos a lo que creo es el punto de tu mensaje:

Hay un atributo de configuraicon de PHP llamado Register_globals, que 
puede estar en On o en Off.

Si esta en On, PHP automágicamente crea la variable $variable y le 
asigna el valor de $_REQUEST["variable"] (o sus similares que te comente 
mas arriba)

Sio esta en Off, los parametros quedan en las variables predefinidas 
($_GET, etc) pero  no se genran las variables "automágicas"

Este comportamiento del servidor se define en el arvchivo de 
configuraicon de pHP php.ini en una linea que dice alguna de estas dos 
cosas:

Register_globals=On

Register_globals=Off


Podes cambiarlo de ahi, y reiniciar el servidor

>la inquietud me surge porque estaba trabajando en un servidor, con variables
>funcionando, pasadas de esa forma, de pronto por fallas me pasaron todos los
>sitios a otro servidor, y dejaron de funcionar las variables en línea de
>comandos, para casi todas las páginas de casi todos los sitios.-
>
>pensaba que pasaban automáticamente siempre, pero veo que ahora se ignoran, digamos
>que pongo algo así, bien simple, para el script que dejé arriba como ejemplo:
>
><?PHP echo "[" . $variable . "/";
>      $variable = "otrovalor";
>      echo $variable . "]"; ?>
>
>la salida para el caso http://dominio/carpeta/script.php?variable=valor
>creo que debería ser algo como (y así era antes): [valor/otrovalor]
>pero ahora sale algo así [/otrovalor], ponga lo que ponga al llamar
>al script, como si no hubiera puesto nada en los parámetros ...
>
>eso naturalmente me hechó a perder muchas páginas, no le encuentro la
>vuelta, y tampoco tengo todavía respuestas satisfactorias de la gente
>que administra ese servidor ... mis scripts, programados de forma
>simple, o convencional, dejaron todos de funcionar cuando requerían
>parámetros como parte de su estructura, pero algunos scripts que tengo
>en el mismo sitio, de esos que estan basados en otros genéricos,
>por ejemplo un wiki basado en mediawiki.org (el de la wikipedia),
>usan los parámetros y siguen funcionando al parecer normalmente ...
>
>por eso supongo que algo distinto hay en el servidor, que bloqueó
>el pasaje normal de parámetros, pero que de alguna forma se puede
>puentear ese bloqueo, aunque no encuentro todavía como lograrlo ...
>  
>
es la linea de register_globals del php.ini

Si necesitas variables automágicas y no podes cambiar la configuracion 
del servidor (porque no te lo permiten), podes emular ese comportamiento 
agregandole a cada .php que recibe variables la linea

extract($_REQUEST);

que hace precisamente eso, crear las variables automagicas.

>apreciaré ayudas constructivas. gracias. saludos :-)
>
>
>  
>
>------------------------------------------------------------------------
>
>_______________________________________________
>Solar-tecnica mailing list
>Solar-tecnica en lists.ourproject.org
>http://lists.ourproject.org/cgi-bin/mailman/listinfo/solar-tecnica
>  
>





Más información sobre la lista de distribución Solar-tecnica