|
PatrickS
Lid
Posts: 47
Registreerde: 31-3-2010
Locatie: Groningen
Lid is online
|
Gepost op 6-9-2010 om 12:54 |
|
|
Reservatie Script V2
Hallo, het probleem is nog altijd niet opgelost want hij schrijft nog steeds datums weg die niet mogen.
| Code: |
<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>
|
De fout is als volgt.
datum 1 -> 04-10-2010 tot 04-11-2010 (word weggeschreven wat mag)
datum 2 -> 03-10-2010 tot 04-11-2010 (word weggeschreven terwijl dat niet mag aangezien datum 1 ertussen valt.)
hopenlijk snap je het.
ik werk trouwens met variabele gegevens voor de datums.
|
|
|
|
|