De pura casualidad no te serviria la funcion
checkdate?
Eso revisará que sea una fecha valida.. ya despues compruebas que este dentro del rango que buscas.. como? yo lo haria de esta forma (la primera que se me ocurrio)
Código PHP:
$inicio = mktime(0, 0, 0, 1, 1, 2007); //01-01/2007
$fin = mktime(0, 0, 0, 12, 31, 2009); //31-12/2009
list($d, $m, $y) = explode("-", $tufecha); //$tufecha es.. tu fecha xD.. ya cuando ha pasado por la validacion
$fecha = mktime(0, 0, 0, $m, $d, $y); //esta será la fecha que introdujeron
if ($fecha > $inicio && $fecha < $fin) {
echo "Esta dentro del rango correcto";
}else{
echo "No esta dentro del rango";
}