get_magic_quotes_gpc

(PHP 3>= 3.0.6, PHP 4 , PHP 5)

get_magic_quotes_gpc -- Retourne la configuration actuelle de l'option magic_quotes_gpc

Description

int get_magic_quotes_gpc ( void )

get_magic_quotes_gpc() retourne la configuration actuelle de l'option magic_quotes_gpc (0 pour l'option désactivée, 1 pour l'option activée).

Note : Si la directive magic_quotes_sybase est activée, elle remplacera complètement magic_quotes_gpc. Ce qui fait que même si get_magic_quotes() retourne TRUE les guillemets doubles, les anti-slashes ou les caractères NULL ne seront pas protégés. Seul les guillemets simples le seront. Dans ce cas, ils ressembleront à ''.

Gardez en tête que la configuration de magic_quotes_gpc ne fonctionnera pas durant l'exécution du script.

Exemple 1. Exemple avec get_magic_quotes_gpc()

<?php
echo get_magic_quotes_gpc();         // 1
echo $_POST['lastname'];             // O\'reilly
echo addslashes($_POST['lastname']); // O\\\'reilly

if (!get_magic_quotes_gpc()) {
    
$lastname = addslashes($_POST['lastname']);
} else {
    
$lastname = $_POST['lastname'];
}

echo
$lastname; // O\'reilly
$sql = "INSERT INTO lastnames (lastname) VALUES ('$lastname')";
?>

Dans le but d'écrire du code portable (code qui fonctionne sur n'importe quel environnement), ou si vous n'avez pas accès au php.ini, vous devriez désactiver l'effet des maquic quotes. Celà peut se faire de deux façons, avec une directive dans un fichier .htaccess (php_value magic_quotes_gpc 0) ou en ajoutant le code ci-dessous en haut de vos scripts.

Exemple 2. Désactivation des magic quotes lors de l'exécution

<?php
if (get_magic_quotes_gpc()) {
    function
stripslashes_deep($value)
    {
        
$value = is_array($value) ?
                    
array_map('stripslashes_deep', $value) :
                    
stripslashes($value);

        return
$value;
    }

    
$_POST = array_map('stripslashes_deep', $_POST);
    
$_GET = array_map('stripslashes_deep', $_GET);
    
$_COOKIE = array_map('stripslashes_deep', $_COOKIE);
}
?>
Magic-quotes a été ajouté pour réduire l'écriture de codes dangereux par les débutants. Si vous désactivez les magic quotes, vous devez être très prudent en vous protégeant des attaques injections SQL.

Voir aussi addslashes(), stripslashes(), get_magic_quotes_runtime() et ini_get().