Ma bravo! che falco...
La funzione checkdate, pur essendo dedicata, ha un piccolo difetto: accetta come valido anche l'anno 32767. (Dal manuale: anno è compreso tra 1 e 32767 ) ...Bello, eh?
Questo è solo un semplice esempio:
Codice PHP:
$g = 31;
$m = 1;
$a = 1976; //ma è considerato valido l'anno 1 ...oohh?! oppure il 3000!
$checkData = checkdate($m,$g,$a);
if($checkData) echo "$g/$m/$a è una data valida!";
...io resto del parere che per "controllare seriamente" qualcosa, non al livello elementare però, bisogna fare ricorso alle espressioni regolari (Perl compatibili, quando possibile!).