Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
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 20/01/2012, 16h00   #1
Candidat au titre de Membre du Club
 
Inscription : février 2006
Messages : 54
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 54
Points : 13
Points : 13
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 :
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:

Citation:
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
Sébastien L est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2012, 17h29   #2
Membre Expert
 
Avatar de Seb33300
 
Homme Sébastien Alfaiate
Développeur Web
Inscription : janvier 2007
Messages : 1 330
Détails du profil
Informations personnelles :
Nom : Homme Sébastien Alfaiate
Âge : 26
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : janvier 2007
Messages : 1 330
Points : 1 659
Points : 1 659
Edit

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

Code :
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.
__________________
Zend Certified Engineer PHP 5.3

« Crois-tu comprendre le monde juste en matant le 20H Ou connaître l'histoire en ayant lu que l'angle des vainqueurs ? » Keny Arkana
Seb33300 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2012, 03h15   #3
Candidat au titre de Membre du Club
 
Inscription : février 2006
Messages : 54
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 54
Points : 13
Points : 13
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.

Citation:
$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);
Sébastien L 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 03h00.


 
 
 
 
Partenaires

Hébergement Web