Salve ho il seguente form per invio richieste di prenotazione tramite email. Il sistema funzionava alla perfezione, poi ho fatto una piccola (e credo banale) modifica e ora non mi giungono più le email. Lo script è questo:
La modifica che ho fatto è sostituire < con <= in
e modificare l'indirizzo email per testarlo. Non credo siano modifiche che possano compromettere il corretto funzionamento dello script, quindi quale potrebbe essere il problema? Grazie a tutti
PHP:
<?php
if(isset($_POST['email'])) {
// info su destinatario e oggetto del messaggio
$sito = "www.miosito.it";
$destinatario = "email@gmail.com";
$oggetto = "Richiesta prenotazione";
$nome = $_POST['nome']; // campo
$telefono = $_POST['telefono']; // campo
$email = $_POST['email']; // campo
$partenza = $_POST['partenza']; // campo
$arrivo = $_POST['arrivo']; // campo
$testo = $_POST['testo']; // campo
$errore = "";
// verifico la presenza e la validità del campo nome
$string_exp = "/^[A-Za-z .'-]+$/";
if($nome == "Nome e Cognome"){
$errore .= "- Il nome inserito sembra essere assente o non valido.<br />";
} else {
if(!preg_match($string_exp,$nome)) {
$errore .= "- Il nome inserito sembra essere assente o non valido.<br />";
}
}
// verifico la presenza e la validità del campo telefono
$tel = str_replace(" ", "", $telefono);
if (is_numeric($tel)) {
$errore .= "";
} else {
$errore .= "- Il numero di telefono inserito sembra essere assente o non valido <br />sono ammessi solo caratteri numerici.<br />";
}
// verifico la presenza e la validità del campo email
$email_exp = "/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/";
if($email == "E-Mail"){
$errore .= "- L'indirizzo email inserito sembra non essere valido.<br />";
} else {
if(!preg_match($email_exp,$email)) {
$errore .= "- L'indirizzo email inserito sembra non essere valido.<br />";
}
}
//controllo sulle date di arrivo e di partenza
$partenza_anno = substr($partenza, 6, 4);
$partenza_mese = substr($partenza, 3, 2);
$partenza_giorno = substr($partenza, 0, 2);
$arrivo_anno = substr($arrivo, 6, 4);
$arrivo_mese = substr($arrivo, 3, 2);
$arrivo_giorno = substr($arrivo, 0, 2);
if ($arrivo_anno <= $partenza_anno){
if ($arrivo_mese <= $partenza_mese){
if ($arrivo_giorno <= $partenza_giorno){ //possibile partenza nello stesso giorno di arrivo
$errore .= "";
} else {
$errore .= "- La data di arrivo deve essere successiva a quella di partenza <br />il giorno di partenza è antecedente a quello di arrivo. ARRIVO: $arrivo PARTENZA: $partenza<br />";
}
} else {
$errore .= "- La data di arrivo deve essere successiva a quella di partenza <br />il mese di partenza è antecedente a quello di arrivo.<br />";
}
} else {
$errore .= "- La data di arrivo deve essere successiva a quella di partenza <br />l'anno di partenza è antecedente a quello di arrivo.<br />";
}
// verifico la presenza e la validità del campo testo/messaggio
//if(strlen($testo) < 2) {
//$errore .= 'Il testo inserito non è presente o non sembra essere valido.<br />';
//}
//if(strlen($errore) > 0) {
//died($errore);
//}
//verifica se ci sono errori
if($errore != ""){
echo "Siamo spiacenti, ma abbiamo riscontrato i seguenti errori durante l'invio del messaggio: <br /><br />";
echo $errore."<br />";
echo "La preghiamo di <a href='javascript:history.back()'>tornare indietro</a> e compilare correttamente il modulo.<br /><br />";
} else {
// email inviata alla propria casella
$messaggio = "Hai ricevuto una richiesta di prenotazione proveniente dal sito ".$sito. "\n\n";
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
$messaggio .= "Mittente: ".clean_string($nome)."\n";
$messaggio .= "Telefono: ".clean_string($telefono)."\n";
$messaggio .= "Email: ".clean_string($email)."\n";
$messaggio .= "Data di arrivo: ".clean_string($arrivo)."\n";
$messaggio .= "Data di partenza: ".clean_string($partenza)."\n";
$messaggio .= "Testo: ".clean_string($testo)."\n";
// create email headers
$headers = 'da: '.$email."\r\n".
@mail($destinatario, $oggetto, $messaggio, $headers);
?>
<!-- messaggio di ringraziamento -->
Grazie per la vostra prenotazione, sarete ricontattati al più presto.
<br/>
Attendere... sarete reindirizzati automaticamente nella home page del sito..
<meta http-equiv=refresh content="5; url=../index.php">
<?php
}
}
?>
La modifica che ho fatto è sostituire < con <= in
PHP:
if ($arrivo_giorno <= $partenza_giorno){ //possibile partenza nello stesso giorno di arrivo