IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Mail] Comment coder le sujet dans une url mailto:: ?


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 55
    Points : 40
    Points
    40
    Par défaut [Mail] Comment coder le sujet dans une url mailto:: ?
    Bonjour,

    Soit un script qui récupère un paramètre par $subject = $_GET['L']; et mettons que l'url appellante contienne &L=deuxi%E8me donc un caractère accentué.

    Pas de problème pour l'afficher avec htmlentities, et le repasser à une autre url, mais je n'arrive pas à construire une URL mailto avec cette variable dans le sujet.

    Donc j'affiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "<a href=\"mailto:...?subject=$subject\">"
    Je ne vois pas comment coder $subject ! J'obtiens toujours des caractères indésirables à la place ou après le caractère accentué !

    Merci pour vos suggestions !

  2. #2
    Membre actif Avatar de k1rby
    Profil pro
    Développeur Web
    Inscrit en
    Novembre 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2008
    Messages : 181
    Points : 219
    Points
    219
    Par défaut
    Bizarre, après un rapide test en local, avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<a href="mailto:truc@truc.truc?subject='.$subject.'">test</a>';
    J'obtiens bien un mailto:truc@truc.truc?subject=deuxième

    Peut-être un problème d'encodage de ta page ?

  3. #3
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonjour,

    ce serait donc juste un problème de concaténation de variable ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<a href="mailto:mail@domain.com?subject='.$subject.'">Envoyer un mail</a>';

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 55
    Points : 40
    Points
    40
    Par défaut
    Merci pour vos réponses.

    J'ai essayé avec d'autres manières, en concaténant, avec des simples quotes, mais sans succès...

    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<a href="mailto:...?subject=' . $subject . '">test</a>';
    Dans ce cas, le client d'Email affiche dans le sujet : deuxiè¥ (un caractère bizarre après le bon caractère accentué ??)

    Je ne peux évidemment pas agir sur le paramétrage du client Email, qui est multiple... Et le problème ne concerne pas le corps du message, mais bien le sujet.

    Alors s'il y a un gourou qui traîne par là...

  5. #5
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 230
    Points
    20 230

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 55
    Points : 40
    Points
    40
    Par défaut
    Non, urldecode ne donne rien et c'est normal puisque le décodage de l'url est déja fait en lisant le paramètre. Il n'y a pas de %E8 dans la chaîne.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 55
    Points : 40
    Points
    40
    Par défaut
    J'ai finalement trouvé !

    Il faut faire un rawurlencode sur le texte qui est mis dans le sujet et cela semble marcher.

    donc quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo '<a href="mailto:...?subject=' . rawurlencode($subject) . '">test</a>';
    Cela permet de convertir tous les caractères nécessaires, et aussi d'éviter le remplacement des espaces par le signe '+'

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Mail] génération aléatoire d'espace dans une url
    Par fauthie dans le forum Langage
    Réponses: 6
    Dernier message: 26/05/2008, 15h39
  2. Réponses: 1
    Dernier message: 09/10/2007, 21h53
  3. Réponses: 2
    Dernier message: 11/10/2006, 13h37
  4. Comment récupérer le contenu d'une URL dans une variable ?
    Par Fildz dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/08/2006, 09h26
  5. Comment recuperer un valeur envoyé dans une URL
    Par pierrot10 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 29/12/2005, 11h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo