Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/08/2008, 16h58   #1
Membre du Club
 
Inscription : juillet 2006
Messages : 150
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 150
Points : 40
Points : 40
Par défaut Titre de lien dynamique avec espace

bonjour

j'ai une page avec des liens dynamiques et le le titre de ce lien dynamique également, mais quand dans la base le titre comporte un espace, le titre apparait coupé à l'espace.
ex: le titre donne => le

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$sql3="select *from photo where album='$album'";
      }
 
 
      $result3=mysql_query($sql3) or die(mysql_error());
      while ($photo3=mysql_fetch_array($result3)){
$titredelaphoto=$photo3['titrephoto'];
      	$id3=$photo3['idphoto'];
      	$small3=$photo3['photosmall'] ;
 
      	list($width, $height, $type, $attr) = getimagesize("photogallerymin/$small3");
      	if ($height>$width)$format=1;
      	else $format=2;
      	if ($format==2)$taillevignette=100;
      	else $taillevignette=60;
 
     echo"<a href='photos.php?id=$id3&album=$album' title=--".$titredelaphoto."--><img src='photogallerymin/$small3' width=$taillevignette></a>&nbsp;&nbsp;";
 
 
      }
rvm31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2008, 17h08   #2
Expert Confirmé
 
Avatar de Eusebe
 
Inscription : mars 2006
Messages : 1 989
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : mars 2006
Messages : 1 989
Points : 3 606
Points : 3 606
Bonjour,

essaie en utilisant la fonction rawurlencode pour remplacer les caractères spéciaux...
Eusebe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2008, 14h23   #3
Membre du Club
 
Inscription : juillet 2006
Messages : 150
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 150
Points : 40
Points : 40
ça ne fonctionne pas puisque les espaces se trouvent encodés alors en %20, et les autres caractères accentués réencodé aussi donc quand le titre de la photo s'affiche je me retrouve avec les codages des caractères qui apparait.
j'ai essayé un encode et decode successif mais à ce moment là, je reviens avec mon problème de base plus rien après un espace.

test avec encode decode
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
$result3=mysql_query($sql3) or die(mysql_error());
      while ($photo3=mysql_fetch_array($result3)){
$titredelaphoto=rawurlencode($photo3['titrephoto']);
      	$id3=$photo3['idphoto'];
      	$small3=$photo3['photosmall'] ;
 
      	list($width, $height, $type, $attr) = getimagesize("photogallerymin/$small3");
      	if ($height>$width)$format=1;
      	else $format=2;
      	if ($format==2)$taillevignette=100;
      	else $taillevignette=60;
 
     echo"<a href='photos.php?id=$id3&album=$album' title=".rawurldecode($titredelaphoto)."--><img src='photogallerymin/$small3' width=$taillevignette></a>&nbsp;&nbsp;";
rvm31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2008, 14h34   #4
Expert Confirmé
 
Avatar de Eusebe
 
Inscription : mars 2006
Messages : 1 989
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : mars 2006
Messages : 1 989
Points : 3 606
Points : 3 606
C'est dans photo.php qu'il faut que tu décodes le paramètre :
Code :
$title = rawurldecode($_GET['title']);
Eusebe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2008, 15h57   #5
Membre Expert
 
Avatar de riete
 
Homme Thierry
NFC & DevWeb
Inscription : avril 2006
Messages : 1 175
Détails du profil
Informations personnelles :
Nom : Homme Thierry
Âge : 51
Localisation : France

Informations professionnelles :
Activité : NFC & DevWeb
Secteur : Bâtiment

Informations forums :
Inscription : avril 2006
Messages : 1 175
Points : 1 366
Points : 1 366
Ajoute juste des guillemets après title= comme ceci:
Code :
echo"<a href='photos.php?id=$id3&album=$album' title=\"".$titredelaphoto."\"<img src='photogallerymin/$small3' width=$taillevignette></a>&nbsp;&nbsp;";
riete est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2008, 16h30   #6
Membre du Club
 
Inscription : juillet 2006
Messages : 150
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 150
Points : 40
Points : 40
bravo riete c'était ça.
mais peux tu m'expliquer la fonction des anti slash et pourquoi ce positionnement précis
rvm31 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2008, 10h22   #7
Membre Expert
 
Avatar de riete
 
Homme Thierry
NFC & DevWeb
Inscription : avril 2006
Messages : 1 175
Détails du profil
Informations personnelles :
Nom : Homme Thierry
Âge : 51
Localisation : France

Informations professionnelles :
Activité : NFC & DevWeb
Secteur : Bâtiment

Informations forums :
Inscription : avril 2006
Messages : 1 175
Points : 1 366
Points : 1 366
Citation:
Envoyé par rvm31 Voir le message
bravo riete c'était ça.
mais peux tu m'expliquer la fonction des anti slash et pourquoi ce positionnement précis
C'est assez simple, si tu prends du code HTML 'pure', tu devrait écrire ceci:Les champ textes doivent toujours être entourés de guillemets.
Maintenant quand tu envoye du code HTML depuis PHP vers ton navigateur avec la commande echo, tu dois distinguer le code HTML de tes variables, exemple:
Code :
echo "<input title=".$titre."
Sauf que dans ce cas tu concatène simplement la valeur de ta variable.
Si $titre vaut "mon image" tu enverras a ton navigateur
Citation:
<input title=mon image
Chose qu'il ne va pas interpréter correctement.

Et l'antislashe... et bien pour éviter que le guillemet suivant soit interprété par php comme la fermeture de la zone de texte. C'est un héritage du langage C.
Je ne sais pas si je suis clair.

A+
riete est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h02.


 
 
 
 
Partenaires

Hébergement Web