Page 1 sur 1

Passage de paramètre

Posté : 21 sept. 2011, 19:44
par Herve_be
Bonjour,
Dans un module DiapoItem.php qui me sert à afficher un diaporama je fais ceci

Echo "<a href='images/image0".$Image.".jpg' rel='lyteshow[vacation]' title='".$Title."'>

Ma question concerne la variable $Title : si elle contient un ' ça ne fonctionne pas (le texte s'arrête au '), par exemple

$Comment=""; $Title="Les angles sont coupés pour alléger l'ensemble qui est donc octogonal."; Include 'DiapoItem.php';

Le résultat est "Les angles sont coupés pour alléger l"

Merci d'avance pour votre aide.

Re: Passage de paramètre

Posté : 21 sept. 2011, 19:51
par xTG
Regardes du côté de la fonction addslashes(). :)

Re: Passage de paramètre

Posté : 27 sept. 2011, 17:47
par Herve_be
Merci pour la réponse mais ça ne fonctionne pas.
J'ai écrit
$Title=addslashes("L'inconvénient ...");
Résultat
L\

Le module php génère du html
En php j'écris
Echo "<a href='images/image0".$Image.".jpg' rel='lyteshow[vacation]' title='".addslashes(L'inconvénient ...)"'>"
le code généré est
<a href='images/image001.jpg' rel='lyteshow[vacation]' title='L\'inconvénient ...'>
c'est donc normal que ça ne fonctionne pas, il faudrait qu'il génère
<a href='images/image001.jpg' rel='lyteshow[vacation]' title="L'inconvénient ...">

Re: Passage de paramètre

Posté : 27 sept. 2011, 18:03
par AB
prends plutôt l'habitude de protéger tes variables à l'affichage par htmlspecialchars
echo '<a href="images/image0'.$Image.'.jpg" rel="'.htmlspecialchars(lyteshow[vacation]).'" title="'.htmlspecialchars($Title).'">';

Re: Passage de paramètre

Posté : 27 sept. 2011, 18:18
par Herve_be
Merci aussi mais ça ne fonctionne pas non plus.
Le code html généré par
Echo "<a href='images/image0".$Image.".jpg' rel='lyteshow[vacation]'  title='".htmlspecialchars($Title)."'>"
est
<a href='images/image001.jpg' rel='lyteshow[vacation]'  title='L'inconvénient...'>

Re: Passage de paramètre

Posté : 29 sept. 2011, 10:49
par Herve_be
J'ai trouvé : la piste était bonne mais il manquait un paramètre, il faut utiliser
htmlspecialchars($Title, ENT_QUOTES)

Re: Passage de paramètre

Posté : 29 sept. 2011, 11:21
par popy
C'est surtout qu'en HTML il faut utiliser les " et pas les '

Re: Passage de paramètre

Posté : 29 sept. 2011, 11:36
par Herve_be
C'est surtout qu'en HTML il faut utiliser les " et pas les '
Peut-être mais pour générer de l'html en php si je fais
Echo "<a href="images/image0".$Image.".jpg" rel="lyteshow[vacation]"  title="".$Title."">"
ça ne fonctionnera pas non plus !

Re: Passage de paramètre

Posté : 29 sept. 2011, 12:41
par xTG
Et la coloration syntaxique elle sert à rien ? :roll:
echo '<a href="images/image0'.$Image.'".jpg" rel="lyteshow[vacation]"  title="'.$Title.'">';

Re: Passage de paramètre

Posté : 29 sept. 2011, 14:11
par Herve_be
Et la coloration syntaxique elle sert à rien ?
moi, non, je ne vois pas les couleurs !

Re: Passage de paramètre

Posté : 29 sept. 2011, 15:04
par xTG
Tututu ! Même en nuance de gris les deux derniers codes sont pas très ressemblants. :twisted:

Re: Passage de paramètre

Posté : 29 sept. 2011, 23:24
par AB
Avec ou sans couleur débrouilles toi pour respecter les conventions. En plus je t'avais donné la bonne syntaxe et tu la remplace par la tienne pour ensuite venir dire que cela ne fonctionne pas :roll: