problema invio email tramite form

asevenx

Utente Attivo
7 Nov 2009
312
0
16
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:

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 &egrave; 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 &egrave; antecedente a quello di arrivo.<br />";		
		}
	
	} else {
	
	$errore .= "- La data di arrivo deve essere successiva a quella di partenza <br />l'anno di partenza &egrave 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&ugrave 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
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
 

marino51

Utente Attivo
28 Feb 2013
2.912
162
63
Lombardia
arrivo 25/12/2014
partenza 05/01/2015

PHP:
    if ($arrivo_anno <= $partenza_anno){ 
        if ($arrivo_mese <= $partenza_mese){ 
            if ($arrivo_giorno <= $partenza_giorno){ //possibile partenza nello stesso giorno di arrivo
che succede ?

non ho guardato altro
ciao
Marino
 

asevenx

Utente Attivo
7 Nov 2009
312
0
16
Adesso provo e ti dico. Comunque le email mi arrivano, ma con netto ritardo.
 

marino51

Utente Attivo
28 Feb 2013
2.912
162
63
Lombardia
nel caso delle date che ti ho indicato, viene attivato un errore che non è vero e la mail non viene inviata
ciao
Marino