antislashs et guillemets: problemes!

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : antislashs et guillemets: problemes!

par Invité » 20 juil. 2009, 16:41

Merci

par AB » 19 juin 2009, 17:27

Ce serait pas un pb de get_magic_quote_gpc() qui est activé et qui fait doublon avec la fonction mysql_real_escape_string() lors de l'enregistrement de tes variables ?

Si c'est le cas, dans les pages qui font l'insertion en bdd, tu peux essayer de mettre au début de page (en tous cas avant l'utilisation de tes variables) :
if (get_magic_quotes_gpc()) {
    function undoMagicQuotes($array) {
    
        $newArray = array();
        
        foreach($array as $key => $value) 
            {

                $key = stripslashes($key);

                if (is_array($value)) 
                {
                    $newArray[$key] = undoMagicQuotes($value);
                }
                else 
                {
                    $newArray[$key] = stripslashes($value);
                }
            }
        return $newArray;
    }
    $_GET = undoMagicQuotes($_GET);
    $_POST = undoMagicQuotes($_POST);
    $_COOKIE = undoMagicQuotes($_COOKIE);
    $_REQUEST = undoMagicQuotes($_REQUEST);
} 
Cela traite toutes les variables gpc d'un coup.

Maintenant si tu n'a qu'une ou deux variables à récupérer tu peux aussi faire
function Verif_magicquotes ($chaine) 
{
if (get_magic_quotes_gpc()) $chaine = stripslashes($chaine);

return $chaine;
}  

$insertion = "INSERT INTO table(champ1) VALUES('".mysql_real_escape_string(Verif_magicquotes($_POST['var']))."')";
Enfin bref dans le cas où get_magic_quotes_gpc() est activé la bonne façon de faire est de supprimer les \ avant d'utiliser la fonction mysql_real_escape_string() mais en aucun cas de garder les \ provenant du get_magic_quotes_gpc() pour se passer d'utiliser mysql_real_escape_string().

par Nagol » 19 juin 2009, 15:19

cad, ca t'affiche quoi? parceque rien, ca peut vouloir dire pleins de choses, mais si en fait ca t'affiches quelquechose mais que tu ne vois rien, c'est encore autre chose, soit plus précis stp, et fournit nous un exemple détaillé du résultat en terme de source html.

antislashs et guillemets: problemes!

par zibizibi » 19 juin 2009, 11:17

Salut a tous,

J’ai un champ texte de table MySQL que je veux afficher dans une page web sous la forme d’un input text : input type = ”text” value = ...

Certains enregistrements de cette table contiennent des guillemets " qui font echouer la requete d'SQL insertion, c’est pourquoi avant d'inserer dans la table j’utilise la fonction mysql_real_escape_string, qui place un \ avant chaque guillemet.

Pour ne pas afficher ces \, j’utilise la fonction stripslashes juste avant l’affichage. Le probleme est que dans ce cas la, ca n’affiche rien !

Si je n’utilise pas stripslashes, ca affiche bien le contenu mais avec des \” tout laids. Si j’essaie de virer les \ avec stripslashes, plus rien ne s'affiche. Comment resoudre ce probleme ?