dimanche 24 juin 2007

Envoyer un formulaire par email avec PHP





Ce script permet de saisir et d'envoyer un formulaire, grâce à Php et la fonction mail().

Trop souvent sujet à problème pour les débutants, envoyer un formulaire par e-mail est une opération simple et rapide que tout développeur web se doit de connaître.
Donc voici comment réaliser cela simplement :

Tout d'abord créez un formulaire simple de la sorte dans votre page html (formulaire.html) :
Code à insérer entre les balises <body> et </body>

<form method="post" action="envoimail.php" name="formulaire">

Nom : <input name="nom" size="30" maxlength="50" type="text">

<br /><br />
Prénom : <input name="prenom" size="30" maxlength="50" type="text"><br /><br />

E-mail : <input name="mail" size="30" maxlength="50" type="text"><br /><br />

Commentaires :
<textarea name="commentaires" cols="30" rows="6" wrap="soft"></textarea><br /><br />

<input name="bouton" value="Envoyer" type="submit">

</form>

Nous avons donc un formulaire de 4 champs : "nom", "prenom", "mail", "commentaires", ainsi qu'un bouton "Envoyer" !

Vous remarquerez que dans la première ligne
<form method="post" action="envoimail.php" name="formulaire">
nous indiquons que après avoir appuyer sur "Envoyer" le contenu du formulaire ( donc les variables $nom, $prenom, $mail et $commentaires ) sera transmis à un fichier appelé "envoimail.php", que nous allons créer dès à présent :

Créer donc un fichier envoimail.php dans lequel vous allez entrer ce qui suit :
<?

// récuperation des variables provenant du formulaire

$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$mail = $_POST['mail'];
$commentaires= $_POST['commentaires'];

//E-mail auquel sera envoyé le formulaire
$destinataire = 'votre@email.fr';

//sujet du mail envoyé
$sujet = 'Sujet de l\'email qui vous sera envoyé';

//test pour vérifier que les champs sont bien tous remplis !!

if( !empty($nom) && !empty($prenom) && !empty($mail) && !empty($commentaires)){

// création du message, les \n permettent de faire un saut de ligne

$message = "Nom : $nom\n Prénom : $prenom\n E-mail : $mail\n Commentaires : $commentaires";

// On envoi le mail
if( mail($destinataire, $sujet, $message) )

// Si tout se passe bien on affiche un message de succès d'envoi

{ echo 'les informations on bien été envoyé!';

}

// Si on rencontre un problème de réseau (connection serveur etc...)

else{ echo 'une erreur est survenu lors de l\'envoi du message';

}

}

// Si tous les champs ne sont pas remplis

else{ echo 'merci de remplir tous les champs';

}

Enregistrez votre fichier envoimail.php.

Il ne vous reste plus qu'à uploader les deux fichiers "formulaire.html" et "envoimail.php" chez votre hébergeur (attention celui-ci doit prendre en compte le php et la fonction mail() bien-sûr ) et tester !!

Vous pouvez par la suite ajouter d'autres champs pour adapter le formulaire à vos besoins.

Bonne chance à tous !

5 commentaires:

krunchy a dit…

J'aimerai savoir entre quoi et quoi on inser le dernier code svp.
merci

Vincent a dit…

Bonjour, votre tutoriel m'a bien aidé, cependant lorsque je le teste, il n'enregistre pas les entrées que j'ai mis dans le champ, de ce fait il s'affiche constamment "merci de remplir tous les champs". En supprimant la ligne de vérification dans le code, je reçois bien un mail, mais vide.

Dans la mesure où j'ai supprimé une entrée (en l'occurrence 'prénom') y aurait-il dans le code une balise ou autre que j'aurais mal supprimée ou alors oubliée ?

D'avance merci.

VANEOO a dit…

comment "uploader" le fichier .php sur blogger ???

Anonyme a dit…

Merci pour ce tuto très utile !
Tcheub

LuciferX a dit…

Sympa ce petit formulaire, qui est bien sur personnalisable avec une pincée de css ^^