<?php
   if (isset($_POST['submit'])) {
     $month = $_POST['month'];  $year = $_POST['year'];
   } else {
     $month = 1; $year=2011;
   }
   show_calendar($month, $year);
?>
<form action="cal.php" method="post">
    <select name="month">
        <?php show_months($month); ?>
    </select>
    <input type="text" name="year" size="4" maxlength="4" value="<?php echo $year; ?>"/>
    <input type="submit" name="submit" value="Show Calendar" />
</form>

<?php
  function show_calendar($month, $year) {
      STATIC $day_names = array('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');
      $days_in_month = date('t', mktime(0, 0, 0, $month, 1, $year));
      $day = 1 - date('w', mktime(0, 0, 0, $month, 1, $year));
      echo '<table border="1">';
      for ($i=0; $i<7; $i++) {
        echo '<tr border="1">';
        for ($j=0; $j<7; $j++) {
            if ($i==0)
               printf('<td border="1"><b>%s</b></td>', $day_names[$j]);
            else {
               printf('<td border="1">%s</td>',
                       ($day > 0 && $day <= $days_in_month) ? $day : '&nbsp;');
               $day++;
             }
        }
        echo '</tr>';
      }
      echo '</table><p>&nbsp;</p>';
   }

  function show_months($selected_month) {
      STATIC $months = array('January', 'February', 'March', 'April', 'May', 'June',
                              'July', 'August', 'September', 'October', 'November', 'December');
      for ($i=1; $i<=sizeof($months); $i++)
         printf("<option value=\"%s\" %s>%s</option>\n",
                 $i, $i == $selected_month ? 'selected' : '', $months[$i-1]);
  }
?>