Passage de paramètre

Eléphant du PHP | 256 Messages

21 sept. 2011, 19:44

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.

ViPHP
xTG
ViPHP | 7331 Messages

21 sept. 2011, 19:51

Regardes du côté de la fonction addslashes(). :)

Eléphant du PHP | 256 Messages

27 sept. 2011, 17:47

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 ...">

ViPHP
AB
ViPHP | 5818 Messages

27 sept. 2011, 18:03

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).'">';

Eléphant du PHP | 256 Messages

27 sept. 2011, 18:18

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...'>

Eléphant du PHP | 256 Messages

29 sept. 2011, 10:49

J'ai trouvé : la piste était bonne mais il manquait un paramètre, il faut utiliser
htmlspecialchars($Title, ENT_QUOTES)

Eléphant du PHP | 275 Messages

29 sept. 2011, 11:21

C'est surtout qu'en HTML il faut utiliser les " et pas les '

Eléphant du PHP | 256 Messages

29 sept. 2011, 11:36

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 !

ViPHP
xTG
ViPHP | 7331 Messages

29 sept. 2011, 12:41

Et la coloration syntaxique elle sert à rien ? :roll:
echo '<a href="images/image0'.$Image.'".jpg" rel="lyteshow[vacation]"  title="'.$Title.'">';

Eléphant du PHP | 256 Messages

29 sept. 2011, 14:11

Et la coloration syntaxique elle sert à rien ?
moi, non, je ne vois pas les couleurs !

ViPHP
xTG
ViPHP | 7331 Messages

29 sept. 2011, 15:04

Tututu ! Même en nuance de gris les deux derniers codes sont pas très ressemblants. :twisted:

ViPHP
AB
ViPHP | 5818 Messages

29 sept. 2011, 23:24

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: