Aller au contenu

satanées quotes !


Sujets conseillés

Posté

Bonjour,

Je m'empatouille (si si) avec cette ligne pour laquelle les quotes contenues dans certaines variables empêchent l'ouverture du pop-up:

onClick="open_pict('popup.php?im=<?php echo $ordre ;?>&titre=<?php echo $titre ;?>&lon=<?php echo $lon ;?>&larg=<?php echo $larg ;?>&annee=<?php echo $annee ;?>&com_long=<?php echo $com_long ;?>&materiau=<?php echo $materiau ;?>')"

Quelle astuce puis-je appliquer pour palier à ce genre de problème, sachant que je souhaite conserver la distinction HTML/PHP ?

Merci,

xpatval

Posté

Plusieurs solutions.

Soit appliquer les fonctions pré définies (telles que addslashes,..),

Soit appliquer une fonction type str_replace où l'on remplace les guillemets par des antislashes guillemets,

Soit appliquer la méthode décrite dans ce post : http://www.webmaster-hub.com/index.php?sho...indpost&p=37470 (EOF),

Soit... ne pas utiliser les pop ups :D (mais c'est un autre problème)

Voilà. Reviens nous dire si ca marche ! ;)

Posté

Alors, tout le problème du addslashes, chez moi, est que:

J'addslashe mes variables avant insertion dans la bdd.

Lorsque je vais voir les enreg dans phpmyadmin, elles ne sont pas addslashées, mais existent bien avec les quotes (!)

va comprendre...

je teste plusieurs possibilités...

xpatval

Posté

:P

Bien, la solution était simple. urlencode() était et reste mon ami.

Comme quoi, il ne faut pas aller chercher bien loin...

Quant au post que tu m'indiques, je n'ai pas vraiment compris la relation... Mais je suis à l'heure de la digestion, alors, hein...

xpatval :hypocrite:

Posté

Le problème de urlencode est expliqué dans le manuel :

Note: Faites bien attention aux variables qui ressemblent à des entités HTML, comme par exemple &amp, © et £, qui sont analysées par le client web et remplacée par leur valeur. C'est un vrai problème qui a été montré par le W3C depuis longtemps. La référence est ici : http://www.w3.org/TR/html4/appendix/notes.html#h-B.2.2. PHP supporte le remplacement de séparateur d'arguments par un point-virgule, comme recommandé par le W3C, grâce à la directive arg_separator .ini. Malheureusement, la plupart des clients web n'envoient pas leurs données de formulaire avec des points-virgules. Une solution plus portable est d'utiliser & à la place de & comme séparateur. Vous n'avez alors pas à changer la directive arg_separator. Laissez-la à &, mais encodez vos URL avec htmlentities().

SI phpmyadmin te livre les résultats 'addslashés', c'est parce qu'il possède des fonctions similaires. C'est donc normal.

Pour le reste, je te laisse digérer :D

Anonymus.

Posté

J'ai lu ce topo il y a peu, et ai corrigé mes & en &amp...

Cela étant, concernant phpmyadmin, je me pose qd même la question: n'ayant pas changé de version php, mysql et apache, lorsque je modifie certaines données textes dans un site consacré aux 24heures du mans, ces données sont addslashées (parce que je le code avant update) et visibles physiquement (ahhhrg je le vois le "\", dans phpmyadmin). Or, dans le site que je développe actuellement, même principe de codage avant update ou insert, mais pas de "\" !

Y comprends-tu quelque chose ? hein ? y comprends-tu quelque chose ? tu vas me répondre oui !! bon diou !!! :1eye:

:blink:

xpatval :whistling:

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...