помогите девченке разобраться в коде

  • Автор темы rulez22
  • Дата начала
Статус
Закрыто для дальнейших ответов.
R

rulez22

#1
В php совсем слабо разбираюсь (не женское это дело видимо), ну да ладно. Пытаюсь сделать ограничение на неверно введенные даты, подскажите пожалуйста с примером кто может как ограничить ввод неверно введенных дат?
Делаю чтобы не было такого как ввод скажем 1 февраля checkin и 31 февраля checkout
Мой код ниже. Проблема такая - работает верно но 2 проблемы:
1) при первом открытии скрипта в браузере сразу отображается "Incorrect check-out dates"
2) даже после ошибки выдает количество ночей
"Incorrect check-out dates
Your booking is for a period of 30 nights"

Код:
<?php

function getdates($start,$end) 
{ 
$number = $start; 

$menu .= "\n\n"; 

while ($number <= $end) 
{ 
$menu .= "<option value=\"$number\">$number</option>\n"; 

$number++; 
}//end while 

return $menu; 

}//end getdates 


function getForm($monthMenu, $dayMenu, $yearMenu) 
{ 
print "<form name=\"dateForm\" action=\"test.php\" method=\"POST\")"; 
echo "</br>"; 
echo "Check-in date: "; 
echo '<select name = "startDay">'; 
print $dayMenu; 
echo '</select>'; 
echo "/"; 
echo '<select name = "startMonth">'; 
print $monthMenu; 
echo '</select>'; 
echo "/"; 
echo '<select name = "startYear">'; 
print $yearMenu; 
echo '</select>'; 

echo '<br />';

echo "Check-out date: "; 
echo '<select name = "endDay">'; 
print $dayMenu; 
echo '</select>'; 
echo "/"; 
echo '<select name = "endMonth">'; 
print $monthMenu; 
echo '</select>'; 
echo "/"; 
echo '<select name = "endYear">'; 
print $yearMenu; 
echo '</select>'; 

echo '<br /><br /><input type="submit" name="submitDate" value="Submit">'; 
echo '</form>'; 

}// end getForm 


if (!checkdate($_POST['endMonth'],$_POST['endDay'],$_POST['endYear'])) echo "Incorrect check-out dates<br />";


$dateDiff = gmmktime(0,0,0,$_POST[endMonth],$_POST[endDay],$_POST[endYear]) - gmmktime(0,0,0,$_POST[startMonth],$_POST[startDay],$_POST[startYear]);

if (isset($_POST[submitDate])) 
{ 

echo 'Your booking is for a period of ' .( round($dateDiff/60/60/24)). ' nights';

}//end if 
else 
{ 

$startDay = '1'; 
$endDay = '31'; 

$startMonth = '1'; 
$endMonth = '12'; 

$startYear = '2007'; 
$endYear = '2015'; 

$dayMenu = $monthMenu = getdates($startDay, $endDay); 
$monthMenu = getdates($startMonth, $endMonth); 
$yearMenu = getdates($startYear, $endYear); 

getForm( $monthMenu,$dayMenu, $yearMenu); 


}//end else 

?>
 
Статус
Закрыто для дальнейших ответов.