6
votes

$ _Post et $ _GET convert citer (') à Backslash + devis (\')

J'ai ce code: xxx

lorsque je tape ' dans la zone de texte IT imprime \' au lieu de '.
Par exemple, si je tape 'hello' il imprime \ 'hello \' .
Alors, comment puis-je résoudre ce problème ??


4 commentaires

Il "imprime" où? Après echo?


Vous n'avez pas fermé votre balise Body . Utilisez Validator HTML pour vérifier les erreurs.


Stripslashes () ?


Stripslashes () Merci Billyonecan c'est ça!


5 Réponses :


13
votes

Les barres obliques ont été ajoutées car vous avez magic_quotes_gpc = sur dans votre php.ini . Notez que cette fonctionnalité est décompactée et vous devez l'éteindre dans votre php.ini . C'était une ancienne caractéristique de sécurité, mais vous ne devriez pas compter sur elle. Au lieu de vous écrire un code pour vous-même que les valides toutes les entrées et utilisent des instructions préparées lorsque vous passez des entrées sur les requêtes SQL ou utilisez escapeshellarg () si vous passez des entrées sur des scripts shell.

Cependant, utilisez Stripslashes () pour supprimer les barres obliques: xxx


0 commentaires

5
votes

On dirait que vous avez citations magiques définies dans votre interpréteur PHP. Ils peuvent être éteints via un réglage ini.


0 commentaires

2
votes
echo stripslashes($_GET['user']);

0 commentaires

2
votes

Utilisez ce code pour le faire fonctionner, que la fonctionnalité soit activée ou désactivée:

function remove_magic_quotes($input) {
    if(get_magic_quotes_gpc()) $input= stripslashes($input);
    return $input;
}


0 commentaires

3
votes

Vous devez appeler cette fonction au début.
Vous n'avez plus à vous soucier des backslashes plus, quels que soient les paramètres de votre php.ini code>.

function gpc_clean() {

    if (get_magic_quotes_gpc()) {

        $arr = array();
        if (isset($_GET))    $arr[] =& $_GET;
        if (isset($_POST))   $arr[] =& $_POST;
        if (isset($_COOKIE)) $arr[] =& $_COOKIE;
        array_walk_recursive($arr, function (&$v) {
            $v = stripslashes($v);
        });

    }

}


0 commentaires