> I'm looking for a function which enables me to allow user 
> only to enter those dates which are still to come. In my head 
> I have three <select> things... one for day, one for month and 
> one for year. In order to prevent the user from submitting the 
> form with the date which is in past, I need probably Javascript. 
> Am I correct? 

Only if you want to check before the form gets submitted...

> I rather prefer to keep my site Javascript free and therefore it 
> would be great if somebody has already written such a function 
> and would be ready to share it with me/others. If not, any ideas 
> how to start... ????

Here is a function I use.  Call after the form is submitted.

function verifyDate( $date_month, $date_day, $date_year, $notprior = "" ) {
  // v. 1.1
  // 1999.11.19 - to check to make sure that the selected dates are
  // within the appropriate range:
  // ie. days cannot exceed 31, months cannot exceed 12 and 
  // years cannot be more than 10 years in the future.

  $retval = 1;

  $today         = MkTime(0,0,0, date( "m" ), date( "d" ), date( "Y" ));
  $selected_date = MkTime(0,0,0, $date_month, $date_day,        $date_year);

  if(( $date_month > 12 ) || 
     ( $date_day > 31 )   || 
     (( $date_year < ( date( "Y" ) - 95 )) || ( $date_year > date( "Y" ))))
{
    $dategood = 0;

  } else {
    $dategood = checkdate( $date_month, $date_day,      $date_year );

  }
  if( !$dategood ) {
    $retval = "Date is invalid.  Please make sure that the day selected is
valid for the month selected<br>\n";

  } elseif (( $today > $selected_date ) && ( $notprior )) {
    $retval = "Date Selected Is Prior To Today<br>\n";

  }

  return $retval;

} // End function verifyDate();

Chris

Reply via email to