Probleme formulaire

Fermé
hellomotoko Messages postés 1 Date d'inscription mercredi 19 novembre 2008 Statut Membre Dernière intervention 19 novembre 2008 - 19 nov. 2008 à 12:54
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 19 nov. 2008 à 13:22
Bonjour,

J'ai fait ce formulaire, qui est un formulaire de contact multi-destinataire:


<form name="message" action="traitement.php" method="post" onSubmit="return verification()">
<div align="center">
<table border="0" width="77%" style="border-collapse: collapse" id="table1">
<tr>
<td align="right" width="112"><b>Destinataire :</b></td>
<td width="450" align="left">
<SELECT name="destinataire">
<option>Choisissez un destinataire</option>
<option value="email@hotmail.fr">Personne 1</option>
<option value="email@hotmail.fr">Personen 2</option>
<option value="email@hotmail.fr">Personne 3</option>
<option value="email@hotmail.fr">Personne 4</option>
<option value="email@hotmail.fr">Personne 5</option>

</SELECT> </td>
</tr>
<tr>
<br>
<td align="right" width="112"><b>Nom :</b></td>
<td align="left"><input name="nom" size=75/> </tr>

<tr><td align="right" width="112"><b>Email :</b></td>
<td align="left">
<input name="email"size=75></tr><br>
<tr><td align="right" width="112"><b>Sujet :</b></td>
<td align="left">
<input type="text" name="sujet" size="75

" tabindex="1"></td>
</tr>
<tr>
<td align="right" width="112"><b>Message :</b></td>
<td align="left">
<textarea rows="10" name="message" cols="72" tabindex="2"></textarea></td>
</tr>
<tr>
<td align="right" width="112"> </td>
<td align="center"> </td>
</tr>
<tr>
<td align="right" width="112"> </td>
<td align="center">
<input type="submit" value="Envoyer" name="B1" tabindex="3"><input type="reset" value="Effacer" name="B2" tabindex="4"></td>
</tr>
</table>
</div>
</form>

Plus un script pour empecher l'envoi de mail quand touts les champs ne sont pas remplis.

J'ai fait de plus une page traitement.php pour le traiter:

<?
"…

$nom = $_POST['nom'];
$sujet= $_POST['sujet'];
$email = $_POST['email'];
$adresse="email@hotmail.fr";
$from="From: $nom<$email>\r\n";
$from.="Reply-To: $nom <$email>\n";
$from.="X-priority:3\n";
$texte="<html>";
$texte.="$texte";
$texte.="</html>";
$from.="MIME-Version: 1.0\r\n";
$from.="Content-Type: text/html";
if (mail($adresse,$sujet,$texte,$from))
echo("<center><font color=green><br><br><br><h2>Formulaire envoyé ! Je vous répondrais rapidement. Merci!</h2></font><br><a href=/>Cliquez ici pour revenir à l'accueil</a></center>");
else
echo("<center><font color=red><br><br><br><h2>Problème à l'envoi du mail...désolé nous ne pouvons actuellement traiter votre demande</h2></font><br>Contactez nous plus <a href=\"mailto:$adresse\">classiquement</a>");
?>

Mon code est il bon ou y a t'il des erreurs (ce que je crains...)
Comment faire pour traiter le fait qu'il y a plusieurs destinataires possibles?

Merci de bien vouloir corriger mes erreurs s'il vous plait, je suis debutant


Merciiiiiiiii

Antoine

1 réponse

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
19 nov. 2008 à 13:22
Bonjour,

<form name="message" action="traitement.php" method="post" onSubmit="return verification()">
<div align="center">
<table border="0" width="77%" style="border-collapse: collapse" id="table1">
<tr>
<td align="right" width="112"><b>Destinataire :</b></td>
<td width="450" align="left">
<select name="destinataire">
<!-- les noms de balises en minuscules -->
<option>Choisissez un destinataire</option>
<option value="email@hotmail.fr">Personne 1</option>
<option value="email@hotmail.fr">Personen 2</option>
<option value="email@hotmail.fr">Personne 3</option>
<option value="email@hotmail.fr">Personne 4</option>
<option value="email@hotmail.fr">Personne 5</option>

</select> </td>
</tr>
<tr>
<br>
<td align="right" width="112"><b>Nom :</b></td>
<td align="left"><input name="nom" size=75 tabindex="1" /> </tr>

<tr><td align="right" width="112"><b>Email :</b></td>
<td align="left">
<input name="email"size=75  tabindex="2"/></tr><br>
<tr><td align="right" width="112"><b>Sujet :</b></td>
<td align="left">
<input type="text" name="sujet" size="75" tabindex="3"></td>
</tr>
<tr>
<td align="right" width="112"><b>Message :</b></td>
<td align="left">
<textarea rows="10" name="message" cols="72" tabindex="4"></textarea></td>
</tr>
<tr>
<td align="right" width="112"> </td>
<td align="center"> </td>
</tr>
<tr>
<td align="right" width="112"> </td>
<td align="center">
<input type="submit" value="Envoyer" name="B1" tabindex="3"><input type="reset" value="Effacer" name="B2" tabindex="4"></td>
</tr>
</table>
</div>
</form>

Plus un script pour empecher l'envoi de mail quand touts les champs ne sont pas remplis.

J'ai fait de plus une page traitement.php pour le traiter:

<?php


$nom = $_POST['nom'];
$sujet= $_POST['sujet'];
$email = $_POST['email'];
$adresse=$_POST['destinataire'];//il faut recuperer aussi le destinatire choisi dans la liste !
$from="From: $nom<$email>\r\n";
$from.="Reply-To: $nom <$email>\n";
$from.="X-priority:3\n";
$texte="<html>";
$texte.=$_POST['message'];;
$texte.="</html>";
//pourquoi mettre ton message en format HTML si le texte que l'utilisateur va taper est forcement en normal (dans un textarea)
$from.="MIME-Version: 1.0\r\n";
$from.="Content-Type: text/html";
if (mail($adresse,$sujet,$texte,$from))
echo("<center><font color=green><br><br><br><h2>Formulaire envoyé ! Je vous répondrais rapidement. Merci!</h2></font><br><a href=/>Cliquez ici pour revenir à l'accueil</a></center>");
else
echo("<center><font color=red><br><br><br><h2>Problème à l'envoi du mail...désolé nous ne pouvons actuellement traiter votre demande</h2></font><br>Contactez nous plus <a href=\"mailto:$adresse\">classiquement</a>");
?>
0