Salut tout le monde,
Je viens de mettre en place un formulaire de contact sur mon site.
Il marche bien, je reçois les messages, tout est ok ... sauf que, lorsqu'il y a des erreurs lors du remplissage, la page d'erreur est tout sauf belle (en fait, c'est du texte brut). Comment faire pour intégrer les messages d'erreur dans la page actuelle ?
Voici mon code PHP :
Merci de votre aide !
Je viens de mettre en place un formulaire de contact sur mon site.
Il marche bien, je reçois les messages, tout est ok ... sauf que, lorsqu'il y a des erreurs lors du remplissage, la page d'erreur est tout sauf belle (en fait, c'est du texte brut). Comment faire pour intégrer les messages d'erreur dans la page actuelle ?
Voici mon code PHP :
<?php
header ('Content-type: text/html; charset=utf-8');
function stripslashes_r($var)
{
if(is_array($var))
{
return array_map('stripslashes_r', $var);
}
else
{
return stripslashes($var);
}
}
if(get_magic_quotes_gpc()) //
{
$_GET = stripslashes_r($_GET);
$_POST = stripslashes_r($_POST);
$_COOKIE = stripslashes_r($_COOKIE);
}
if(isset($_POST['email'])) {
$email_to = "ma belle adresse email";
$email_subject = "From the website's contact form. ";
function died($error) {
// error code
echo "I am sorry, but there were error(s) found in the form you submitted. ";
echo $error."<br>";
echo "Please go back and fix these errors.";
die();
}
// validation expected data exists
if(!isset($_POST['name']) ||
!isset($_POST['email']) ||
!isset($_POST['comment'])) {
died('Oops. I am sorry, but there appears to be a problem with the form you submitted.');
}
$first_name = $_POST['name']; // required
$email_from = $_POST['email']; // required
$comments = $_POST['comment']; // required
$captcha = $_POST['captcha']; // required
$error_message = "";
$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
if(!preg_match($email_exp,$email_from)) {
$error_message .= 'The email address you entered does not appear to be valid.<br>';
}
$captcha_exp = 'two';
if ($captcha_exp != $captcha) {
$error_message .= 'Hint: <i>two</i> comes after <i>one</i>.<br>';
}
$string_exp = "/^[A-Za-zé\.¸UûÙùàÀèÈéÉïÏîÎôÔêÊçÇ \,\\\'\-]+$/";
if(!preg_match($string_exp,$first_name)) {
$error_message .= 'The name you entered does not appear to be valid. Please check that there are no special caracters or accents.<br>';
}
if(strlen($comments) < 2) {
$error_message .= 'The message you entered does not appear to be valid.<br>';
}
if(strlen($error_message) > 0) {
died($error_message);
}
$email_message = "Details below.\n\n";
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
$email_message .= "Name: ".clean_string($first_name)."\n";
$email_message .= "Email: ".clean_string($email_from)."\n";
$email_message .= "Comment: ".clean_string($comments)."\n";
// create email headers
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);
?>
<!-- success html code -->
<?php
}
die();
?>
Merci de votre aide !
