Ciao a tutti!

HO un sito in cui un utente può scegliere una data in cui fare un tour.

Se l'utente o sceglie però a due giorni dal suo inizio deve dare errore.

Per esempio se il tour è il 20 settembre e lui lo sceglie il 18 o il 19 il form deve restituire errore.
Inoltre se sceglie- per sbaglio- una data già passata dovrebbe dare errore anche il quel caso.

Il codice è cosi (scusate se esce tutto su una riga ma non so come si fa a mandarlo a capo)

Codice PHP:
if ($_SESSION['error1']==""){        # Verifico che le date inserite siano successive di almeno n giorni alla data attuale   $n=2;   if (data_passata($today,$_SESSION['lang'],$n) && $today!=$data1_pck) {     $_SESSION['error1'] = $err_data_passata0.$n.$err_data_passata1;  }   if (data_passata($data2,$_SESSION['lang'],$n) && $_SESSION['error1']=="" && $data2!=$data2_pck) {     $_SESSION['error1'] = $err_data_passata0.$n.$err_data_passata1;   }   if (data_passata($data3,$_SESSION['lang'],$n) && $_SESSION['error1']=="" && $data3!=$data3_pck) {     $_SESSION['error1'] = $err_data_passata0.$n.$err_data_passata1;   } }  if ($_SESSION['error1']!=""){   header("location: ".$dominio."p_step2.php"); } else {   header("location: ".$dominio."p_step3.php"); }    function data_passata($data,$lingua,$n) {   #riceve una data e ritorna true se questa non è almeno n giorni dopo la data attuale.   print "data passata a format_date_rev = ".$data."
\n";   $arr_data=format_date_rev($data,$lingua,2);   $anno=$arr_data[0];   $mese=$arr_data[1];   $giorno=$arr_data[2]; print "anno ".$anno." mese ".$mese." giorno ".$giorno."
\n";    $fmkdata=mktime(0, 0, 0, $arr_data[1]$arr_data[2]-$n$arr_data[0]);   $unixtoday=time(); print "fmkdata ".$fmkdata."
\n"; print "unixtoday ".$unixtoday."
\n";    if ($fmkdata<$unixtoday){     return true;   } else {     return false;   }  } 

Ma in questo modo il sistema da sempre errore, qualsiasi data uno scelga
COme fare per correggerlo?
Grazie mile