sinceramente non ho capito se i giorni precedenti devono vedersi,
comunque:
$arrayMesi=array(
"Gennaio",
"Febbraio",
"Marzo",
"Aprile",
"Maggio",
"Giugno",
"Luglio",
"Agosto",
"Settembre",
"Ottobre",
"Novembre",
"Dicembre");


if( checkdate ( 2 , 29 , date("Y"))) $dM2=29; else $dM2=28;
$arrayGiorni=array(31,$dM2,31,30,31,30,31,31,30,31 ,30,31);

$mese_corrente=$arrayMesi[(date("n")-1)];
$giorno_corrente=date("d");

for($i=1;$i<=$arrayGiorni[(date("n")-1)];$i++){
if($i>$giorno_corrente){

echo "<option value=\"".$i."\">".$i."</option>";

}
}