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!).