Bonjour,
Je suis confronté à un très gros problème dans mes fonctions à cause des fameux guillemets simple ou double " ' .
J'ai plusieurs fonctions ou scripts qui génère des chaines divers comme des requetes Mysql, ou l'affichage d'éléments Html ou Javascript. Ces requêtes incluent ou affichage des $variable tel que des bouts de code html etc. qui peuvent contenir des guillements.
Le problème: dès que je commence à mélanger les languages et les inclusions, j'ai des problèmes avec les " " ou les ' ' ça dépend duquel je choisis d'abandonner.
Voici un exemple:
J'ai volontairement sorti le tout de PHP pour supprimer un $value="" et ainsi quelques guillements, mais ça ne change rien au problème.
Le code marche bien SAUF si ma variable contient un ' (apostrophe) dans lequel cas il s'arreter d'executer le code html/javascript une fois l'apostrophe rencontré.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <a href="javascript:popImage('imgUp/mets/<?= addslashes(htmlspecialchars($valueMet[5])); ?>','Image')">
Si j'inverse les " par des ' : href='javascript:popImage("$value") le problème reste le même mais s'inverse également: les apostrophes vont passer mais les " vont bloquer.
Les apostrophes sont pourtant bel et bien escaper grâce à addslashes (\') mais le script bloque quand même.
Comment faire?? J'ai essayé toutes les fonctions addslashes, mysql_real_escape_string, j'ai meme essayé un str_replace() pour le faire manuelement mais rien ne fonctionne. Dans certains cas plus "simple" j'ai pu m'en sortir grâce à addslashes ou htmlspecialchars ou en séparant le html du php en ouvrant/fermant les balises php <? ?>, mais quand je dois jongler entre php/javascript ça coince.
Merci de votre aide si quelqu'un a une solution, ou même une piste...![]()
Partager