Salut à tous, aujourd'hui, je vais vous apprendre en quelque ligne de code PHP la création d'un formulaire de contact en PHP.
Pour les besoins du tutoriel, j'ai utilisé le Bootstrap de Twitter. Je n'ai que créer un fichier index.php dans lequel nous allons faire la partie traitement.
page index.php
Voilà rien de bien compliquer, vous devez être capable de comprendre ce code-là
nous allons évoluer dans notre code, et pour ce faire, nous allons faire toute la partie traitement avec la déclaration du Doctype.
Pourquoi faire la partie traitement dans la même page ?
C'est relativement simple en fait, si l'on fait la partie traitement dans une autre page, c'est pénible de devoir retourner sur le formulaire pour re posté les informations, vous l'aurais compris, on perd un gain de temps.
Faisant évoluer notre page
Ce petit bout de code permet de vérifier que des informations ont bien été postées !empty qui veut dire différent de vide, cela veut dire que le tableau poste n'est pas vide.
extract($_POST); permet comme son nom l'indique d'extraire le tableau poste, ainsi aux lieux de faire $_POST['valeur']; on n'a plus cas faire $valeur. Si vous souhaitez en savoir plus sur cette fonction rendez-vous sur
$valid = true; elle va nous servir tout au long de notre application PHP, c'est grâce à elle que l'on vérifie que les champs sont bien remplis.Maintenant, il faut vérifier que les champs ont bien été remplis, pour cela nous allons utiliser la empty.
Voyez-vous l'utilité de notre variable valid, si le champ nom n'est pas renseigné alors on définis la variable valid a false de ce fait la soumission du formulaire ne se fera pas.
Petite parenthèse sur ceci:
C'est un filtre validation, il est très pratique dans notre cas, car on n'a pas besoin de créer une expression régulière complexe, si vous voulez en savoir plus allez voir du côté de PHP.NET. Maintenant que l'on a vérifié tous les champs, il ne reste plus cas utiliser la fonction mail de PHP pour envoyer notre email
Je vous ai mis des commentaires j'espère que vous allez comprendre
Ainsi que pour indiquer si le message est bien parti, je vais l'afficher comme ceci
Voici donc toute la page
Voilà, on a créé un formulaire de contact très facilement, il faut juste avoir les bases en PHP et vous êtes capable de faire des petits scripts plutôt sympas.Si vous avez des questions où même des suggestions n'hésité pas les précisez
Pour les besoins du tutoriel, j'ai utilisé le Bootstrap de Twitter. Je n'ai que créer un fichier index.php dans lequel nous allons faire la partie traitement.
page index.php
PHP:
<?php
<!DOCTYPE html>
<html lang="fr">
<head>
<title>Mon formulaire de contact</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
<link rel="stylesheet" href="css/bootstrap.min.css" />
<script type="text/javascript" src="js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<div class="jumbotron">
<h1>Nous contacter !</h1>
<form method="post" action="index.php">
<div class="form-group">
<label for="nom" class="control-label">Votre nom :</label>
<input type="text" id="nom" name="nom" class="form-control" placeholder="Votre nom" value="">
</div>
<div class="form-group">
<label for="sujet" class="control-label">Sujet du message :</label>
<input type="text" name="subjet" id="subjet" class="form-control" placeholder="Sujet du message" value="">
</div>
<div class="form-group">
<label for="email" class="control-label">Votre adresse email :</label>
<input type="text" name="email" id="email" class="form-control" placeholder="Votre adresse email" value="">
</div>
<div class="form-group">
<label for="message" class="control-label">Votre message :</label>
<textarea name="message" id="message" class="form-control" placeholder="Votre message" rows="10"></textarea>
</div>
<div class="form-group">
<button type="submit" class="btn btn-default">Envoyer</button>
</div>
</form>
</div>
</div>
</body>
</html>
Voilà rien de bien compliquer, vous devez être capable de comprendre ce code-là

Pourquoi faire la partie traitement dans la même page ?
C'est relativement simple en fait, si l'on fait la partie traitement dans une autre page, c'est pénible de devoir retourner sur le formulaire pour re posté les informations, vous l'aurais compris, on perd un gain de temps.
Faisant évoluer notre page

PHP:
<?php
if(!empty($_POST)){
}
Ce petit bout de code permet de vérifier que des informations ont bien été postées !empty qui veut dire différent de vide, cela veut dire que le tableau poste n'est pas vide.
PHP:
<?php
if(!empty($_POST)){
extract($_POST);
$valid = true; // Création d'une variable boolean qui est vrai par défaut
}
extract($_POST); permet comme son nom l'indique d'extraire le tableau poste, ainsi aux lieux de faire $_POST['valeur']; on n'a plus cas faire $valeur. Si vous souhaitez en savoir plus sur cette fonction rendez-vous sur
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
$valid = true; elle va nous servir tout au long de notre application PHP, c'est grâce à elle que l'on vérifie que les champs sont bien remplis.Maintenant, il faut vérifier que les champs ont bien été remplis, pour cela nous allons utiliser la empty.
PHP:
<?php
var_dump($_POST);
if(!empty($_POST)){
extract($_POST);
$valid = true; // Création d'une variable boolean qui est vrai par défaut
if(empty($nom)){
$valid = false; // Si cette variable passe à false le formulaire n'est pas soumis
$error_nom = "Veuillez s'il vous plaît indiquer votre nom"; // Création d'un message d'erreur
}
?>
Voyez-vous l'utilité de notre variable valid, si le champ nom n'est pas renseigné alors on définis la variable valid a false de ce fait la soumission du formulaire ne se fera pas.
PHP:
<?php
if(!empty($_POST)){
extract($_POST);
$valid = true; // Création d'une variable boolean qui est vrai par défaut
if(empty($nom)){
$valid = false; // Si cette variable passe à false le formulaire n'est pas soumis
$error_nom = "Veuillez s'il vous plaît indiquer votre nom"; // Création d'un message d'erreur
}
if(empty($subjet)){
$valid = false;
$error_subjet = "Veuillez s'il vous plaît indiquer un sujet pour le message";
}
if(!filter_var($email,FILTER_VALIDATE_EMAIL)){ // Filtre pour valider l'adresse email
$valid = false;
$error_email = "Veuilllez s'il vous plaît indiquer une adresse email valide";
}
if(empty($email)){
$valid = false;
$error_email = "Veuillez s'il vous plaît indiquer votre adresse email";
}
if(empty($message)){
$valid = false;
$error_message = "Veuillez s'il vous plaît indiquer votre message";
}
Petite parenthèse sur ceci:
PHP:
<?php
if(!filter_var($email,FILTER_VALIDATE_EMAIL)){ // Filtre pour valider l'adresse email
$valid = false;
$error_email = "Veuilllez s'il vous plaît indiquer une adresse email valide";
}
C'est un filtre validation, il est très pratique dans notre cas, car on n'a pas besoin de créer une expression régulière complexe, si vous voulez en savoir plus allez voir du côté de PHP.NET. Maintenant que l'on a vérifié tous les champs, il ne reste plus cas utiliser la fonction mail de PHP pour envoyer notre email

PHP:
<?php
var_dump($_POST);
if(!empty($_POST)){
extract($_POST);
$valid = true; // Création d'une variable boolean qui est vrai par défaut
if(empty($nom)){
$valid = false; // Si cette variable passe à false le formulaire n'est pas soumis
$error_nom = "Veuillez s'il vous plaît indiquer votre nom"; // Création d'un message d'erreur
}
if(empty($subjet)){
$valid = false;
$error_subjet = "Veuillez s'il vous plaît indiquer un sujet pour le message";
}
if(!filter_var($email,FILTER_VALIDATE_EMAIL)){ // Filtre pour valider l'adresse email
$valid = false;
$error_email = "Veuilllez s'il vous plaît indiquer une adresse email valide";
}
if(empty($email)){
$valid = false;
$error_email = "Veuillez s'il vous plaît indiquer votre adresse email";
}
if(empty($message)){
$valid = false;
$error_message = "Veuillez s'il vous plaît indiquer votre message";
}
if($valid){ // On vérifie que $valid est bien à true
$to = "[email protected]";
$subjet = $subjet;
$message = $message;
$headers = 'From: '.$email. "\r\n" .
'Reply-To: '.$email. "\r\n" .
'X-Mailer: PHP/' . phpversion();
if(mail($to, $subjet, $message, $headers)){
$success = "Votre message a bien été envoyé, vous allez être contactées dans un bref délai.";
}else{
$erreur = "Une erreur inconnue est survenue et votre message n'a pas été envoyé";
}
}
}
?>
Je vous ai mis des commentaires j'espère que vous allez comprendre
PHP:
<?php
/*
* on vérifie si valid est bien à true
* on défini les variable néccessaire à la fonction mail
*/
if($valid){ // On vérifie que $valid est bien à true
$to = "[email protected]";
$subjet = $subjet;
$message = $message;
$headers = 'From: '.$email. "\r\n" .
'Reply-To: '.$email. "\r\n" .
'X-Mailer: PHP/' . phpversion();
if(mail($to, $subjet, $message, $headers)){
$success = "Votre message a bien été envoyé, vous allez être contactées dans un bref délai.";
}else{
$erreur = "Une erreur inconnue est survenue et votre message n'a pas été envoyé"; [/CODE]
Pour afficher les erreurs quand on a oublié un champ, on va le mettre à côté du label comme ceci
[CODE]<?php
<div class="form-group">
<label for="nom" class="control-label">Votre nom :</label> <?php if(isset($error_nom)) : ?> <span class="erreur"><?php echo $error_nom; ?></span> <?php endif; ?>
<input type="text" id="nom" name="nom" class="form-control" placeholder="Votre nom" value="<?php if(isset($nom)) { echo $nom; } ?>">
</div>
Ainsi que pour indiquer si le message est bien parti, je vais l'afficher comme ceci
PHP:
<?php
<!DOCTYPE html>
<html lang="fr">
<head>
<title>Mon formulaire de contact</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
<link rel="stylesheet" href="css/bootstrap.min.css" />
<script type="text/javascript" src="js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<?php if(isset($success)): ?>
<div class="alert alert-success alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
<strong>Success!</strong> <?php echo $success; ?>
</div>
<?php endif; ?>
<?php if(isset($erreur)): ?>
<div class="alert alert-danger alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
<strong>Success!</strong> <?php echo $erreur; ?>
</div>
<?php endif; ?>
<div class="jumbotron">
<h1>Nous contacter !</h1>
<form method="post" action="index.php">
<div class="form-group">
<label for="nom" class="control-label">Votre nom :</label> <?php if(isset($error_nom)) : ?> <span class="erreur"><?php echo $error_nom; ?></span> <?php endif; ?>
<input type="text" id="nom" name="nom" class="form-control" placeholder="Votre nom" value="<?php if(isset($nom)) { echo $nom; } ?>">
</div>
<div class="form-group">
<label for="sujet" class="control-label">Sujet du message :</label> <?php if(isset($error_subjet)) : ?> <span class="erreur"><?php echo $error_subjet; ?></span> <?php endif; ?>
<input type="text" name="subjet" id="subjet" class="form-control" placeholder="Sujet du message" value="<?php if(isset($subjet)) { echo $subjet; } ?>">
</div>
<div class="form-group">
<label for="email" class="control-label">Votre adresse email :</label> <?php if(isset($error_email)) : ?> <span class="erreur"><?php echo $error_email; ?></span> <?php endif; ?>
<input type="text" name="email" id="email" class="form-control" placeholder="Votre adresse email" value="<?php if(isset($email)) { echo $email; } ?>">
</div>
<div class="form-group">
<label for="message" class="control-label">Votre message :</label> <?php if(isset($error_message)) : ?> <span class="erreur"><?php echo $error_message; ?></span> <?php endif; ?>
<textarea name="message" id="message" class="form-control" placeholder="Votre message" rows="10"><?php if(isset($message)) { echo $message; } ?></textarea>
</div>
<div class="form-group">
<button type="submit" class="btn btn-default">Envoyer</button>
</div>
</form>
</div>
</div>
</body>
</html>
Voici donc toute la page
PHP:
<?php
var_dump($_POST);
if(!empty($_POST)){
extract($_POST);
$valid = true; // Création d'une variable boolean qui est vrai par défaut
if(empty($nom)){
$valid = false; // Si cette variable passe à false le formulaire n'est pas soumis
$error_nom = "Veuillez s'il vous plaît indiquer votre nom"; // Création d'un message d'erreur
}
if(empty($subjet)){
$valid = false;
$error_subjet = "Veuillez s'il vous plaît indiquer un sujet pour le message";
}
if(!filter_var($email,FILTER_VALIDATE_EMAIL)){ // Filtre pour valider l'adresse email
$valid = false;
$error_email = "Veuilllez s'il vous plaît indiquer une adresse email valide";
}
if(empty($email)){
$valid = false;
$error_email = "Veuillez s'il vous plaît indiquer votre adresse email";
}
if(empty($message)){
$valid = false;
$error_message = "Veuillez s'il vous plaît indiquer votre message";
}
/*
* on vérifie si valid est bien à true
* on défini les variable néccessaire à la fonction mail
*/
if($valid){ // On vérifie que $valid est bien à true
$to = "[email protected]";
$subjet = $subjet;
$message = $message;
$headers = 'From: '.$email. "\r\n" .
'Reply-To: '.$email. "\r\n" .
'X-Mailer: PHP/' . phpversion();
if(mail($to, $subjet, $message, $headers)){
$success = "Votre message a bien été envoyé, vous allez être contactées dans un bref délai.";
}else{
$erreur = "Une erreur inconnue est survenue et votre message n'a pas été envoyé";
}
}
}
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<title>Mon formulaire de contact</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
<link rel="stylesheet" href="css/bootstrap.min.css" />
<script type="text/javascript" src="js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<?php if(isset($success)): ?>
<div class="alert alert-success alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
<strong>Success!</strong> <?php echo $success; ?>
</div>
<?php endif; ?>
<?php if(isset($erreur)): ?>
<div class="alert alert-danger alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
<strong>Success!</strong> <?php echo $erreur; ?>
</div>
<?php endif; ?>
<div class="jumbotron">
<h1>Nous contacter !</h1>
<form method="post" action="index.php">
<div class="form-group">
<label for="nom" class="control-label">Votre nom :</label> <?php if(isset($error_nom)) : ?> <span class="erreur"><?php echo $error_nom; ?></span> <?php endif; ?>
<input type="text" id="nom" name="nom" class="form-control" placeholder="Votre nom" value="<?php if(isset($nom)) { echo $nom; } ?>">
</div>
<div class="form-group">
<label for="sujet" class="control-label">Sujet du message :</label> <?php if(isset($error_subjet)) : ?> <span class="erreur"><?php echo $error_subjet; ?></span> <?php endif; ?>
<input type="text" name="subjet" id="subjet" class="form-control" placeholder="Sujet du message" value="<?php if(isset($subjet)) { echo $subjet; } ?>">
</div>
<div class="form-group">
<label for="email" class="control-label">Votre adresse email :</label> <?php if(isset($error_email)) : ?> <span class="erreur"><?php echo $error_email; ?></span> <?php endif; ?>
<input type="text" name="email" id="email" class="form-control" placeholder="Votre adresse email" value="<?php if(isset($email)) { echo $email; } ?>">
</div>
<div class="form-group">
<label for="message" class="control-label">Votre message :</label> <?php if(isset($error_message)) : ?> <span class="erreur"><?php echo $error_message; ?></span> <?php endif; ?>
<textarea name="message" id="message" class="form-control" placeholder="Votre message" rows="10"><?php if(isset($message)) { echo $message; } ?></textarea>
</div>
<div class="form-group">
<button type="submit" class="btn btn-default">Envoyer</button>
</div>
</form>
</div>
</div>
</body>
</html>
Voilà, on a créé un formulaire de contact très facilement, il faut juste avoir les bases en PHP et vous êtes capable de faire des petits scripts plutôt sympas.Si vous avez des questions où même des suggestions n'hésité pas les précisez
