Backslashes adicionales que se agregan en PHP
Pregunta
Mi crappy host web realizó algunas actualizaciones el otro día y algunas configuraciones han ido mal, porque al mirar la wiki de nuestra compañía (MediaWiki), cada cita se escapa con una barra invertida. No son solo los datos que se publican (es decir, los artículos) los que están afectados, sino también el texto estándar de MediaWiki. por ejemplo:
Has seguido un enlace a una página que aún no existe. Para crear la página, comience a escribir en el cuadro a continuación (consulte la página de ayuda para obtener más información). Si está aquí por error, simplemente haga clic en el botón \ '\' \ 'volver \' \ '\' de su navegador.
Lo primero que hice fue deshabilitar magic_quotes_gpc
Y magic_quotes_runtime
usando un archivo .htaccess
, pero esto todavía está ocurriendo. Mi php_info ()
informa de esto:
Setting Local Value Master Value
magic_quotes_gpc Off On
magic_quotes_runtime Off On
magic_quotes_sybase Off Off
¿Alguna idea?
Solución
Si los indicadores de PHP se configuran con php_admin_flag
/ php_admin_value
, no puede cambiarlos desde un archivo .htaccess
. Esto me ha causado algunos dolores de cabeza antes. Deshabilítelo en php.ini
o deshaga las citas mágicas en tiempo de ejecución:
http://talks.php.net/show/php-best-practices/ 26
Otros consejos
Es posible que desee confirmar que los datos en su base de datos no se han dañado. Si estuvieses agregando barra () a tus datos cuando, sin saberlo, se activaron magic_quotes, estarías haciendo doble barra en la base de datos.
Tendrá que hacer que cambien el valor maestro o manejarlo usted mismo. No creo que puedas establecer magic_quotes_gpc ()
en tiempo de ejecución para los súper globales. (configurarlo en tiempo de ejecución eliminará cosas como la base de datos / archivos, pero no los globales)
if (ini_get('magic_quotes_gpc') ) {
foreach( Tendrá que hacer que cambien el valor maestro o manejarlo usted mismo. No creo que puedas establecer magic_quotes_gpc ()
en tiempo de ejecución para los súper globales. (configurarlo en tiempo de ejecución eliminará cosas como la base de datos / archivos, pero no los globales)
<*>GET as $key=>$value) {
Tendrá que hacer que cambien el valor maestro o manejarlo usted mismo. No creo que puedas establecer magic_quotes_gpc ()
en tiempo de ejecución para los súper globales. (configurarlo en tiempo de ejecución eliminará cosas como la base de datos / archivos, pero no los globales)
<*>GET[$key] = stripslashes($value);
}
} // etc...
Tal vez algo más está llamando set_magic_quotes_runtime ().
Uso stripslases () para eliminar las barras diagonales cuando se muestra.
¿Ha intentado ponerse en contacto con su host crappy y está registrando un error? Probablemente no sea el único afectado si está en un alojamiento compartido.