par
Hywan » 31 déc. 2008, 01:13
Hey

,
Tout est à revoir …
Bon, commençons par l'HTML. Si tu écris un truc du style :
Code : Tout sélectionner
<form method="post" action="formmail.php">
<p><label for="name">Votre nom :</label>
<input type="text" id="name" name="name" /></p>
<p><label for="fname">Votre prénom :</label>
<input type="text" id="fname" name="fname" /></p>
…
<p><label for="comment">Commentaire :</label>
<textarea id="comment" name="comment" cols="33" rows="6"></textarea></p>
<p><input type="submit" name="submit" /> — <input type="reset" /></p>
</form> ce sera largement suffisant pour faire toutes les mises en page que tu veux (bien sûr avec du CSS) et c'est très accessible, très ergonomique etc.
Ensuite, la page formmail.php va recevoir les données du formulaire dans le tableau $_POST.
Pour savoir si le formulaire a bien été envoyé avant d'arriver sur la page, il suffit de regarder si le bouton de soumission fait parti de la liste des données reçues. Pour voir l'ensemble des données :
print_r($_POST);
pour voir si le formulaire a été envoyé :
if(!isset($_POST['submit']))
echo 'Formulaire non envoyé !';
Je précise que dans le tableau $_POST, on travaille sur le nom (
name="…") des champs, et pas sur l'identifiant (
id="…").
Pour vérifier que le champ de mail a bien été rempli, c'est le même principe que pour le bouton de soumission.
Ensuite, pour exploiter l'ensemble d'un tableau, il suffit d'utiliser la boucle
foreach de cette façon :
$message = null;
foreach($_POST as $name => $value)
$message .= $name . ' : ' . $value . "\n";
Enfin, pour bloquer l'ascenseur horizontal de la zone de texte (
textarea), il faut travailler avec les propriétés
overflow en CSS.