Divné, já měl za to že FF4 tohle už ovládá.
No každopádně validace a ošetření dat je nutnost v každém ohledu, když aplikace přebírá nějaké data od uživatele - to je základní pravidlo - nikdy nevěřit uživateli.
Další možností je udělat to přes tři selecty -
<select name="rok">
<option value="2012">2012 (konec světa, tak honem!)</option>
<option value="2011">2011</option>
<option value="2010">2010</option>
<option value="2009">2009</option>
</select>
<select name="mesic">
<option value="01">leden</option>
<!-- Nechce se mi je vypisovat všechny -->
</select>
<select name="den">
<option value="01">1</option>
<option value="02">2</option>
<!-- Nechce se mi je vypisovat všechny -->
</select>
A následně v PHP složit a zvalidovat -
if( checkdate($_POST['mesic'], $_POST['den'], $_POST['rok']) )
{
$date = $_POST['rok'] . '-' . $_POST['mesic'] . '-' . $_POST['den']; //složit datum do správného formátu
echo "Je to správné datum!";
}else{
echo "Není to správné datum!";
}