Forum und email

Desactivación de Comillas Mágicas

Puede que la directiva magic_quotes_gpc solo pueda ser desactivada en el nivel de sistema, y no en tiempo de ejecución. En otras palabras, usar ini_set() no es posible.

Example#1 Desactivación de comillas mágicas del lado del servidor

Un ejemplo que define el valor de estas directivas a Off en php.ini. Para detalles adicionales, lea la sección del manual titulada Cómo modificar los parámetros de configuración.

; Magic Quotes
;

; Comillas mágicas para datos GET/POST/Cookie de entrada.
magic_quotes_gpc = Off

; Comillas mágicas para datos generados en tiempo de ejecución,
; p.ej. desde SQL, exec(), etc
magic_quotes_runtime = Off

; Usar comillas mágicas tipo Sybase (escapar ' con '' en lugar de \').
magic_quotes_sybase = Off

Si el acceso a la configuración del servidor no se encuentra disponible, el uso de .htaccess es también una opción. Por ejemplo:

php_flag magic_quotes_gpc Off

Con el propósito de escribir código portable (código que funciona en cualquier entorno), por ejemplo si la configuración en el nivel del servidor no es posible, he aquí un ejemplo de cómo deshabilitar magic_quotes_gpc en tiempo de ejecución. Este método es ineficiente así que es preferible definir las directivas apropiadas en algún otro lugar.

Example#2 Deshabilitar comillas mágicas en tiempo de ejecución

<?php
if (get_magic_quotes_gpc()) {
    function 
stripslashes_profundo($valor)
    {
        
$valor is_array($valor) ?
                    
array_map('stripslashes_profundo'$valor) :
                    
stripslashes($valor);

        return 
$valor;
    }

    
$_POST array_map('stripslashes_profundo'$_POST);
    
$_GET array_map('stripslashes_profundo'$_GET);
    
$_COOKIE array_map('stripslashes_profundo'$_COOKIE);
    
$_REQUEST array_map('stripslashes_profundo'$_REQUEST);
}
?>