Stripslashes et résultats loufoques !

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 : Stripslashes et résultats loufoques !

par Invité » 09 juil. 2007, 18:44

Non, je ne fais pas d'addslashes() quand j'enregistre les données dans la BDD.
Et pour répondre à "Petitbidon", j'ai interrogé get_magic_quotes_runtime() qui m'a retourné la valeur 0, désactivé donc.


Regarde effectivement si tu ne fais pas un addslashes() lors de l'enregistement en base, ce qui aurait pour effet de doubler l'antislash ajouté par le magic quotes :)

par Jules Petibidon » 09 juil. 2007, 11:16

Hello,

Une autre piste à vérifier aussi serait la configuration de magic_quotes_runtime qui, si elle est active, rajoute des slashes en sortie de base.

par Ryle » 09 juil. 2007, 10:51

Comme il a posté en tant qu'invité j'ai édité son message pour le rendre un peu plus lisible et l'aérer un peu ;)

Regarde effectivement si tu ne fais pas un addslashes() lors de l'enregistement en base, ce qui aurait pour effet de doubler l'antislash ajouté par le magic quotes :)

par @rthur » 09 juil. 2007, 10:27

Bonjour,

Regarde comment sont enregistrées tes données dans ta bdd avec PHPmyAdmin pour voir si les enregistrement n'ont bien été "slashés" qu'une seule fois.

Par ailleurs, utilise les balises
...[/ php] par pitié pour rendre tes posts lisibles ;)

Re: Stripslashes et résultats loufoques !

par gwenda » 09 juil. 2007, 09:39

J'ai omis de préciser, si jamais ça a une importance, que quand j'appelle la fonction magic_quotes_gpc(),cette fonctionnalité est bien activée : résultat = 1.
Slt,
J'ai créé un formulaire de modif, càd avec des champs comportant comme valeurs celles déjà saisies précédemment.
Je ressors donc mes données brutes de ma base mysql, ce qui donnera par exemple :
$Adresse = row['adresse'];
$Observations = row['observations'];
Ce sont des champs qui peuvent contenir des apostrophes du genre [C ' est moi]
Ensuite, dans mon form, je mets :
<input type="text" name="adr" value="'.$Adresse.'">
<textarea name="observ">'.$Observations.'</textarea>
Là, j'observe que pour ces valeurs affichées dans mes champs de formulaire, chaque apostrophe est échappée par un antislash.
Par contre, quand je fais un simple "echo stripslashes($Adresse)", j'ai bien ma valeur correcte qui s'affiche, sans \ d'échappement
J'ai donc changé mon code en rajoutant des stripslashes :
<input type="text" name="adr" value="'.stripslashes($Adresse).'">
<textarea name="observ">'.stripslashes($Observations).'</textarea>
Et là, même résultat, mes apostrophes sont toujours échappées par un \
Et forcément, si on enregistre le formulaire (submit) sans avoir enlevé les \, eh bien au prochain affichage de mon form, je me retrouve avec un double voire un triple \ devant mes apostrophes, et ainsi de suite (car il doit sûrement être sauvegardé dans ma bdd comme un élément à part entière de mon texte) !!!
Ai-je manqué de comprendre qq chose dans l'utilisation de stripslashes(), ou bien s'agirait-il d'un comportement uniquement lié aux champs de formulaire ???
Comment résoudre ce pb SVP ?
Merci
Gwenda

Stripslashes et résultats loufoques !

par gwenda » 09 juil. 2007, 09:31

Slt,
J'ai créé un formulaire de modif, càd avec des champs comportant comme valeurs celles déjà saisies précédemment.
Je ressors donc mes données brutes de ma base mysql, ce qui donnera par exemple :
$Adresse = row['adresse'];
$Observations = row['observations'];
Ce sont des champs qui peuvent contenir des apostrophes du genre [C ' est moi]
Ensuite, dans mon form, je mets :
<input type="text" name="adr" value="'.$Adresse.'">
<textarea name="observ">'.$Observations.'</textarea>
Là, j'observe que pour ces valeurs affichées dans mes champs de formulaire, chaque apostrophe est échappée par un antislash.
Par contre, quand je fais un simple "echo stripslashes($Adresse)", j'ai bien ma valeur correcte qui s'affiche, sans \ d'échappement
J'ai donc changé mon code en rajoutant des stripslashes :
<input type="text" name="adr" value="'.stripslashes($Adresse).'">
<textarea name="observ">'.stripslashes($Observations).'</textarea>
Et là, même résultat, mes apostrophes sont toujours échappées par un \

Et forcément, si on enregistre le formulaire (submit) sans avoir enlevé les \, eh bien au prochain affichage de mon form, je me retrouve avec un double voire un triple \ devant mes apostrophes, et ainsi de suite (car il doit sûrement être sauvegardé dans ma bdd comme un élément à part entière de mon texte) !!!

Ai-je manqué de comprendre qq chose dans l'utilisation de stripslashes(), ou bien s'agirait-il d'un comportement uniquement lié aux champs de formulaire ???
Comment résoudre ce pb SVP ?

Merci
Gwenda