Foros del Web » Programando para Internet » PHP »

Problemas al cambiar register_globals

Estas en el tema de Problemas al cambiar register_globals en el foro de PHP en Foros del Web. Hola amigos, a ver si alguien me puede hechar una manilla debe de ser una tonteria lo que me falla pero sinceramente no se me ...
  #1 (permalink)  
Antiguo 06/03/2005, 18:06
 
Fecha de Ingreso: diciembre-2004
Mensajes: 51
Antigüedad: 13 años
Puntos: 0
Problemas al cambiar register_globals

Hola amigos, a ver si alguien me puede hechar una manilla debe de ser una tonteria lo que me falla pero sinceramente no se me ocurre k hacer, en fin mi problema es el siguiente:

Resulta que tengo un script realizado y colgado en una web de lycos, y ahora quiero ponerlo en un servidor propio, he montado el server y aparentemente funciona bien pero me da un error en cuanto quiero tirar de las variable pasadas atravez de la url de la manera $variable, he probado a poner $_GET[variable] y $HTTP_GET_VARS[variable] y de las dos formas ultimas funciona a la perfeccion sin embargo de la primera manera no funciona, creo que esto se debe de solucionar activando la opcion de register_globals en el php.ini, pero lo he cambiado a On y he gusardado y me sigue ocurriendo igual, he probado a reiniciar el servidor por si el problema estubiera en que necesitara reiniciar algo pero sigo igual, he mirado con la funcion phpinfo(); y en el apartado de register_globals me sigue diciendo Off

Alguien sabe si tengo que cambiar algo mas, o realizar algun otro cambio en algun otro archivo, o si simplemente tengo que hacer algo mas para que apache se de cuanta que el php.ini se ha actualizado.

Muchas gracias por vuestro tiempo y disculpar el mensaje que me ha quedado algo largo.

Muchas gracias.

Un saludo.
Adelsork.
  #2 (permalink)  
Antiguo 07/03/2005, 09:56
 
Fecha de Ingreso: marzo-2002
Mensajes: 449
Antigüedad: 15 años, 8 meses
Puntos: 0
puedes probar con

ini_set("register_globals","1");

la verdad no se que pueda ser a lo mejor no esta leyendo el archivo php.ini que modificaste, prueba a ponerlo en la carpeta windows (si es que no la tienes ya ahi y si usas este SO).
  #3 (permalink)  
Antiguo 07/03/2005, 10:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
También puedes usar extract()
http://www.php.net/manual/en/function.extract.php

extract($_REQUEST);

así "globalizas" los arrays superglobales $_GET, $_POST y $_COOKIE .. con el problema de seguridad que podrías tener. Lo ideal es que modifiques tu aplicación al uso de dichos arrays superglobales, de esa forma tu aplicación funcionará bajo register_gobals a ON o a OFF.

Un saludo,
  #4 (permalink)  
Antiguo 08/03/2005, 05:31
 
Fecha de Ingreso: diciembre-2004
Mensajes: 51
Antigüedad: 13 años
Puntos: 0
Bueno pues esto va algo mejor, alguien sabe donde tiene que ir el php.ini instalando un apache 2.0.52 un PHP 4.3.10 y un MySQL 4.1.8 todo bajo windows 2003 standart edition, yo tenia entendido que era en windows pero el php me ha creado el archivo en "Documents and Settings\Administrador\WINDOWS" he hecho una busqueda y solo lo encuentra en esa ruta y en una que ha creado en la carpeta del php llamada "backup" he probado a ponerlo en la carpeta WINDOWS pero parece que asi por fin se activan la registrer globals pero ahora me da errores del tipo "Notice: Undefined variable: tema_doc in ...\listado_doc.php" seguramente sea otra opcion que tenga que cambiar el en el php.ini pero no se cual puede ser.

En fin cualquier solucion por favor comuniquenmenlo.

Por cierto muchas gracias por vuestras respuestas Troyano y Cluster, lo de Troyano no me ha valido y lo que comenta Cluster es algo pesado ya que es uno de los primeros scripts que hice practicamente toda la aplicacion esta montada de la misma manera y editarla practicamente seria reescribirla.

Gracias por vuestro tiempo.

Un saludo
Andelsork.

Última edición por Adelsork; 08/03/2005 a las 05:41
  #5 (permalink)  
Antiguo 08/03/2005, 05:59
 
Fecha de Ingreso: diciembre-2004
Mensajes: 51
Antigüedad: 13 años
Puntos: 0
Parece que ya he dado con la tecla. el php.ini va en WINDOWS y he tenido que añadir una linea para que no me reporte las noticias. la linea es la siguiente:

error_reporting = E_ALL & ~E_NOTICE ; Show all errors except for notices

Si alguien quiere comentar algo sobre el tema le estare muy agradecido.

Muchas gracias a todos.

Un saludo.
Adelsork.
  #6 (permalink)  
Antiguo 08/03/2005, 06:26
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Dicha directiva que has ajustado .. tan sólo está "tapando" el error .. pero el error lo tienes igualmente.

Si tienes un error de tipo "variable no definida" .. hablando de una variable externa que te puede llegar por GET, POST u otro método (SESSION, COOKIES .. .etc) tendrías que hacer validciones tipo:

if (isset($variable)){
// usas la variable ...
}

pero mejor:

if (isset($_GET['variable'])){
// usas $_GET['variable']
}

El tema de que te resulte trabajo modificar una aplicación .. bueno .. es para que lo tengas presente .. eso te va a plantear problemas siempre y no sólo de esos "avisos" que puedes "tapar" sino de seguridad de tu própia aplicación .. así que es recomendable que pierdas "1 hora?" .. "1 día"? .. en adaptar tu aplicación y estar seguro que va a funcionar de forma segura y con todo tipo de configuraciones de "register_globals" ...

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:22.