Salve a tutti...premetto che sono un novizio
Questo è un codice php collegato al form email del mio sito.
Per i messaggi d'errore da visualizzare in caso di errata compilazione dei campi ho inserito delle finestre "alert"...il tutto funziona benissimo.
Ma c'è un piccolo problema: quando l'errore è più di uno naturalmente spuntano più finestre di seguito.
Vorrei fare in modo da far spuntare tutto in un'unica finestra...per qualunque combinazione di errori, ma non ho idea di come si faccia
Codice PHP:
<?php
if(isset($_POST['email'])) {
// EDIT THE 2 LINES BELOW AS REQUIRED
$email_to = "admin@xxxx.com";
$email_subject = "by Contact Us";
function died($error) {
// your error code can go here
echo "<script type=\"text/javascript\">alert(\"We are very sorry, but there were error(s) found with the form you submitted.\");</script> ";
echo "<script type=\"text/javascript\">alert(\"These errors appear below.
\");</script> ";
echo $error."<script type=\"text/javascript\">alert(\"\");</script> ";
echo "<script type=\"text/javascript\">alert(\"Please go back and fix these errors.
\");</script> ";
die();
}
// validation expected data exists
if(!isset($_POST['first_name']) ||
!isset($_POST['last_name']) ||
!isset($_POST['email']) ||
!isset($_POST['telephone']) ||
!isset($_POST['comments']) ||
!isset($_POST['article'])) {
died( "<script type=\"text/javascript\">alert(\"We are sorry, but there appears to be a problem with the form you submitted.\");</script> ");
}
$first_name = $_POST['first_name']; // required
$last_name = $_POST['last_name']; // required
$email_from = $_POST['email']; // required
$telephone = $_POST['telephone']; // not required
$comments = $_POST['comments']; // required
$article = $_POST['article']; // not 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 .= "<script type=\"text/javascript\">alert(\"The Email Address you entered does not appear to be valid.
\");</script> ";
}
$string_exp = "/^[A-Za-z .'-]+$/";
if(!preg_match($string_exp,$first_name)) {
$error_message .= "<script type=\"text/javascript\">alert(\"The First Name you entered does not appear to be valid.
\");</script> ";
}
if(!preg_match($string_exp,$last_name)) {
$error_message .= "<script type=\"text/javascript\">alert(\"The Last Name you entered does not appear to be valid.
\");</script> ";
}
if(strlen($comments) <= 30) {
$error_message .= "<script type=\"text/javascript\">alert(\"The Comments you entered do not appear to be valid: 30 characters at least!.
\");</script> ";
}
if(strlen($error_message) > 0) {
died($error_message);
}
$email_message = "<script type=\"text/javascript\">alert(\"Form details below.\n\n\");</script> ";
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
$email_message .= "First Name: ".clean_string($first_name)."\n";
$email_message .= "Last Name: ".clean_string($last_name)."\n";
$email_message .= "Email: ".clean_string($email_from)."\n";
$email_message .= "Telephone: ".clean_string($telephone)."\n";
$email_message .= "Comments: ".clean_string($comments)."\n";
$email_message .= "Article: ".clean_string($article)."\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);
?>