xpatval Posté 12 Septembre 2004 Posté 12 Septembre 2004 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
Anonymus Posté 12 Septembre 2004 Posté 12 Septembre 2004 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 (mais c'est un autre problème) Voilà. Reviens nous dire si ca marche !
xpatval Posté 12 Septembre 2004 Auteur Posté 12 Septembre 2004 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
xpatval Posté 12 Septembre 2004 Auteur Posté 12 Septembre 2004 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
Anonymus Posté 13 Septembre 2004 Posté 13 Septembre 2004 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 &, © 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 Anonymus.
xpatval Posté 13 Septembre 2004 Auteur Posté 13 Septembre 2004 J'ai lu ce topo il y a peu, et ai corrigé mes & en &... 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 !!! xpatval
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant