Bon, le tout revu et corriger.
Code : Tout sélectionner
<?php
session_start(); // Uniquement pour afficher -éventuellement- les infos du mail qui a été envoyé
// Initialisation ou récupération des variables
$email = !empty($_POST['email']) ? trim($_POST['email']) : '';
$message = !empty($_POST['message']) ? trim($_POST['message']) : '';
$erreurs = array();
function VerifierAdresseMail($mail)
{
$Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#';
if(preg_match($Syntaxe,$mail))
return true;
else
return false;
}
if($_SERVER['REQUEST_METHOD']=='POST') {
// email obligatoire
if(empty($email)) {
$erreurs[] = 'Email obligatoire.';
} else if(!VerifierAdresseMail($email)) {
$erreurs[] = 'Email invalide.';
}
// message obligatoire
if(empty($message)) {
$erreurs[] = 'Message obligatoire.';
}
// Aucune erreur...
if(empty($erreurs)) {
// envoi du mail...
$_SESSION['email'] = $email;
$_SESSION['message'] = $message;
mail('[email protected]', 'message', $message, 'From:' . $email);
header('Location: '.htmlspecialchars($_SERVER['PHP_SELF'])); // Redirection vers la même page
exit();
}
}
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test</title>
<style type="text/css" media="screen">
.alerte {
color: #FF0033;
font-weight: bold;
}
</style>
</head>
<body>
<?php
if(!empty($erreurs)) {
foreach($erreurs as $erreur) {
echo '<p class="alerte">'.$erreur."</p>\n";
}
}
?>
<?php if(!empty($_SESSION['email'])) : ?>
<p>Merci pour votre message :</p>
<p><strong>Email :</strong> <?php echo htmlspecialchars($_SESSION['email']); ?></p>
<p><strong>Message :</strong> <?php echo nl2br(htmlspecialchars($_SESSION['message'])); ?></p>
<?php
unset($_SESSION['email']);
unset($_SESSION['message']);
else:
?>
<form method="post" action="<?php echo $_SERVER['SCRIPT_NAME'] ?>">
Votre Email:<br/>
<input type="text" name="email" value="<?php echo $mail ?>" /><br/>
Votre message:<br/>
<textarea rows="10" cols="50" name="message"><?php echo $message ?></textarea><br/>
<input type="submit" value="Envoyer" />
</form>
<?php endif; ?>
</body>
</html>
Merci à Heyoan, en espérant que sa puisse servir à d'autre

Bon, le tout revu et corriger.
[code=php]<?php
session_start(); // Uniquement pour afficher -éventuellement- les infos du mail qui a été envoyé
// Initialisation ou récupération des variables
$email = !empty($_POST['email']) ? trim($_POST['email']) : '';
$message = !empty($_POST['message']) ? trim($_POST['message']) : '';
$erreurs = array();
function VerifierAdresseMail($mail)
{
$Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$#';
if(preg_match($Syntaxe,$mail))
return true;
else
return false;
}
if($_SERVER['REQUEST_METHOD']=='POST') {
// email obligatoire
if(empty($email)) {
$erreurs[] = 'Email obligatoire.';
} else if(!VerifierAdresseMail($email)) {
$erreurs[] = 'Email invalide.';
}
// message obligatoire
if(empty($message)) {
$erreurs[] = 'Message obligatoire.';
}
// Aucune erreur...
if(empty($erreurs)) {
// envoi du mail...
$_SESSION['email'] = $email;
$_SESSION['message'] = $message;
mail('
[email protected]', 'message', $message, 'From:' . $email);
header('Location: '.htmlspecialchars($_SERVER['PHP_SELF'])); // Redirection vers la même page
exit();
}
}
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test</title>
<style type="text/css" media="screen">
.alerte {
color: #FF0033;
font-weight: bold;
}
</style>
</head>
<body>
<?php
if(!empty($erreurs)) {
foreach($erreurs as $erreur) {
echo '<p class="alerte">'.$erreur."</p>\n";
}
}
?>
<?php if(!empty($_SESSION['email'])) : ?>
<p>Merci pour votre message :</p>
<p><strong>Email :</strong> <?php echo htmlspecialchars($_SESSION['email']); ?></p>
<p><strong>Message :</strong> <?php echo nl2br(htmlspecialchars($_SESSION['message'])); ?></p>
<?php
unset($_SESSION['email']);
unset($_SESSION['message']);
else:
?>
<form method="post" action="<?php echo $_SERVER['SCRIPT_NAME'] ?>">
Votre Email:<br/>
<input type="text" name="email" value="<?php echo $mail ?>" /><br/>
Votre message:<br/>
<textarea rows="10" cols="50" name="message"><?php echo $message ?></textarea><br/>
<input type="submit" value="Envoyer" />
</form>
<?php endif; ?>
</body>
</html>[/code]
Merci à Heyoan, en espérant que sa puisse servir à d'autre :D