Bonjour à tous,

J'ai réalisé un formulaire que j'ai personnalisé avec CSS, mais je n'arrive pas à comprendre le fonctionnement pour envoyer le contenu du formulaire (une fois rempli) à mon adresse email par exemple.

Voici le code de mon formulaire :

 <form action="contact.xhtml" method="post">
	
				<p><label>Merci de pr&eacute;ciser votre type de demande : </label>
					<select name="demande">
						<option value="reservation"> Reservation</option>
						<option value="renseignement"> Renseignement</option>
						</select>
				</p>
					
				<p><label>Nom :</label><br />
					<input type="text" name="nom" size="20" maxlength="40" value="" />
				</p>
				<p><label>Pr&eacute;nom :</label><br />
					<input type="text" name="prenom" size="20" maxlength="40" value="" />
				</p>
				<p><label>T&eacute;l&eacute;phone :</label><br />
					<input type="text" name="telephone" size="20" maxlength="40" value="" />
				</p>
				
				<p><label>Commentaire :
					</label><br />
					<textarea name="comments" cols="46" rows="4"></textarea>
				</p>
				<p><input type="submit" value="Envoyer" class="bouton" />
					<input type="reset" value="Annuler" class="bouton" /></p>
			</form> 


Je pense que le problème se situe au niveau de la première ligne
 <form action="contact.xhtml" method="post">
mais je ne sais pas s'il faut préciser uniquement la page sur laquelle est le formulaire ou bien préciser un mail... là je patauge Smiley confus
Je viens de trouver un article très intéressant via la FAQ sur les formulaires (cf. le site openweb), et voilà le type de code que je devrais appliquer :

<form action="http://www.domaine.ext/rep/script" method="post">


Donc je devrais mettre le nom de mon site + le nom d'un répertoire + un script ?

Enfin moi jusque là je n'ai juste modifié que mon fichier xhtml de ma page contact pour mettre mon formulaire, et personnalisé ce formulaire via une feuille de style... aie je comprend pas là...
Modifié par rusher (13 Mar 2006 - 00:14)
En fait, tu as deux choix :

1. Utiliser un script programmé côté serveur, tel que php qui permet d'envoyer un mail via la fonction mail. Ce n'est pas un script très difficile à faire, mais il faut que ton hébergeur supporte le php ou un autre langage similaire.
Dans ce cas, il faut renseigner dans l'attribut action le chemin d'accès vers ton script, si possible un chemin relatif (sans http://)

Certains hébergeurs, free par exemple, mettent déjà à disposition un tel script, il suffit alors de l'indiquer dans l'attribut action (ça donne un truc du type action="http://perso0.free.fr/mail.pl")

2. Utiliser le protocole mailto. C'est moins sûr, c'est moins efficace, et ça utilise le client mail (p.ex. outlook) pour envoyer l'e-mail. Cela implique donc qu'il soit bien configuré et que l'utilisateur valide une deuxième fois l'envoi du mail.
L'attribut action doit alors contenir une valeur du type action="mailto:toi@tonserveur.com"

En tout cas moi je tape 1.
Pour le 1er cas de QuentinC j'ai un script superbe, court et très facile d'utilisation pour toi rusher. Si tu veux...
Voilà le script que j'ai utilisé :


<?php
$TO = "contact@monsite.com";

$h  = "From: " . $TO;

$message = "";

while (list($key, $val) = each($HTTP_POST_VARS)) {
  $message .= "$key : $val\n";
}

mail($TO, $subject, $message, $h);

Header("Location:  http://www.monsite.com/mail.html");
 

?>


Je ne sais pas si c'est le plus simple et s'il est correct mais en tous cas maintenant j'ai un nouveau problème : Je rempli mon formulaire, je l'envoi sans problème, mais quand je le récupère dans un client de messagerie, thunderbird ou outlook, et bien mon formulaire arrive vide ! Smiley eek
IL doit y avoir quelques erreurs dans le script ... mais comme ça rapidement je ne saurais pas te dire où.
J'en ai également un à proposer si jamais.
Et bien je suis tout à fait preneur de vos scripts php pour le formulaire, ça me fournirais une bonne base pour pouvoir en comprendre le fonctionnement. Merci d'avance Smiley smile
Alors en voici un :


<?php
$from = "xxx.xxx@xxx.xxx";
$to = "xxx.xxx@xxx.xxx";
$subj = "Envoi de donnés depuis un formulaire";

$msg = "Les donnés suivantes ont été envoyées à partir d'un formulaire :\r\n\r\n";
$k = array_keys($_POST);
for ($i = 0; $i < count($k); $i++) {

$msg .= "" . $k[$i] . " : " . $_POST[$k[$i]] . "\r\n";
}

$header = "";
$header = "From: $from\r\nContent-Type:text/plain; charset=iso-8859-1";

@mail($to, $subj, $msg, $header);

header("Location:{$_SERVER['HTTP_REFERER']}");
exit();
?>