ciao Mark, grazie per l'aiuto il controllo va bene sono che ho dovuto fare delle modifiche perchè il CheckReg() non è solo per il compleanno ma per una serie di campi in una pagina.... ora per come lo hai fatto tu quando il campo è vuoto mi da sempre l'ultimo errore cioè "data non corretta" non capisto dove è l'errore, mi dovrebbe dare campo obbligatorio, cioè il primo... ho aggiunto l'else mancante ma nulla da fare... ti posto il codice per come lo modificato..

codice:
function CheckReg2() { 
  $errori = array(); 
	             
  $compleanno = $_POST["compleanno"]; 
  if ($compleanno == null OR trim($compleanno) == "") {
  $errori[0] = "la data del tuo compleanno è obbligatoria"; 
  }
  else {
  list ($mese, $giorno, $anno) = explode ("/", $compleanno);

  if (!checkdate($giorno, $mese, $anno)) {
  $errori[0] ="data non corretta";
  }
  }
  $gap=15;
  $annominimo=1930;
  if ($anno > $annominimo){
  if (date("Y") - $anno < $gap) {
  $errori[0] ="sei un minorenne";
  }
  else if (date("Y") - $anno < $gap && mktime (0,0,0,$mese,$giorno,2004) > mktime(0,0,0,date("m"),date("d"),2004)) 
  $errori[0] ="data non corretta";
  } 
  else
  $errori[0] ="campo";
  return $errori;
  }