(Mémo) Désativer les Magic Quotes

Bien que cette fonctionnalité de PHP sera obsolète avec PHP 6, il peut arriver que certains hébergeurs activent encore les Magic Quotes.
Conséquence, nos données provenant des formulaires (entre autre) sont traités par addslashes(), ce qui ne nous intérresse pas forcément.

Bien qu'il est possible de désactiver les Magic Quotes dans le fichier de configuration php.ini ou par .htaccess.

Je préfère la solution suggérée sur le site php.net :

<?php

if (function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc())
{
    function stripslashes_deep($value)
    {
        return is_array($value) ?
            array_map('stripslashes_deep', $value) :
            stripslashes($value);
    }
    $_POST    = array_map('stripslashes_deep', $_POST);
    $_GET     = array_map('stripslashes_deep', $_GET);
    $_COOKIE  = array_map('stripslashes_deep', $_COOKIE);
    $_REQUEST = array_map('stripslashes_deep', $_REQUEST);
}

?>

Ce code, placé au début de vos scripts, enlève les slashes inutiles automatiquement.

Bien entendu, n'oubliez pas de protéger les données à introduire dans la base de donnée avec mysql_real_escape_string() pour éviter les injections sql.

comments powered by Disqus