control des données d'un formulaire simple
Les valeurs saisies par un internaute en remplissant un formulaire du type POST, doivent être récupérées à l'aide d'un script php et doivent être traitées comme étant des variables php. La commande utilisée par php pour réaliser cela est : $_POST[' nom du champ'] où l'expression nom du champ désigne le nom du champ du formulaire remplit par l'internaute. La balise <form> du formulaire en question est de la forme :
<form method = ″POST″ action = ″fichier.php″>
Exemple : Créerons un fichier html contenant une zone de texte( là où l'internaute doit saisir son nom) et un bouton envoyer . Vous pouvez donner un nom quelconque à ce fichier html.
<form method = ″POST″ action = ″test.php″ >
Introduisez votre nom <input type = ″text″ name = ″visiteur″>
<input type = ″submit″ value= ″Envoyez″>
< / form>
|
Nous venons de créer la page html qui contient le formulaire d'envoi, nous allons maintenant créer le fichier php qui va récupérer la valeur saisi par l'internaute ( nom de l’internaute ). Le nom de ce dernier n'est pas n'importe, il doit suivre la commande
action = " nom du fichier php"
ici dans cet exemple le nom est test.php , son code est le suivant :
< ?php
$nom = $_POST['visiteur'] ;
echo″ bienvenue ″.$nom ;
?>
|
Remarque :
Les deux fichiers doivent être déposés dans le même répertoire si non vous devez indiquer le chemin du fichier php dans action = ″fichier.php″
Utilisation de la fonction mail( )
La fonction mail permet l'evoi d'un message sous forme d'un courriel à un destinataire. Sa syntaxe est la suivante :
Mail( ″adresse de messagerie du destinataire″, ″sujet du message″,″le message″) ;
Exemple : Créons un formulaire d'envoie d'email à l'adresse : y_derf@yahoo.fr
<form method = ″POST″ action = ″formmail.php″ >
Sujet <input type = ″text″ name = ″sujetmessage″>
Message <input type = ″text″ name = ″message″>
<input type = ″submit″ value= ″Envoyez″>
</form>
|
Le fichier php qui va traiter le formulaire sera nommé : formmail.php son code est :
<?php
$sujet = $_POST['sujetmessage '] ;
$message = $_POST[' message'] ;
Mail (″y_derf@yahoo.fr ″,$sujet , message) ;
?>
|
On peut ajouter l'adresse email de l'internaute par la méthode :
$to = $_POST['adresse email de l'internaute']
mail(″ adresse mail destinataire ″ , $sujet , $message , ″from :″.$to) ;
et si on veut rediriger l'internaute vers une page de remerciement , on doit tout d'abord créer cette page lui donner un nom par exemple une page web contenant le message « Merci pour votre participation » nommons la merci.htm, il suffit maintenant d'ajouter la méthode suivante :
header(″location : http://adresse url de la page merci.htm ″) ;
Code complet de l'exemple
Voici le code de la page web contenant le formulaire à remplir appelons la index.htm :
Index.htm
|
<html>
<head>
<title>formulaire</title>
</head>
<body>
<form method="post" action="formmail.php">
votre email<input type="text" name="mailpost"><br>
sujet du message<input type="text" name="sujet"><br>
message<input type="text" name="message"><br>
<input type="submit" value="envoyezé">
</form>
</body>
</html>
|
Voici la page formmail.php qui va traiter la page formulaire :
formmail.php
|
<?php
$to=$_POST['mailpost'];
$sujet=$_POST['sujet'];
$message=$_POST['message'];
mail("y_derf@yahoo.fr",$sujet,$message,"from:".$to);
header("Adresse url de la page merci.htm");
?>
|
Voici le code de la apge merci.htm :
merci.htm
|
<html>
<head>
<title>Merci pour votre participation</title>
</head>
<body>
<p align="center"><font size="6">Merci pour votre participation</font></p>
</body>
</html>
|
Envoi d'email en mode html
On peut envoyer l'email en mode html (mise en forme du texte : gras, italique, soulignement, couleur du texte,images ...) , il suffit pour cela d'ajouter quelque lignes de code au script ci-dessus :
$to .="MIME-version:1.0 n";
$to .="Content-type:text/html; charset=iso-8859-1n";
Code complet de l'exemple
Voici le code de la page web contenant le formulaire à remplir :
Index.htm
|
<html>
<head>
<title>formulaire</title>
</head>
<body>
<form method="post" action="formmail.php">
votre email<input type="text" name="mailpost"><br>
sujet du message<input type="text" name="sujet"><br>
message<input type="text" name="message"><br>
<input type="submit" value="Envoyez">
</form>
</body>
</html>
|
Voici la page formmail.php qui va traiter la page formulaire :
formmail.php
|
<?php
$to=$_POST['mailpost'];
$to .="MIME-version: 1.0n";
$to .= "Content-type: text/html; charset= iso-8859-1n";
$sujet=$_POST['sujet'];
$message=$_POST['message'];
if(mail("y_derf@yahoo.fr",$sujet,$message,"from:".$to)){
echo'message envoyé correctement';
}
else{
echo'message non envoyé';
}
?>
|