Two forms on one page - THE ANSWER
| From: | Ethan Rosenberg | Date: | Wed, 05 Jan 2011 04:56:06 +0000 |
| Subject: | Two forms on one page - THE ANSWER | ||
| Groups: | php.db php.general | ||
| Request: | Send a blank email to php-db+get-47600@lists.php.net to get a copy of this message | ||
Jim -
Much thanks to you for solving a problem with which I have been struggling for the last two weeks.
Here is the code:
===========
<?php session_start(); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php
switch ( @$_POST['next_step'] )
{
case 'step1':
echo 'Your kittens name is '.htmlspecialchars($_POST['cat']);echo <<<FORM
<form method="post" action="">
<input type="hidden" name="next_step" value="step2" />
<br />Enter your date of birth, in mm/dd/yyyy format: <br />
<input type="text" name="dob" />
<input type="submit" name="submit" value="Submit" />
</form>
FORM;
break;
case 'step2':
if ( empty($_POST['dob']) )
die('DOB was not set in session...');
if ( !preg_match('!^\d{2}/\d{2}/\d{4}$!', $_POST['dob'], $m) )
die('DOB was not properly formated, please try again.');
// calculate timestamp corresponding to date value
$dateTs = strtotime($_POST['dob']);// calculate timestamp corresponding to 'today'
$now = strtotime('today'); $dateArr = explode('/', @$_POST['dob']);
// check that the value entered is a valid date
if ( !checkdate($dateArr[0], $dateArr[1], $dateArr[2]) )
die('ERROR: Please enter a valid date of birth');
// check that the date entered is earlier than 'today'
if ( $dateTs >= $now )
die('ERROR: Please enter a date of birth earlier than today');
// calculate difference between date of birth and today in days
// convert to years
// convert remaining days to months
// print output
$ageDays = floor(($now - $dateTs) / 86400);
$ageYears = floor($ageDays / 365);
$ageMonths = floor(($ageDays - ($ageYears * 365)) / 30);
echo "You are approximately $ageYears years and $ageMonths months old.";
break;
case 'step1':
default:echo <<<FORM
<form method="post" action="">
<input type="hidden" name="next_step" value="step1" />
Enter your kitten's name: <br />
<input type="text" name="cat" />
<input type="submit" name="submit" value="Submit Kitten" />
</form>
FORM;
}
?>
=========
Ethan
MySQL 5.1 PHP 5.3.3-6 Linux [Debian (sid)]