Foros del Web » Programando para Internet » PHP »

Si, otra vez magic_cuotes...

Estas en el tema de Si, otra vez magic_cuotes... en el foro de PHP en Foros del Web. Bueno, a raiz de un problemita que tuve en el server, me di cuenta de que este tenia las magic_cuotes deshabilitadas. Probarlo fue sencillo, primero ...
  #1 (permalink)  
Antiguo 03/12/2002, 01:14
 
Fecha de Ingreso: junio-2002
Ubicación: Buenos Aires, Argentina
Mensajes: 876
Antigüedad: 15 años, 6 meses
Puntos: 0
Si, otra vez magic_cuotes...

Bueno, a raiz de un problemita que tuve en el server, me di cuenta de que este tenia las magic_cuotes deshabilitadas.

Probarlo fue sencillo, primero hice un

echo get_magic_quotes_gpc();

y me devolvio 0, y luego envie una comilla por POST y la imprimi, y salio impresa una comilla.
En mi PC, donde tengo habilitado el magic_quotes, siempre se le agrega una barra invertida a estos caracteres, que es lo que quiero.

Yo alguna vez habia probado usar en mi PC

ini_set("magic_quotes_gpc","0");

para deshabilitarlo (solo para probar). Pero ahora que intento usar ini_set("magic_quotes_gpc","1"); (para habilitar o deshabilitar) no me funciona, no se si se debera a que antes usaba una version 4.1 y ahora uso la ultima... y en el server tampoco funciona.

Pero hay algo mas curioso: luego de hacer

ini_set("magic_quotes_gpc","1");

si hago

echo get_magic_quotes_gpc();

me devuelve 1, o el valor que setee con ini_set, pero si en esa misma pagina (mas abajo) imprimo una comilla que viene por formulario, no le hace caso al valor fijado. Es decir, si estaba en 0 y lo fije a 1 me imprime " ... y si estaba en 1 y lo fije a 0 me devuelve \"

Alguien podria decirme en que estoy fallando? (me late a que es error mio porque me pasa en mi PC y en el server)
  #2 (permalink)  
Antiguo 03/12/2002, 11:25
 
Fecha de Ingreso: junio-2002
Ubicación: Buenos Aires, Argentina
Mensajes: 876
Antigüedad: 15 años, 6 meses
Puntos: 0
Ayuda please!
  #3 (permalink)  
Antiguo 03/12/2002, 13:01
 
Fecha de Ingreso: junio-2002
Ubicación: Buenos Aires, Argentina
Mensajes: 876
Antigüedad: 15 años, 6 meses
Puntos: 0
Encontre este comentario de un usuario en la pagina de php:

magic_quotes_gpc is another setting that when changed has no effect on your script at all. This is because the variables in $_POST/$_GET/$_COOKIE are already setup by the time you are able to call ini_set()

Entonces, no hay forma de setear magic_quotes?
  #4 (permalink)  
Antiguo 03/12/2002, 13:29
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Eso te está diciendo que en TODAS las páginas que requieras del magic_quote a ON o al estado diferente al de la configuracion del servidor por defecto ... TENDRAS que hacer el ini_set(...) ..

Pero esto no es una curiosidad de magic_quotes . .sino de la funcion ini_set() .. solo tiene validez durante la ejecución del script los cambios de las directivas del php.ini que fuerces en ese momento.

Y a todo esto .. la directiva q tendrias q cambiar es: ?¿?¿ porque la de _gpc parace q es meramente informativa ...

ini_set("magic_quotes_runtime",1);

o por

set_magic_quotes_runtime()

Un saludo,
  #5 (permalink)  
Antiguo 03/12/2002, 15:15
 
Fecha de Ingreso: junio-2002
Ubicación: Buenos Aires, Argentina
Mensajes: 876
Antigüedad: 15 años, 6 meses
Puntos: 0
No entiendo lo que decis. Como es eso de meramente informativa?

Porque aca magic-quotes-runtime lo que dice es que si se habilita magic_quotes_runtime se agregan escapes hasta al obtener datos de bds

Yo no quiero eso, sino esto magic-quotes-gpc que al habilitarlo solo agrega escapes al tratarse de GET COOKIE o POST
  #6 (permalink)  
Antiguo 03/12/2002, 15:18
 
Fecha de Ingreso: junio-2002
Ubicación: Buenos Aires, Argentina
Mensajes: 876
Antigüedad: 15 años, 6 meses
Puntos: 0
Ademas acabo de probarlo y no tiene ningun efecto, igual que gpc, tanto en mi pc como en el server.

Alguien me podria hacer el favor de probarlo, seteando y enviando datos, y luego imprimiendo please?
  #7 (permalink)  
Antiguo 03/12/2002, 15:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Ops! . Decia de magic_quotes_gpc .. porque lo he visto que lo usan como condicional:

Código PHP:
myAddSlashes($st) {
 if (
get_magic_quotes_gpc()==1) {
   return 
$st;
 } else {
   return 
AddSlashes($st);
 }

ó

Código PHP:
To force disable magic quotesI put this code on top of script.
 if (
get_magic_quotes_gpc()) {
   
// Overrides GPC variables
   
for (reset($HTTP_GET_VARS); list($k$v) = each($HTTP_GET_VARS); )
     $
$k stripslashes($v);
   for (
reset($HTTP_POST_VARS); list($k$v) = each($HTTP_POST_VARS); )
     $
$k stripslashes($v);
   for (
reset($HTTP_COOKIE_VARS); list($k$v) = each($HTTP_COOKIE_VARS); )
     $
$k stripslashes($v);
 } 


pero era get_ .. no set_ .. repito


Sigue mirando los "user coments" de php.net ..

Un saludo,
  #8 (permalink)  
Antiguo 05/12/2002, 14:52
 
Fecha de Ingreso: septiembre-2001
Ubicación: Monterrey
Mensajes: 663
Antigüedad: 16 años, 2 meses
Puntos: 6
Como comnetario

Como comentario hay un detalle que los dos estan pasando por alto y es que las directivas que estan en el archivo php.ini estan seteadas por un esquema de permisos que determinan de que manera puede ser afectada dicha directiva a saber son los siguientes.
  • PHP_INI_USER
  • PHP_INI_PERDIR
  • PHP_INI_SYSTEM
  • PHP_INI_ALL
PHP_INI_USER permite setear directivas durante la ejecucion de un scritp del usuario.
PHP_INI_PERDIR permite setar directivas mediante el archivo php.ini o htaccess, cuando php esta como modulo de apache.
PHP_INI_SYSTEM permite setear directivas por medio del archivo php.ini y httpd.conf.
PHP_INI_ALL permite setear directivas por medio de la funcion ini_set al menos el teoria y por archivos .htaccess y obviamente por medio del archivo php.ini y httpd.conf.

A hora el problema de zeus_bsas es que magic_quotes_gpc esta controlada por los pemisos PHP_INI_SYSTEM y PHP_INI_PERDIR.
De tal forma que solo pued acceder a ella mediante el archivo php.ini o por medio del un archivo .htaccess esta ultima opcion tiene dos condiciones que php este como modulo de apache y que la directiva AllowOverride en el apache, para el directorio del usuario este seteada con ALL o Options por lo menos.

Para acceder a la driectiva de esta ultima forma se debe de crear el archivo .htaccess y agregar la siguiente linea dentro de el.

php_value magic_quotes_gpc 1
  #9 (permalink)  
Antiguo 05/12/2002, 15:20
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Gracias por la aclaración Herminio ..

Personalmente a ese nivel no conocia esos detalles de PHP xD .. Hoy los aprendí con tu clase masgistral

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