Ik ben bezig met een opdracht voor school een vakantiehuisjes systeem nou heb ik de hele website al klaar maar mijn reserverings script werkt niet na behoren.
De fout die het script maakt is:
Wanneer ik huisje 1 op datum 04-10-2010 reserveer tot 04-11-2010 werkt het.
Maar wil ik huisje 1 op datum 03-10-2010 reserveren tot 04-11-2010 werkt het ook dan
----------------------------------------------------------------------
<?php
session_start();
// controleerd als je ingelogt bent of niet.
if (!isset ($_SESSION["gebruikersnaam"])){
header("location: login.php");
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Vakantiehuizen Verhuur</title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link rel="stylesheet" type="text/css" href="style.css"/>
</head>
<body>
<div id="container">
<div id="banner">
<h1> Vakantiehuizen Verhuur</h1>
</div>
<div class="clear"></div>
<div id="sidebar">
<div class="menu">
<ul>
<li class="links">Menu</li>
<li><a href="index.php">Startpagina</a></li>
<li><a href="vakantiehuizen.php">Vakantiehuizen</a></li>
<li><?php
// wanneer je ingelogt bent laat hij alleen zien van uitloggen en als je nog niet ingelogt bent zie je de knoppen inloggen en registeren.
if ($_SESSION['gebruikersnaam'] <> TRUE){ echo '
<li><a href="login.php">Inloggen</a></li>
<li><a href="register.php">Registreren</a></li>';}
else { echo '
<li><a href="logoff.php">Uitloggen</a></li>';}
?></li>
<li><a href="/contact.php">Contact</a></li>
<li><a href="/admin">Adminpaneel</a></li>
</ul>
</div>
</div>
<div id="content">
<div id="Content">
<center>
<form method="post" action="<?php echo ($_SERVER["PHP_SELF"]);?>">
<?php
// verbinding maken met database.
include("mysqlconnect2.php");
// als je niet via reserveren.php een huis kiest krijg je de fout melding dat je eerst een huisje moet kiezen.
if ($_SESSION['huis'] <> TRUE) {echo "Kies a.u.b. een vakantie woning";}
else {
// via de $_SESSION wordt mee gegeven uit de vorige pagina welk huis er gekozen is.
$huis = $_SESSION['huis'];
$huisplaats = $_SESSION['huisplaats'];
// met $jaar wordt standaart voor de klant ingevult welke jaar tal het nu is.
$jaar = date ("Y");
//hier worden de data ingevult in 6 velden en die worden later weer omgezet naar 2 velden.
if (!empty($_POST)){
$adag = $_POST["adag"];
$amaand = $_POST["amaand"];
$ajaar = $_POST["ajaar"];
$vdag = $_POST["vdag"];
$vmaand = $_POST["vmaand"];
$vjaar = $_POST["vjaar"];
// hier wordt gecontroleerd als de velden voor maand en dag al ingevult zijn want jaar hoeft tenslotte niet die wordt al standaard ingevult daar de varriable $jaar.
if ($adag == NULL){echo "<p> U heeft geen datum ingevult.<br><input type='Button' value='Ga Terug' onClick='javascript:history.back();'> </p>";}
else{
if ($vdag == NULL){echo "<p> U heeft geen datum ingevult.<br><input type='Button' value='Ga Terug' onClick='javascript:history.back();'> </p>";}
else {
if ($amaand == NULL){echo "<p> U heeft geen datum ingevult.<br> <input type='Button' value='Ga Terug' onClick='javascript:history.back();'> </p>";}
else {
if ($vmaand == NULL){echo "<p> U heeft geen datum ingevult.<br> <input type='Button' value='Ga Terug' onClick='javascript:history.back();'> </p>";}
}}
// hier wordt gecontroleerd als er een getal is ingevult en niet een letter of iets dergelijks.
if (is_numeric($adag) == true){if (is_numeric($amaand) == true){$adatum = "TRUE";};};
if (is_numeric($vdag) == true){if (is_numeric($vmaand) == true){$vdatum = "TRUE";};};
// hier wordt gezegt wanneer de datums niet goed zijn ingevult.
if ($adatum <> TRUE){echo "<p>De datums zijn niet goed ingevult.<br> <input type='Button' value='Ga Terug' onClick='javascript:history.back();'> </p>";}
else {
if ($vdatum <> TRUE){echo "<p>De datums zijn niet goed ingevult.<br> <input type='Button' value='Ga Terug' onClick='javascript:history.back();'> </p>";}
else {
// hier worden de datums inelkaar gedraait aangezien ze boven in 6 losse velden zijn gezet.
$aankomstdatum = "$adag/$amaand/$ajaar";
$vertrekdatum = "$vdag/$vmaand/$vjaar";
$aankomstdatum2 = "$amaand/$adag/$ajaar";
$vertrekdatum2 = "$vmaand/$vdag/$vjaar";
// hier converteren we de datums zodat mysql het ook snapt.
$myinput=$aankomstdatum2;
$sqldate=date('Y-m-d',strtotime($myinput));
$myinput2=$vertrekdatum2;
$sqldate2=date('Y-m-d',strtotime($myinput2));
$myinput3=$day;
$sqldate3=date('Y-m-d',strtotime($myinput3));
// hier wordt het aantal dagen berekent tussen de aankomst_datum en de vertrek_datum.
function dateDiff($dformat, $endDate, $beginDate)
{
$date_parts1=explode($dformat, $beginDate);
$date_parts2=explode($dformat, $endDate);
$start_date=gregoriantojd($date_parts1[0], $date_parts1[1], $date_parts1[2]);
$end_date=gregoriantojd($date_parts2[0], $date_parts2[1], $date_parts2[2]);
return $end_date - $start_date;
}
// hier wordt het bovenstaande uitgevoerd.
$Dagen = dateDiff("/", $vertrekdatum2, $aankomstdatum2);
// hier wordt gecontroleerd als de dagen niet minder dan 0 zijn dus bijvoorbeeld niet van 5 mei 2010 tot 4 mei 2010.
if ($Dagen < 0){echo "<p>De aankomst- en vertrek data zijn niet goed ingevult!<br> <input type='Button' value='Ga Terug' onClick='javascript:history.back();'> </p>";}
else{
// hier wordt de controle uitgevoerd als er geen overlappende datums zijn.
$check = TRUE;
// hier wordt de query gecontroleerd op het gekozen huis
$checksql="SELECT aankomst_datum, vertrek_datum FROM reserveren WHERE huis =$huis";
//De gekozen datums van het gekozen vakantiehuis worden door gecontrolleerd als de aankomst_datum en vertrek_datum niet al ergens anders tussen vallen of gekozen zijn.
$sql2=mysql_query($checksql) ;
while($data2=mysql_fetch_array($sql2))
{
$aankomst_datum=$data2['aankomst_datum'];
$vertrek_datum=$data2['vertrek_datum'];
while ($aankomst_datum <> $vertrek_datum) {
if ($aankomst_datum == $sqldate)
{$check = false; $aankomst_datum = $vertrek_datum;}
else {$aankomst_datum = date( "Y-m-d", strtotime( "$aankomst_datum +1 day" ) );}
}
while ($aankomst_datum <> $vertrek_datum) {
if ($aankomst_datum == $sqldate2)
{$check = false; $aankomst_datum = $vertrek_datum;}
else {$aankomst_datum = date( "Y-m-d", strtotime( "$aankomst_datum +1 day" ) );}
}}
// als het gekozen datums wel tussen andere gekozen datums vallen wordt dat hier vermeld.
if ($check <> TRUE){echo "<p> Onze exucesses maar het huisje op $huisplaats is al verhuurt tussen deze data. <br> <input type='Button' value='Ga Terug' onClick='javascript:history.back();'> </p>";}
else{
// zo niet wordt hier alles weg geschreven naar de database velden.
$klantnummer = $_SESSION['klantnummer'];
$insert ="INSERT INTO reserveren(klantnummer, huis, aankomst_datum, vertrek_datum)
VALUES ('".$klantnummer."', '".$huis."', '".$sqldate."', '".$sqldate2."')";
$result = mysql_query($insert)or die ("INSERT FOUT: " .mysql_error());
echo "<p>De reservering is succesvol verlopen,<br> Uw aankomstdatum is : $aankomstdatum <br>uw verterkdatum is : $vertrekdatum.";
}}}}}}
else {
//een klein overzichtje wordt weer gegeven voordat de datums zijn ingevoerd.
$query=" SELECT * FROM huisjes WHERE huis = $huis";
$sql=mysql_query($query) or die ("FOUT ; " .mysql_error());
while($data=mysql_fetch_array($sql))
$afbeelding=$data['afbeelding'];
$huisplaats= $_SESSION['huisplaats'];
$prijs = $_SESSION['prijs'];
echo ("<p><img src='$afbeelding' alt='Vakantiehuis' width='200' height='160' /><br><br>
<p> U heeft gekozen voor $huisplaats . <br>
De kosten zijn €$prijs,- per dag. </p><br>
<p>
Boeking:<br />
Gewenste aankomst datum:
<input size='2' type='text' name='adag'> - <input size='2' type='text' name='amaand'> - <input size='4' type='text' name='ajaar' value='$jaar'><br>
Gewenste vertrek datum :
<input size='2' type='text' name='vdag'> - <input size='2' type='text' name='vmaand'> - <input size='4' type='text' name='vjaar' value='$jaar'><br>
<input type='submit' name='submit' value='Reserveer Nu!'>
");
}}
?>
</form>
</center>
</div>
</div>
<div id="footer">
<p>© Copyright by Patrick Stel</p></div>
</div>
</body>
</html>
----------------------------------------------------------------------
hopenlijk kunnen jullie mij hierbij helpen...
ik kom er namelijk zelf niet meer uit.
alvast bedankt.