2k0ri pullreq

いくつか修正してみました。
一番ゴツいのはフォームの共通化・HTMLバリデート・可変変数・selectedのパッケージでしょうか。scheduleのコンボボックス部のソースを見ながら見てみて下さい。

コンボボックスは'start'と'end'が変わっている以外は同じフォームだったので
連想配列にしてまとめてしまいました。
$year、$monthを無理やり$start_year、$start_monthにも代入してこじつけています。
将来的に$start_year、$end_yearと別々の変数に別々の値を保持することになるとおもうので、
可変変数というのを使ってそれぞれの変数が参照されるような記法をechoでデモしています(128行)。

あと、ご存知かもですがselected="selected"属性をつけるとコンボボックスの初期値になるので
ループの値とGET値を三項演算子で照らし合わせながら流し込んでいます。

あとinputにはmaxlength属性で文字数制限が効きます。

include_onceとrequire_onceの違いは読み込めなかった時の挙動のみで、
前者はWarningしながら処理を続けて、後者はErrorを出して死にます。
最悪なくてもいいやつがincludeですが、個人的にはrequireでやってるパターンをよく見てきました。
参考までに。一応説明のために書き換えてみました。