[RESOLU] Mailing PHP

Eléphant du PHP | 229 Messages

14 oct. 2012, 18:38

Bonjour,
j'envoie un mail en PHP avec le script suivant.
<body>
<div id="main">
<?php
$nom=addslashes($_POST["nom"]);
$prenom=addslashes($_POST["prenom"]);
$telephone=$_POST["telephone"];
$email=$_POST["email"];
$entete="$nom $prenom,\n $email \n $telephone.";

$objet=addslashes($_POST["objet"]);
$mess=nl2br($_POST['texte']);
$messa=explode('<br />',$mess);
$message=implode($messa);

?>

<h1>Validation du mail</h1>
<table id="valid_form">
<tr><td><?php echo $nom?></td></tr>
<tr><td><?php echo $prenom?></td></tr>
<tr><td><?php echo $email?></td></tr>
<tr><td><?php echo $telephone?></td></tr>
<tr><td><?php echo $objet?></td></tr>
<tr><td><?php echo $mess?></td></tr></table>


<button value="envoyer" action="<?php mail('[email protected]', $objet, $message, $entete);?>">ENVOI</button> 


</div>
</body>
Mon problème c'est la :
$messa=explode('<br />',$mess);
$message=implode($messa);
SI je mets ces lignes, les accents bugguent et si je les mets pas j'ai des
<br />
au lieu des \n.

Comment gérer cela ?

D'avance merci.

ps : si ca peut aider :
<div>
<h2>Formulaire de contact</h2>
<table>

<tr>
<td>Nom</td>
<td>
<input type="text" name="nom" value="Votre Nom"/></td>
</tr>
<tr>
<td>Prénom</td>
<td>
<input type="text" name="prenom" value="Votre Prénom"/></td>
</tr>

<tr>
<td>Téléphone</td>
<td>
<input type="text" name="telephone" value="0100000000"/></td>
</tr>

<tr>
<td>Email</td>
<td>
<input type="email" name="mail" value="[email protected]"/></td>
</tr>

<tr>
<td>Objet</td>
<td>
<input type="text" name="objet" value="Réponse demande de stage dev Web." size="70"/></td>
</tr>

<tr>
<td></td><td>
<textarea name="texte" rows="20" cols="64">Ici rédigez votre message (N'oubliez pas vos coordonnées)</textarea>
</td>
</tr>

<tr><td></td>
<td><input type="submit" value="Envoyer le mail"/>
</td></tr>
</table>
</div>

Eléphant du PHP | 229 Messages

14 oct. 2012, 19:11

edit

Eléphanteau du PHP | 45 Messages

14 oct. 2012, 20:47

Hello!
D'où viennent les < br />?
Du textearea si il y a des retour chariot à la fin de chaque ligne dans le message?
J'arrive pas à saisir pourquoi tu veux gérer des < br />...
Peut-être retirer les < br /> générés, à ce compte là, tu mets un str_replace pour insérer des \r à la place des < br />. Non?

Ah, si... Les \n sont des "nouvelle ligne"...

Eléphant du PHP | 229 Messages

14 oct. 2012, 20:56

Merci je testerais ca la semaine pro.

Eléphant du PHP | 229 Messages

14 oct. 2012, 20:58

La j ai mis des htmlSpecialChars() et des addslashes (un peu au pif) on dirait que ça marche.
J'ai ajouté ça pour les accent :
 
$headers .='Reply-To: [email protected]'."\n";
     $headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
     $headers .='Content-Transfer-Encoding: 8bit'; 

Me reste a gérer le problème de la sécurité du formulaire :)