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"

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" />


 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.";

case 'step1':

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" />


MySQL 5.1 PHP 5.3.3-6 Linux [Debian (sid)]

PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to