Foros del Web » Programando para Internet » PHP »

Como cambiar una aplicación que usa set globals ON

Estas en el tema de Como cambiar una aplicación que usa set globals ON en el foro de PHP en Foros del Web. Hola Necesito alguna guía para poder migrar una aplicación construida para usar set globals en ON, porque mi proveedor va a modificar el seteo y ...
  #1 (permalink)  
Antiguo 08/07/2004, 15:20
 
Fecha de Ingreso: mayo-2004
Ubicación: Perú
Mensajes: 160
Antigüedad: 13 años, 7 meses
Puntos: 0
Como cambiar una aplicación que usa set globals ON

Hola

Necesito alguna guía para poder migrar una aplicación construida para usar set globals en ON, porque mi proveedor va a modificar el seteo y no tengo la menor idea de por dónde empezar.

Podría alguien sugerirme un sitio de donde pueda bajar un tutorial o una guía?

Gracias
__________________
"I want to hurt you just to hear you screaming my name" Poison - Alice Cooper
  #2 (permalink)  
Antiguo 08/07/2004, 15:44
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Lo ideal es que modifiques todo el código y lo adaptes al uso de los arrays superglobales:

http://www.php.net/variables.external
http://www.php.net/manual/en/reserved.variables.php

Podrías usar como "parche" la función:
extract()
http://www.php.net/manual/en/function.extract.php

Para convertir los arrays (superglobales) externos: $_GET['algo'], $_POST['algo'], $_SESSION['algo'] .. etc en: $algo

Ejemplo:
extract($_POST);

.. pero lo ideal es que aprendas a trabajar con register_globals a OFF y en consecuencia a manejarte con los arrays supergloables.

Por cierto .. usas sesiones? .. Si es así OJO! con eso . .por qué el tema cambia también ya no puedes seguir usando tus "session_register()" deberías usar: $_SESSION.

Un saludo,
  #3 (permalink)  
Antiguo 10/07/2004, 16:07
 
Fecha de Ingreso: mayo-2004
Ubicación: Perú
Mensajes: 160
Antigüedad: 13 años, 7 meses
Puntos: 0
Gracias

Gracias, Cluster, estoy revisando el material que me indicas.

Una consulta, si uso "Global" en un archivo PHP declarando unas variables que son asignadas en otro archivo php invocado con Include, cómo hago para pasarlas de uno a otro lado sin usar Global? porque toda la aplicación está así y no encuentro una forma de hacerlo sin formularios ni cookies.

De antemano, gracias!
__________________
"I want to hurt you just to hear you screaming my name" Poison - Alice Cooper
  #4 (permalink)  
Antiguo 10/07/2004, 17:14
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pero .. como usa ese "global"?

¿ Lo hace bajo una función? ..

o haces:

variables.php
<?
$variable="valor"
?>

otro.php
<?
include("variables.php");
echo $variable;
?>

Por qué si es así .. eso no tiene nada que ver con lo que menciono de "asumiar las variables como globales" que se refiere a toda variable -externa- a un script.

Si tu haces invocas a código bajo un include().. require() o similar .. lo que hace PHP es tomar el código del script que llamas y lo "mezcla" con el que lo llama en el punto que usas include() par posteriormente ejecutarlo como un script único y sólo.

Así que esa definición de variables "gloables" como los ejemplos que puse no son "globales" a efectos de PHP .. pues simplemente dice "se ha definido la variable" antes .. no en "otra llamada del script" que sería el caso de pasar de un script a otro por un link, (URL) o un formulario .. o redireccionamiento en general. En este caso toda variable que "envies" de uno a otro "script" será entendida por el script receptor (el que apunta el link, o el action del formulario .. etc) como "variable externa".

Un saludo,
  #5 (permalink)  
Antiguo 16/07/2004, 08:05
 
Fecha de Ingreso: mayo-2004
Ubicación: Perú
Mensajes: 160
Antigüedad: 13 años, 7 meses
Puntos: 0
Explicación del uso de Globals

Hola! Gracias por ayudarme, he tenido muchísimo trabajo y no pude entrar antes. Te explico lo del global.

Programa principal INDEX.PHP
global $var1, $var2, $var3
...
include ("HEADER.PHP")

Luego se obtienen los valores de var1, var2 y var3 y se muestran.

Programa HEADER.PHP
Inicia las sesiones, lee un archivo CONFIG.PHP que contiene el nombre del sitio y otros parámetros y los muestra.

Yo no estoy segura si esa declaración "global" se podría evitar y si el register globals tiene que ver en esto.

Te agradezco de antemano la ayuda.
__________________
"I want to hurt you just to hear you screaming my name" Poison - Alice Cooper
  #6 (permalink)  
Antiguo 16/07/2004, 09:03
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
No sé que verisón de PHP usas ahora .. pero eso de "global" definirlo al principio del script (no hablo de funciones y su ambito) ya no se usa desde hace muchas versiones de PHP (o mejor dicho no es necesario por qué PHP ya lo hace de por sí).

Sobre el uso de sesiones .. creo que ya te comenté que tienes que revisar ese punto también, para adaptar tus scripts de uso de sesiones con funciones como session_register() y $HTTP_SESSION_VARS (o peor $variable_sesion) .. a los nuevos métodos: arrays superglobales: $_SESSION y afines.

Un saludo,
  #7 (permalink)  
Antiguo 16/07/2004, 11:08
 
Fecha de Ingreso: mayo-2004
Ubicación: Perú
Mensajes: 160
Antigüedad: 13 años, 7 meses
Puntos: 0
¿y Session_start?

Uso sesion_start y $SESSION, creo que por ese lado no hay problemas. La aplicación no la he desarrollado yo, es código libre y según sus especificaciones, debe usar register_global ON. Lo que trato de determinar es a qué parte exacta del código se refiere, porque quiero cambiar de hosting y el nuevo no me permite tener en ON ese seteo.

Si le quito el global en ese programa me dices que funciona igual? voy a probarlo ahora.

Gracias
__________________
"I want to hurt you just to hear you screaming my name" Poison - Alice Cooper
  #8 (permalink)  
Antiguo 16/07/2004, 11:34
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues .. cambia de aplicación o visista la web origianal del autor por si tiene una versión para register_globals a OFF . .por qué no se trata de "parchear" como ya te he comentado .. no sé el uso de sesiones que hace . pero si usa session_register() (que no es lo mismo que session_start() eso es común e insprescindible) te va a dar porblemas por ese punto.

Un saludo,
  #9 (permalink)  
Antiguo 16/07/2004, 11:41
 
Fecha de Ingreso: mayo-2004
Ubicación: Perú
Mensajes: 160
Antigüedad: 13 años, 7 meses
Puntos: 0
No hay versión para Register Global OFF

Ya he buscado y no hay actualización que use register_global ON, pero no usa session_register en ninguna parte, y usa $POST, creo que es solo el uso del global en el encabezado de todos los programas, pero ¿cómo puedo reemplazar esto?
__________________
"I want to hurt you just to hear you screaming my name" Poison - Alice Cooper
  #10 (permalink)  
Antiguo 16/07/2004, 12:03
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Bueno .. si usa los arrays superglobales $_POST no hace falta ninguna conversión ..

(la verdad que esto lo debes aclarar con el autor .. yo no sé ni he visto el código al completo como para ver realmente si "podría" funcionar bajo register_globals a ON o a OFF o que cambios hay que hacer).

Un saludo,
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 21:45.