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 :

Email et retour à la ligne


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 58
    Points : 34
    Points
    34
    Par défaut Email et retour à la ligne
    Bonjour,

    Je souhaite envoyer un email lors de l'inscription d'un membre sur mon site via un formulaire. J'ai un problème de retour à la ligne qui ne s'effectue pas: les \n ne sont pas pris en compte.

    Voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $message = _('Merci de vous être inscrit sur %1$s. Voici vos informations de connexion:\n \n Pseudo: %2$s. \n Mot de passe: %3$s \n \n Le mot de passe étant crypté dans la base de données, il ne pourra pas vous être retourné en cas d\'oubli.  Conservez donc bien précieusement ces informations. \n \n A bientôt sur %1$s !\n %4$s');
     
    $texte = sprintf($message,$titre_site,$login,$pass1,$adresseSite);  
     
    $sujet= _("Inscription confirmée");
     
    $headers ="From: \"" . $nomSiteRaccourci . "\"<". $email_inscr . ">\n"; 
    $headers .="Reply-To: \"RETOUR\"<". $email_inscr . ">\n"; 
    $headers .= "MIME-Version: 1.0 \n";
    $headers .="Content-Type: text/plain; charset=\"utf-8\"\n"; 
    $headers .="Content-Transfer-Encoding: 8bit"; 
     
    mail($mail,$sujet,$texte,$headers);
    Voici le mail que je reçois dans ma boite de réception:

    Merci de vous être inscrit sur Titre_Site. Voici vos informations de connexion:\n \n Pseudo: Test. \n Mot de passe: azerty \n \n Le mot de passe étant crypté dans la base de données, il ne pourra pas vous être retourné en cas d'oubli. Conservez donc bien précieusement ces informations. \n \n A bientôt sur Titre_Site !\n
    Je précise que j'utilise gettext pour les traductions (chinois) d'où la structure des chaînes _(' ')

    Aussi remplacer les chaînes par _(" ") : Warning: sprintf() [function.sprintf]: Too few arguments
    ...ou _('" "') ne résout pas le problème.

    Pouvez-vous m'aider à résoudre ce problème de présentation?

    Merci

  2. #2
    Membre émérite
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Points : 2 399
    Points
    2 399
    Par défaut
    Edit

    En php il faut utiliser le guillemet double pour que \n soit pris en compte comme un caractère spécial.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo '\n'; // affiche \n
    echo "\n"; // revient à la ligne

    Si ça ne règle pas le problème mais que les \n disparaissent, essaye avec \r\n.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 58
    Points : 34
    Points
    34
    Par défaut
    Merci Seb33300, ça fonctionne!

    J'ai dû créer une variable stockant les retours à la ligne car ça ne marchait pas quand j'insérais "\n" directement dans la variable $message.

    $retourLigne = "\n";

    $message = _('Merci de vous être inscrit sur %1$s. Voici vos informations de connexion:%5$s %5$s - Pseudo: %2$s. %5$s - Mot de passe: %3$s %5$s %5$s Le mot de passe étant crypté dans la base de données, il ne pourra pas vous être retourné en cas d\'oubli. Conservez donc bien précieusement ces informations. %5$s %5$s A bientôt sur %1$s !%5$s %4$s');

    $texte = sprintf($message,$titre_site,$login,$pass1,$adresseSite,$retourLigne);

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

Discussions similaires

  1. Faire un retour à la ligne dans l'email?
    Par sleeg dans le forum ASP.NET
    Réponses: 3
    Dernier message: 11/10/2010, 16h32
  2. Caractère de retour à la ligne.
    Par Pari dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 18/03/2009, 09h59
  3. [Mail] retour à la ligne lors reception d'email
    Par S~C dans le forum Langage
    Réponses: 5
    Dernier message: 20/06/2006, 17h04
  4. [MFC] Retour à la ligne dans un CEdit
    Par Kant dans le forum MFC
    Réponses: 7
    Dernier message: 18/02/2004, 08h58
  5. Conserver les retours à la ligne
    Par arwen dans le forum ASP
    Réponses: 2
    Dernier message: 04/12/2003, 12h50

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