5568 sujets

Sémantique web et HTML

Salut tlm Smiley smile
j'ai un ptit probleme.
En fait je voulais faire un lien mailto de type :

mailto:lui@lui.lui?SUBJECT=test&BODY=click sur ce lien http://monserver/index.php?variable1=xxx&variable2=xxx

Le probleme vient du & entre ?variable1=xxx&variable2=xxx vu que le navigateur pense que c'est un parametre du mailto alors que c un parametre de l'url...
Est ce qu'il y a un caractere qui permet de lui dire de ne pas interpréter le & ?
Comme le "\" en php par exemple ?
Quand tu poste du code merci de le baliser avec [ CODE] et [/CODE]. Si tu pouvait éditer ton message pour corriger ça. Merci d'avance.

Ton lien me semble vraiment trés bizarre, je ne sais pas d'où tu sort cet exemple.

Un lien mailto :


<a href="mailto:nom@serveur.com?subject=sujet du mail&amp;body=contenu du message" title="Cliquer ici pour m'envoyer un email">Contact : nom@serveur.com</a>

Modifié par jb_gfx (01 Apr 2005 - 13:45)
*TOUJOURS* faire ses échappements.

Tu écris une URL, les URL ont des caractères spéciaux (suivant les positions il y a @ : / ? & et =) et ces caractères spéciaux doivent être échappés si tu veux les mettre réellement dans une valeur.
L'échappement des URL c'est le %xx où xx est le code hexa de l'octet à échapper. Tu cherches donc le code hexa de & et tu remplaces.

En php ça donnerait quelque chose comme ça :


$url = "http://monserver/index.php?variable1=xxx&variable2=xxx" ;
$body = "Click sur le lien $url" ;
$sujet = "test" ;
$params = '?subject='.urlencode($sujet).'&body='.urlencode($body) ;
$lien = 'mailto:lui@lui.lui'.$params ;
echo '<a href="mailto:'.htmlspecialchars($lien).'">lien</a>' ;


Sinon tu as même une fonction qui fait tout pour toi :

$url = "http://monserver/index.php?variable1=xxx&variable2=xxx" ;
$params = array( 'subject' => 'test' , 'body' => 'Click sur le lien '.$url ) ;
$lien = 'mailto:lui@lui.lui?'.http_build_query($params) ;
echo '<a href="mailto:'.htmlspecialchars($lien).'">lien</a>' ;


sur un autre registre, ce que tu essayes de faire marche globalement assez mal. Beaucoup de clients emails ne seront pas capables de comprendre ta syntaxe. D'autres décoderont mal les paramètres de l'url encodés. Enfin, chez ceux pour qui ça marche, tu risques de les emmerder un peu à définir le sujet pour eux.