what is my Major Malfunction?
i've tried a ton of different things, including using an include for the initial date drop-downs. i just can't get it-- i'm figuring there's something... some basic rule i should have followed to prevent this... where did i go wrong?
thanks for reading...
<?php
ob_start();
session_start();
if (empty($_POST['flow'])) { // case of page loaded directly, not via form post
header("Location: schedule.php");
exit;
} else { // set a variable for the html out of this date drop-down form
$dynadate = "";
$_SESSION['flow'] = $_POST['flow'];
}
if (isset($_SESSION['nodate'])) { // nodate hidden field 1st post this page's form
$dynadate = $_SESSION['nodate']; // allow 2nd posting - fix invalid dates
$dynadate .= "
<p>Please try again, paying close attention that the date you enter is valid:</p>
<form method=\"post\" action=\"$_SERVER[PHP_SELF]\">";
} elseif (empty($_POST['op'])) { // case of page first run - form not yet submit
$dynadate .= "
<h1>Enter the Date for this Event:</h1>
<form method=\"post\" action=\"$_SERVER[PHP_SELF]\">";
} else { // make the html select/option drop downs for the date selector form
// MAKE MONTHS ARRAY
global $m;
$monthArray = array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August',
'September', 'October', 'November', 'December');
$dynadate .= "<select name=\"month\">";
for ($m = 0; $m < count($monthArray)+1; $m++){
$dynadate .= "<option value=\"$m\">$monthArray[$m]</option>";
if ($m == 11) {
break;
} else {
}
}
$dynadate .= "</select>";
// MAKE DAYS ARRAY
$dynadate .= "<select name=\"day\">";
for ($x = 0; $days = $x+1; $x++){
$dynadate .= "<option value=\"$days\">$days</option>";
if ($x==30) {
break;
}
}
$dynadate .= "</select>";
// MAKE YEARS ARRAY
$yearArray = array('2006', '2007', '2008', '2009', '2010', '2011');
$dynadate .= "<select name=\"year\">";
for ($y = 0; $y < count($yearArray)+1; $y++){
$dynadate .= "<option value=\"$y\">".$yearArray[$y]."</option>";
if ($y == 5) {
break;
} else {
$yearnum = $y;
}
}
$dynadate .= "</select>";
// BEGIN TIME SECTION
$dynadate .= "<p class=\"timestamper\">What time does this event begin?</p>";
$hours = 24;
$min_sec = 60;
$hour = '<select name="hour">';
for($i=0; $i<=$hours; $i++){
$hour .= '<option value="'.$i.'">'.date('h (a)', mktime($i,0,0,1,1,2000)).'</option>';
}
$hour .= '</select>';
$min = '<select name="min">';
for($i=0; $i<=$min_sec; $i++){
$min .= '<option value="'.$i.'">'.date('i', mktime(0,$i,0,1,1,2000)).'</option>';
}
$min .= '</select>';
$dynadate .= "$hour.$min";
// CLOSE FORM AND SUBMIT
$dynadate .= "
<input type=\"hidden\" name=\"op\" value=\"makedate\"/> <-- // to indicate form is posting -->
<input type=\"hidden\" name=\"flow\" value=\"go\" /> <-- // re-assign value to $_POST['flow'] for very top of page -->
<br /><input type=\"submit\" name=\"submit\" value=\"Enter Date\" />
</form>";
}
// check if form posted on the initial date selection or on a date correction
if ((isset($_POST['op'])) && ( ($_POST['op']) == "makedate")) {
$_SESSION['op'] = $_POST['op'];
// make a timestamp for an upcoming SQL query (on valid dates)
// FORMULA FOR CONVERT TO TIMESTAMP
$day = $_POST['day'];
$month = $_POST['month'] + 1;
$m = $month;
$year = $_POST['year'];
$year = $year + 2005;
$mkhour = $_POST['hour'];
$mkmin = $_POST['min'];
$check = checkdate($m, $day, $year);
if ($check == 1) { // date is valid - we've reached the finish line
$newtime = date("M-d-Y \a\\t h:i a", mktime($mkhour, $mkmin, 0, $month, $day, $year));
$tstime = mktime($mkhour, $mkmin, 0, $month, $day, $year);
$dynadate = "<p>Now move on to Enter Data to db (some action placed here - session variable - etc)</p>";
} elseif ($check == 0) { // ouch! its an invalid date - you lose, buster brown
$_SESSION['nodate'] = "
<h3>You entered an invalid date! </h3>";
header("Location: schedtwo.php"); // put html in a session var so print on next time around
exit;
} elseif (empty($check)) { // the timestamp section has not yet been reached
// wait... i'm missting something here... just realized this edit 2:21pm
} else {
}
}
?>