Desactivaci贸n de Comillas M谩gicas

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.

Ejemplo 31-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.

; Comillas magicas
;

; Comillas magicas para datos GET/POST/Cookie de entrada.
magic_quotes_gpc = Off

; Comillas magicas para datos generados en tiempo de ejecucion,
; p.ej. desde SQL, exec(), etc
magic_quotes_runtime = Off

; Usar comillas magicas 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.

Ejemplo 31-2. Deshabilitir 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);
}
?>