Benissimo. Allora con date("j") catturi il giorno corrente del mese corrente, e con date("n") il valore del mese. Ricorda come funziona un ciclo for. Hai una variabile che si incrementa fino ad arrivare ad un valore che tu setti (che si chiama guardia). Devi quindi assegnare questo valore in base al mese in cui siamo. Come fare? Un semplice SWITCH.
Ma passiamo al codice:
$blnBisestile=date("L"); // se vale zero non lo è.
$iCurrMese=date("n");
$iCurrGiorno=date("j");
echo "<select>";
switch ($iCurrMese){
case 2:
if ($blnBisestile) {
$iStopLoop=29;
}else{
$iStopLoop=28;
}
break;
case 4:
case 6:
case 9:
case 11:
$iStopLoop=30;
break;
default:
$iStopLoop=31;
}
for ($i=1;$i<=12;$i++){
if ($i==$iCurrGiorno ){
$strSelected="selected";
}else{
$strSelected="";
}
echo "<option " . $strSelected . ">" . $i . "</option>";
}
l'if nel ciclo ti consente di selezionare automaticamente il giorno attuale valorizzando la variabile che stamperà selected nell'opzione appropriata.
Siccome è un esercizio fai bene attenzione ad aver capito tutti i passaggi. Se qualcosa non è chiaro te lo rispiego. Posta senza esitare!