Hola Superlinux.
Se puede hacer de distintas formas. Una de ella podría ser con esta función (se valida si la fecha existe o no, por ejemplo 29/02/2005 no sería válida por no ser año bisiesto; tampoco sería válido 31/13/2006 porque el mes 13 no existe):
Código PHP:
function validarfecha($dia, $mes , $anio){
$fechaok=false;
//probamos si la fecha es válida (tiene que ser mes,dia,año)
if (checkdate($mes,$dia,$anio))
{
$fechaok=true;
}
return $fechaok;
}
?>
También se puede validar con expresiones regulares, el formato y el número de dígitos de cada uno de los componentes de la fecha, por ejemplo:
Código PHP:
//-se valida fecha con formato aaaa/mm/dd
$error='N';
if ( !ereg( "(^[0-9]{4})/([0-9]{2})/([0-9]{2}$)", $fecha, $regs ) )
{
$_SESSION['mensaje_error'].="\\n --> ¡Formato fecha incorrecto! (formato aaaa/mm/dd). ";
$error='S';
}
Dale un vistazo a
http://es2.php.net/manual/es/function.ereg.php; y si quieres ahondar más sobre expresiones regulares te dejo este tutorial que me localizó google (yo no me considero
para nada un experto en expresiones regulares

) :
http://bulma.net/body.phtml?nIdNoticia=770
Quizás lo más correcto sería utilizar las 2 validaciones conjuntamente.
Saludos.