Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Brauche Bitte Hilfe bei mehreren Formularen auf einer Seite...

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Brauche Bitte Hilfe bei mehreren Formularen auf einer Seite...

    hallo,
    ich bin gerade an einem Projekt dran und weiß nicht weiter...

    es gibt da eine ferienwohnung für die ich buchungsanträge stellen mag.
    in der datenbank habe ich die gebuchten tage eingetragen.
    in der ersten anfrage soll ermittelt werden ob die angefragten tage frei sein oder nicht.
    wenn sie frei sind soll es zu einem weiteren formular gehen, wo man seine persönlichen daten eingeben muss...
    jetzt habe ich schon 4 funktionen (verfuegbarkeitF(),verfuegbarkeitP(), buchungsanfrage(), BuchungsanfrageVerarbeiten() ) und es klappt nicht mehr mit den weiterleitungen...

    kann sich das vielleicht jemand ansehen und mir einen tipp geben...
    meine seite wird mit get anweisungen dynamisch aufgerufen...
    um euch ein bild machen zu können hab ich das ganze hochgeladen...

    Anschauungsmaterial
    Code:
    <?php
        if(isset($_POST["pruefen"])){
            verfuegbarkeitP();
        } elseif(isset($_POST["anfragen"])){
            BuchungsanfrageVerarbeiten();
        } else {
            verfuegbarkeitF();
        }
    
    
    #FUNKTION AUSGEBEN BEGINN:
    function verfuegbarkeitF($ap="",$anTag="", $anMonat="",$anJahr="",$abTag="",$abMonat="",$abJahr="",$fehlversuche="0")
    {
        
    /* ERZEUGT DIE DATEN FÜR DAS AUTO FILL IN */
        
        if($anTag === ''){
        $anTag = date('j');
        }
        if($anMonat === ''){
            $anMonat = date('n');
        }
        if($anJahr === ''){
            $anJahr = date('Y');
        }
        if($abTag === ''){
            $morgen  = mktime(0, 0, 0, 0, date("d")+1, 0);
            $abTag = date('j',$morgen);
        }
        if($abMonat === ''){
            $abMonat = date('n');
        }
        if($abJahr === ''){
            $abJahr = date('Y');
        }
    ?>
        <h3>Prüfen Sie die Verfügbarkeit</h3>
    <?php
        if($fehlversuche >= 3){
    # GIBT DAS FEHLER-ARRAY BEIM DRITTEN FEHLVERSUCH AUS:
    
            if(!empty($fehlerB)){
                echo "<br>";
                $i = 0;
                foreach ($fehlerB as $k => $v) 
                {
                    $i++;
                    echo "<p class='fehler_2'>Error_$i: $v</p>";
                }
            } 
        }
        if ($fehlversuche >=1){
            echo "<p>Fehlversuche: $fehlversuche</p>";
        }
    ?>
    <!-- EINGABEFORMULAR -->
        <form action="#main_header" method="post" style="margin:20px 0 15px 13px;">
    
            <label for="ap">Unterkunft:<br>
                <input type="radio" name="ap" id="ap" value="AP_1" checked>Stoß im Himmel 3<br>
            </label>
        <!-- Ankunftsdatum Label und Eingabefeld -->
            <label class="labC" for="anreisedatum">Ankunftsdatum<br>
            <div id="anreisedatum" class="inpC_2" <?php if(!empty($fehlerB["anreiseDatum"])){echo"style='border:1px solid red;'";}elseif(!empty($fehlerB['dauer'])){echo"style='border:1px solid red;'";}?>>
                <!-- Anreisetag Label und Eingabefeld -->
                <lable for="anTag"><span class="hidden">Anreisetag</span>
                    <input class="inp_die_A" <?php if(!empty($fehlerB["anTag"])){ echo "style='border:1px solid red !important;'";}?> id="anTag" name="anTag" type="number" min="1" max="31" value="<?=$anTag?>">
                </lable>
                <!-- Ankunftsmonat Label und Eingabefeld -->
                <lable for="anMonat"><span class="hidden">Anreisemonat</span>
                    -&nbsp;<input <?php if(!empty($fehlerB["anMonat"])){ echo "style='border:1px solid red !important;'";}?> class="inp_die_B" id="anMonat" name="anMonat" type="number" min="1" max="12" value="<?=$anMonat?>">
                </lable>
                <!-- Ankunftsjahr Label und Eingabefeld -->
                <lable for="anJahr"><span class="hidden">Anreisejahr</span>
                    -&nbsp;<input class="inp_die_C" <?php if(!empty($fehlerB["anJahr"])){ echo "style='border:1px solid red !important;'";}?> id="anJahr" name="anJahr" type="number" min="2015" max="2025" value="<?=$anJahr?>">
                </lable>
            </div>
            </label>
    
            <span style="display:inline-block;width:9px;vertical-align:baseline;text-align:center;">/</span>
            <!-- Abreisedatum Label und Eingabefeld -->
            <label class="labC" for="abreisedatum">Abreisedatum<br>
            <div id="abreisedatum" class="inpC_2" <?php if(!empty($fehlerB["abreiseDatum"])){echo"style='border:1px solid red;'";}elseif(!empty($fehlerB['dauer'])){echo"style='border:1px solid red;'";}?>>
                <!-- Abreisetag Label und Eingabefeld -->
                <lable for="abTag"><span class="hidden">Abreisetag</span>
                    <input class="inp_die_A" <?php if(!empty($fehlerB["abTag"])){ echo "style='border:1px solid red !important;'";}?> id="abTag" name="abTag" type="number" min="1" max="31" value="<?=$abTag?>">
                </lable>
                <!-- Abreisemonat Label und Eingabefeld -->
                <lable for="abMonat"><span class="hidden">Abreisemonat</span>
                    -&nbsp;<input class="inp_die_B" <?php if(!empty($fehlerB["abMonat"])){ echo "style='border:1px solid red !important;'";}?> id="abMonat" name="abMonat" type="number" min="1" max="12" value="<?=$abMonat?>">
                </lable>
                <!-- Abreisejahr Label und Eingabefeld -->
                <lable for="abJahr"><span class="hidden">Abreisejahr</span>
                    -&nbsp;<input class="inp_die_C" <?php if(!empty($fehlerB["aBJahr"])){ echo "style='border:1px solid red !important;'";}?> id="abJahr" name="abJahr" type="number" min="2015" max="2025" value="<?=$abJahr?>">
                </lable>
            </div>
            </label>
            <input type="submit" name="pruefen" class="sendBut inpB_2" value="Prüfen">
            <input type="hidden" name="fehlversuche" value="<?=$fehlversuche?>">
        </form>
    <?php
    }
    function verfuegbarkeitP()
    {
        $fehlerB = array();
        
        $tage = array ("01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11",
                        "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25",
                        "26", "27", "28", "29", "30", "31");
        $monate = array("1", "2", "3", "4", "5", "6",
                        "7", "8", "9", "10", "11", "12");
        $jahre = array("2015", "2016", "2017", "2018", "2019", "2020", "2021", "2022",
                        "2023", "2024", "2025");
        
    /* FILTER INPUT */
        !empty(filter_input(INPUT_POST, "ap", FILTER_SANITIZE_ENCODED))
                && is_string(filter_input(INPUT_POST, "ap", FILTER_SANITIZE_ENCODED)) 
                    ? $ap = trim($_POST["ap"]) : $ap = "";
        
        !empty(filter_input(INPUT_POST, "anTag", FILTER_SANITIZE_ENCODED))
                && is_string(filter_input(INPUT_POST, "anTag", FILTER_SANITIZE_ENCODED)) 
                    ? $anTag = trim($_POST["anTag"]) : $anTag = "";
        
        !empty(filter_input(INPUT_POST, "anMonat", FILTER_SANITIZE_ENCODED))
                && is_string(filter_input(INPUT_POST, "anMonat", FILTER_SANITIZE_ENCODED)) 
                    ? $anMonat = trim($_POST["anMonat"]) : $anMonat = "";
        
        !empty(filter_input(INPUT_POST, "anJahr", FILTER_SANITIZE_ENCODED))
                && is_string(filter_input(INPUT_POST, "anJahr", FILTER_SANITIZE_ENCODED)) 
                    ? $anJahr = trim($_POST["anJahr"]) : $anJahr = "";
        
        !empty(filter_input(INPUT_POST, "abTag", FILTER_SANITIZE_ENCODED))
                && is_string(filter_input(INPUT_POST, "abTag", FILTER_SANITIZE_ENCODED)) 
                    ? $abTag = trim($_POST["abTag"]) : $abTag = "";
        
        !empty(filter_input(INPUT_POST, "abMonat", FILTER_SANITIZE_ENCODED))
                && is_string(filter_input(INPUT_POST, "abMonat", FILTER_SANITIZE_ENCODED)) 
                    ? $abMonat = trim($_POST["abMonat"]) : $abMonat = "";
        
        !empty(filter_input(INPUT_POST, "abJahr", FILTER_SANITIZE_ENCODED))
                && is_string(filter_input(INPUT_POST, "abJahr", FILTER_SANITIZE_ENCODED)) 
                    ? $abJahr = trim($_POST["abJahr"]) : $abJahr = "";
        
        !empty(filter_input(INPUT_POST, "fehlversuche", FILTER_SANITIZE_ENCODED))
                && is_string(filter_input(INPUT_POST, "fehlversuche", FILTER_SANITIZE_ENCODED)) 
                    ? $fehlversuche = trim($_POST["fehlversuche"]) : $fehlversuche = "";
        
    /* AN- UND ABREISE DATUM FORMATIEREN */
        $anreiseDatum = date('d - m - Y', mktime(0,0,0,$anMonat,$anTag,$anJahr));
        $abreiseDatum = date('d - m - Y', mktime(0,0,0,$abMonat,$abTag,$abJahr));
        $anreiseMK = mktime(0,0,0,$anMonat,$anTag,$anJahr);
        $abreiseMK = mktime(0,0,0,$abMonat,$abTag,$abJahr);
        
    /* SPEICHER FEHLERMELDUNGEN VON DER FORMULAREINGABE */
        
        if(checkdate($anMonat, $anTag, $anJahr) === false) {
            $fehlerB['anreiseDatum'] = "Ungültiges Anreisedatum";
        }
        if(checkdate($abMonat, $abTag, $abJahr) === false) {
            $fehlerB['abreiseDatum'] = "Ungültiges Abreisedatum";
        }
        if(!in_array($anTag, $tage)){
                $fehlerB["anreiseDatum"] = "Bitte wählen Sie einen <b>Tag</b> aus";
        }
        if(!in_array($abTag, $tage)){
            $fehlerB["abreiseDatum"] = "Bitte wählen Sie einen <b>Tag</b> aus";
        }
        if(!in_array($anMonat, $monate)){
            $fehlerB["anreiseM"] = "Bitte wählen Sie ein <b>Monat</b> aus";
        }
        if(!in_array($abMonat, $monate)){
            $fehlerB["abreiseM"] = "Bitte wählen Sie ein <b>Monat</b> aus";
        }
        if(!in_array($anJahr, $jahre)){
            $fehlerB["anreiseY"] = "Bitte wählen Sie ein <b>Jahr</b> aus";
        }
        if(!in_array($abJahr, $jahre)){
            $fehlerB["abreiseY"] = "Bitte wählen Sie ein <b>Jahr</b> aus";
        }
        if(empty($ap)){
            $fehlerB["ap"] = "Bitte wählen Sie eine <b>Unterkunft</b> aus";
        }
        if($anreiseMK >= $abreiseMK){
            $fehlerB["dauer"] = "Ungültige Buchungsdauer";
        }
        
    /* WENN KEINE FEHLER BEI DER EINGABE FORHANEN SIND WIRD ZUR PRÜFUNG WEITERGELEITET */
        
        if(count($fehlerB) > 0){
            $fehlversuche ++;
            verfuegbarkeitF($ap,$anTag,$anMonat,$anJahr,$abTag,$abMonat,$abJahr,$fehlversuche,$fehlerB);
        } else {
            
            echo "<h3>Wird überprüft...</h3>";
            
            require 'functions/zeitdifferenz.inc.php';
            
            $dauer = zeitdifferenz($anreiseMK, $abreiseMK, "Tage");
           
            echo "<p>**************************************<br>\nAnreisetag: $anreiseDatum"
                    . "<br>\nAbreisetag: $abreiseDatum<br>\n__________________________________<br>\n";
    
            echo "Die Buchungsdauer beträgt $dauer";
            if($dauer == 1){
                echo " Nacht.<br>\n**************************************</p>";
            } else {
                echo " Nächte.<br>\n**************************************</p>";
            }
            echo "<p>$anreiseMK<br>    $abreiseMK</p>";
            
            require 'functions/DB_test_open.inc.php';
            
            
        /* SQL Abfrage ausführen */
            $abfrage = mysqli_query($mysqli,"SELECT * from buchungen");
            
        /* Anzahl der Datensätze ermitteln und ausgeben */
            $num = mysqli_num_rows($abfrage);
                
        /* Datensätze aus Ergebnis ermitteln, in Array speichern und ausgeben */
    	echo "<p>";
            echo "<span class='underline green'>$num Datensätze gefunden</span><br>\n";
            while ($dsatz = mysqli_fetch_assoc($abfrage))
            {
                $ausgabe = $dsatz["id"] . ", "
                . $dsatz["apartment"] . ", "
                . $dsatz["belegt"] . ", "
                . $dsatz["anmerkung"] . "<br>\n";
                echo utf8_encode($ausgabe);
            }
            echo "</p>";
            
            echo "<p>";
            
            $fehlerP = array();
            $gebTage = array();
            
            
    /* SCHLEIFE, die alle Daten zwischen den zwei angefragen Tagen(Daten) generiert */        
            for($i = 0; $i<=$dauer; $i++):
    
                $t = date('d-m-Y',mktime(0, 0, 0, $anMonat, ($anTag+$i), $anJahr));
                $d = date('Y-m-d',mktime(0, 0, 0, $anMonat, ($anTag+$i), $anJahr));
                
                echo "Tag ".($i+1).": &nbsp;$t";
                $gebTage[$i] = $t;
                
    /* VERSCHACHTELTE SCHLEIFE die jeden angefragen Tag auf eine schon vorhandene Buchung kontrolliert */           
                $abfrage2 = mysqli_query($mysqli,"SELECT * from buchungen WHERE belegt='$d'");
                    while ($dsatz2 = mysqli_fetch_assoc($abfrage2))
                    {
                        echo "<span class='fehler'> - belegt! ";
                        $ausgabe2= $dsatz2['anmerkung'];
                        $fehlerP[$dsatz2['belegt']]= $dsatz2['anmerkung'].", ".$dsatz2['belegt']."<br>\n";
                        echo utf8_encode($ausgabe2)."</span>";
                    }
                echo"<br>\n";
            endfor;
            mysqli_close($mysqli);
            echo "<span class='green'>Datenbankverbindung getrennt...</span><br>\n";
            echo"****************************************<br>\n";
    /* 
     * PRÜFT OB FEHLER AUFGETRETEN SIND
     * WENN NICHT - WIRD ZUR NÄCHSTEN FUNKTION WEITERGELEITET
     * WENN DOCH - WIRD DAS FEHLER ARRAY $fehlerP AUSGEGEBEN
     */        
            if(empty($fehlerP)){
                $anfrage=array();
                $z = 0;
                    echo "Geht weiter...<br>\n";
                    foreach($gebTage as $v)
                    {
                        $anfrage[$z] = utf8_encode($v);
                        $z++;
                        echo utf8_encode($v);
                        echo"|";
                    }
                    echo "<br>\n***************************************<br>\n";
    
                    echo "<span class='green'>Weiterleitung zur Funktion Buchungsanfrage()</span></p>";
                    $vn="";
                    $nn="";
                    $email="";
                    $tel="";
                    $personen="";
                    $anmerkung="";
                    $fehlerB="";
                    buchungsanfrage($vn,$nn,$email,$tel,$personen,$anmerkung,$fehlerB,$anfrage);
                    
                } else {
                    if(count($fehlerP) == 1){
                        echo "<span class='fehler underline'>Überschneidung:</span><br>\n";
                    } else {
                        echo "<span class='fehler underline'>Überschneidungen:</span><br>\n";
                    }
                    foreach($fehlerP as $v)
                    {
                        echo utf8_encode($v);
                    }
                    echo "***************************************</p>";
                }
            
        }
    }
    
    #FUNKTION BUCHUNG ANFRAGEN:
    function buchungsanfrage($vn="",$nn="",$email="",$tel="",$personen="",$anmerkung="",$fehlerB="",$anfrage)
    {
        global $anfrage;
        echo "<p>";
        foreach($anfrage as $v)
        {
            echo $v."<br>\n";
        }
        echo "<p>";
        $fehlerV = array();
    ?>
        <h3>BuchungsanfrageForm</h3>
        <p class="green">Tage frei:</p>
        <p><?php foreach($anfrage as $v){echo"$v<br>\n";} ?></p>
        <form method="post" action="#C1"
            <label for="vn">Vorname:
                <input type="text" id="vn" name="vn"><br>
            </label>
            <label for="nn">Nachname:
                <input type="text" id="nn" name="nn"><br>
            </label>
            <label for="personen">Personen:
                <input type="number" id="personen" name="personen"><br>
            </label>
            <label for="email">Email:
                <input type="email" id="email" name="email"><br>
            </label>
            <label for="tel">Telefon:
                <input type="text" id="tel" name="tel"><br>
            </label>
            <label for="anmerkung">Anmerkung:
                <textarea id="anmerkung" name="anmerkung"></textarea><br>
            </label>
            <input type="hidden" name="datum">
            <input type="submit" name="anfragen" value="Anfragen">
            <input type="submit" value="Verwerfen">
        </form>
    <?php
    
    }
    
    function buchungsanfrageVerarbeiten()
    {
        echo"<h3>Verarbeitung...</h3>";
        !empty(filter_input(INPUT_POST, "vn", FILTER_SANITIZE_ENCODED))
                    && is_string(filter_input(INPUT_POST, "vn", FILTER_SANITIZE_ENCODED)) 
                        ? $vn = ucwords(trim($_POST["vn"], "- '")) : $vn = "";
    
        !empty(filter_input(INPUT_POST, "nn", FILTER_SANITIZE_ENCODED))
                && is_string(filter_input(INPUT_POST, "nn", FILTER_SANITIZE_ENCODED)) 
                    ? $nn = ucwords(trim($_POST["nn"], "- '")) : $nn = "";
    
        !empty(filter_input(INPUT_POST, "email", FILTER_SANITIZE_ENCODED))
                && is_string(filter_input(INPUT_POST, "email", FILTER_SANITIZE_ENCODED)) 
                    ? $email = trim($_POST["email"]) : $email = "";
    
        !empty(filter_input(INPUT_POST, "tel", FILTER_SANITIZE_ENCODED)) 
                && is_string(filter_input(INPUT_POST, "tel", FILTER_SANITIZE_ENCODED)) 
                    ? $tel = trim($_POST["tel"]) : $tel = "";
    
        !empty(filter_input(INPUT_POST, "personen", FILTER_SANITIZE_ENCODED)) 
                && is_string(filter_input(INPUT_POST, "personen", FILTER_SANITIZE_ENCODED)) 
                    ? $personen = trim($_POST["personen"]) : $personen = "";
    
        !empty(filter_input(INPUT_POST, "anmerkung", FILTER_SANITIZE_ENCODED))
                && is_string(filter_input(INPUT_POST, "anmerkung", FILTER_SANITIZE_ENCODED)) 
                    ? $anmerkung = trim($_POST["anmerkung"]) : $anmerkung = "";
        
        !empty(filter_input(INPUT_POST, "anfrage", FILTER_SANITIZE_ENCODED)) 
                && is_string(filter_input(INPUT_POST, "anfrage", FILTER_SANITIZE_ENCODED)) 
                    ? $anfrage = trim($_POST["anfrage"]) : $anfrage = "";
        
        $fehlerV = array();
    
        # Individuelle Prüfungen der Eingaben
        # Hier werden Fehlermeldungen erzeugt, falls Eingaben nicht korrekt sind oder Felder nicht ausgefüllt wurden
    
        if(empty($vn)){
            $fehlerV["vn"] = "Bitte geben Sie Ihren <b>Namen</b> ein";
        } elseif(! preg_match("@^[A-Za-z-'ÄÖÜäöü ]+$@", $vn)){
            $fehler["vn"] = "Es sind nur <b>Buchstaben, Leerzeichen und ' ` ´ -</b>  erlaubt";
        }
        if(empty($nn)){
            $fehlerV["nn"] = "Bitte geben Sie Ihren <b>Namen</b> ein";
        } elseif(! preg_match("@^[A-Za-z-'ÄÖÜäöü ]+$@", $nn)){
            $fehlerV["nn"] = "Es sind nur <b>Buchstaben, Leerzeichen und ' ` ´ -</b>  erlaubt";
        }
        if(empty($email)){
            $fehlerV["email"] = "Bitte geben Sie Ihre <b>Email</b> ein";
        }elseif(filter_var($email, FILTER_VALIDATE_EMAIL) === false){
            $fehlerV["email"] = "<b>Email</b> wurde nicht korrekt eingegeben";
        }
        if(!empty($tel)){
            if(!preg_match("@^[0-9-/+ ]+$@",$tel)){
                $fehlerV["tel"] = "Es sind nur <b>Zahlen, +, / und Leerzeichen</b>  erlaubt";
            }
        }
        if(empty($personen)){
            $fehlerV["personen"] = "Bitte geben Sie die <b>Personenanzahl</b> an";
        }elseif(!is_numeric($personen)){
            $fehlerV["personen"] = "Personen Fehler";
        }elseif ($personen<0 && $personen>10){
            $fehlerV["personen"] = "Ungültige Personenanzahl";
        }
        
        if(count($fehlerV) > 0){
            buchungsanfrage($vn,$nn,$email,$tel,$anmerkung,$personen,$fehlerV,$anfrage);
        }else{
            
        }
    
    }
    ?>
    wäre echt super wenn da jemand durchblickt...

  • #2
    Hallo!

    "Klappt nicht" ist keine gültige Fehlerbeschreibung. Debugge und finde heraus warum, bricht dein Problem ein konkrete kleine Teile herunter, damit wirst du hier auch Hilfe bekommen. So vermutlich eher nicht, wenn du hier eine Tonne Code rein wirfst und sagst "es klappt nicht".

    http://php-de.github.io/jumpto/leitfaden/

    Und für PHP-Code bitte hier die PHP-Code-Tags im Forum verwenden. Danke.
    The string "()()" is not palindrom but the String "())(" is.

    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
    PHP.de Wissenssammlung | Kein Support per PN

    Kommentar


    • #3
      Ich habe mir jetzt einfach mal erlaubt den Code des TE in PHP Tags zu kopieren, da ich ihn ohne Syntax-highliting nicht lesen wollte.


      PHP-Code:
      <?php
          
      if(isset($_POST["pruefen"])){
              
      verfuegbarkeitP();
          } elseif(isset(
      $_POST["anfragen"])){
              
      BuchungsanfrageVerarbeiten();
          } else {
              
      verfuegbarkeitF();
          }


      #FUNKTION AUSGEBEN BEGINN:
      function verfuegbarkeitF($ap="",$anTag=""$anMonat="",$anJahr="",$abTag="",$abMonat="",$abJahr="",$fehlversuche="0")
      {
          
      /* ERZEUGT DIE DATEN FÜR DAS AUTO FILL IN */
          
          
      if($anTag === ''){
          
      $anTag date('j');
          }
          if(
      $anMonat === ''){
              
      $anMonat date('n');
          }
          if(
      $anJahr === ''){
              
      $anJahr date('Y');
          }
          if(
      $abTag === ''){
              
      $morgen  mktime(0000date("d")+10);
              
      $abTag date('j',$morgen);
          }
          if(
      $abMonat === ''){
              
      $abMonat date('n');
          }
          if(
      $abJahr === ''){
              
      $abJahr date('Y');
          }
      ?>
          <h3>Prüfen Sie die Verfügbarkeit</h3>
      <?php
          
      if($fehlversuche >= 3){
      # GIBT DAS FEHLER-ARRAY BEIM DRITTEN FEHLVERSUCH AUS:

              
      if(!empty($fehlerB)){
                  echo 
      "<br>";
                  
      $i 0;
                  foreach (
      $fehlerB as $k => $v
                  {
                      
      $i++;
                      echo 
      "<p class='fehler_2'>Error_$i$v</p>";
                  }
              } 
          }
          if (
      $fehlversuche >=1){
              echo 
      "<p>Fehlversuche: $fehlversuche</p>";
          }
      ?>
      <!-- EINGABEFORMULAR -->
          <form action="#main_header" method="post" style="margin:20px 0 15px 13px;">

              <label for="ap">Unterkunft:<br>
                  <input type="radio" name="ap" id="ap" value="AP_1" checked>Stoß im Himmel 3<br>
              </label>
          <!-- Ankunftsdatum Label und Eingabefeld -->
              <label class="labC" for="anreisedatum">Ankunftsdatum<br>
              <div id="anreisedatum" class="inpC_2" <?php if(!empty($fehlerB["anreiseDatum"])){echo"style='border:1px solid red;'";}elseif(!empty($fehlerB['dauer'])){echo"style='border:1px solid red;'";}?>>
                  <!-- Anreisetag Label und Eingabefeld -->
                  <lable for="anTag"><span class="hidden">Anreisetag</span>
                      <input class="inp_die_A" <?php if(!empty($fehlerB["anTag"])){ echo "style='border:1px solid red !important;'";}?> id="anTag" name="anTag" type="number" min="1" max="31" value="<?=$anTag?>">
                  </lable>
                  <!-- Ankunftsmonat Label und Eingabefeld -->
                  <lable for="anMonat"><span class="hidden">Anreisemonat</span>
                      -&nbsp;<input <?php if(!empty($fehlerB["anMonat"])){ echo "style='border:1px solid red !important;'";}?> class="inp_die_B" id="anMonat" name="anMonat" type="number" min="1" max="12" value="<?=$anMonat?>">
                  </lable>
                  <!-- Ankunftsjahr Label und Eingabefeld -->
                  <lable for="anJahr"><span class="hidden">Anreisejahr</span>
                      -&nbsp;<input class="inp_die_C" <?php if(!empty($fehlerB["anJahr"])){ echo "style='border:1px solid red !important;'";}?> id="anJahr" name="anJahr" type="number" min="2015" max="2025" value="<?=$anJahr?>">
                  </lable>
              </div>
              </label>

              <span style="display:inline-block;width:9px;vertical-align:baseline;text-align:center;">/</span>
              <!-- Abreisedatum Label und Eingabefeld -->
              <label class="labC" for="abreisedatum">Abreisedatum<br>
              <div id="abreisedatum" class="inpC_2" <?php if(!empty($fehlerB["abreiseDatum"])){echo"style='border:1px solid red;'";}elseif(!empty($fehlerB['dauer'])){echo"style='border:1px solid red;'";}?>>
                  <!-- Abreisetag Label und Eingabefeld -->
                  <lable for="abTag"><span class="hidden">Abreisetag</span>
                      <input class="inp_die_A" <?php if(!empty($fehlerB["abTag"])){ echo "style='border:1px solid red !important;'";}?> id="abTag" name="abTag" type="number" min="1" max="31" value="<?=$abTag?>">
                  </lable>
                  <!-- Abreisemonat Label und Eingabefeld -->
                  <lable for="abMonat"><span class="hidden">Abreisemonat</span>
                      -&nbsp;<input class="inp_die_B" <?php if(!empty($fehlerB["abMonat"])){ echo "style='border:1px solid red !important;'";}?> id="abMonat" name="abMonat" type="number" min="1" max="12" value="<?=$abMonat?>">
                  </lable>
                  <!-- Abreisejahr Label und Eingabefeld -->
                  <lable for="abJahr"><span class="hidden">Abreisejahr</span>
                      -&nbsp;<input class="inp_die_C" <?php if(!empty($fehlerB["aBJahr"])){ echo "style='border:1px solid red !important;'";}?> id="abJahr" name="abJahr" type="number" min="2015" max="2025" value="<?=$abJahr?>">
                  </lable>
              </div>
              </label>
              <input type="submit" name="pruefen" class="sendBut inpB_2" value="Prüfen">
              <input type="hidden" name="fehlversuche" value="<?=$fehlversuche?>">
          </form>
      <?php
      }
      function 
      verfuegbarkeitP()
      {
          
      $fehlerB = array();
          
          
      $tage = array ("01""02""03""04""05""06""07""08""09""10""11",
                          
      "12""13""14""15""16""17""18""19""20""21""22""23""24""25",
                          
      "26""27""28""29""30""31");
          
      $monate = array("1""2""3""4""5""6",
                          
      "7""8""9""10""11""12");
          
      $jahre = array("2015""2016""2017""2018""2019""2020""2021""2022",
                          
      "2023""2024""2025");
          
      /* FILTER INPUT */
          
      !empty(filter_input(INPUT_POST"ap"FILTER_SANITIZE_ENCODED))
                  && 
      is_string(filter_input(INPUT_POST"ap"FILTER_SANITIZE_ENCODED)) 
                      ? 
      $ap trim($_POST["ap"]) : $ap "";
          
          !empty(
      filter_input(INPUT_POST"anTag"FILTER_SANITIZE_ENCODED))
                  && 
      is_string(filter_input(INPUT_POST"anTag"FILTER_SANITIZE_ENCODED)) 
                      ? 
      $anTag trim($_POST["anTag"]) : $anTag "";
          
          !empty(
      filter_input(INPUT_POST"anMonat"FILTER_SANITIZE_ENCODED))
                  && 
      is_string(filter_input(INPUT_POST"anMonat"FILTER_SANITIZE_ENCODED)) 
                      ? 
      $anMonat trim($_POST["anMonat"]) : $anMonat "";
          
          !empty(
      filter_input(INPUT_POST"anJahr"FILTER_SANITIZE_ENCODED))
                  && 
      is_string(filter_input(INPUT_POST"anJahr"FILTER_SANITIZE_ENCODED)) 
                      ? 
      $anJahr trim($_POST["anJahr"]) : $anJahr "";
          
          !empty(
      filter_input(INPUT_POST"abTag"FILTER_SANITIZE_ENCODED))
                  && 
      is_string(filter_input(INPUT_POST"abTag"FILTER_SANITIZE_ENCODED)) 
                      ? 
      $abTag trim($_POST["abTag"]) : $abTag "";
          
          !empty(
      filter_input(INPUT_POST"abMonat"FILTER_SANITIZE_ENCODED))
                  && 
      is_string(filter_input(INPUT_POST"abMonat"FILTER_SANITIZE_ENCODED)) 
                      ? 
      $abMonat trim($_POST["abMonat"]) : $abMonat "";
          
          !empty(
      filter_input(INPUT_POST"abJahr"FILTER_SANITIZE_ENCODED))
                  && 
      is_string(filter_input(INPUT_POST"abJahr"FILTER_SANITIZE_ENCODED)) 
                      ? 
      $abJahr trim($_POST["abJahr"]) : $abJahr "";
          
          !empty(
      filter_input(INPUT_POST"fehlversuche"FILTER_SANITIZE_ENCODED))
                  && 
      is_string(filter_input(INPUT_POST"fehlversuche"FILTER_SANITIZE_ENCODED)) 
                      ? 
      $fehlversuche trim($_POST["fehlversuche"]) : $fehlversuche "";
          
      /* AN- UND ABREISE DATUM FORMATIEREN */
          
      $anreiseDatum date('d - m - Y'mktime(0,0,0,$anMonat,$anTag,$anJahr));
          
      $abreiseDatum date('d - m - Y'mktime(0,0,0,$abMonat,$abTag,$abJahr));
          
      $anreiseMK mktime(0,0,0,$anMonat,$anTag,$anJahr);
          
      $abreiseMK mktime(0,0,0,$abMonat,$abTag,$abJahr);
          
      /* SPEICHER FEHLERMELDUNGEN VON DER FORMULAREINGABE */
          
          
      if(checkdate($anMonat$anTag$anJahr) === false) {
              
      $fehlerB['anreiseDatum'] = "Ungültiges Anreisedatum";
          }
          if(
      checkdate($abMonat$abTag$abJahr) === false) {
              
      $fehlerB['abreiseDatum'] = "Ungültiges Abreisedatum";
          }
          if(!
      in_array($anTag$tage)){
                  
      $fehlerB["anreiseDatum"] = "Bitte wählen Sie einen <b>Tag</b> aus";
          }
          if(!
      in_array($abTag$tage)){
              
      $fehlerB["abreiseDatum"] = "Bitte wählen Sie einen <b>Tag</b> aus";
          }
          if(!
      in_array($anMonat$monate)){
              
      $fehlerB["anreiseM"] = "Bitte wählen Sie ein <b>Monat</b> aus";
          }
          if(!
      in_array($abMonat$monate)){
              
      $fehlerB["abreiseM"] = "Bitte wählen Sie ein <b>Monat</b> aus";
          }
          if(!
      in_array($anJahr$jahre)){
              
      $fehlerB["anreiseY"] = "Bitte wählen Sie ein <b>Jahr</b> aus";
          }
          if(!
      in_array($abJahr$jahre)){
              
      $fehlerB["abreiseY"] = "Bitte wählen Sie ein <b>Jahr</b> aus";
          }
          if(empty(
      $ap)){
              
      $fehlerB["ap"] = "Bitte wählen Sie eine <b>Unterkunft</b> aus";
          }
          if(
      $anreiseMK >= $abreiseMK){
              
      $fehlerB["dauer"] = "Ungültige Buchungsdauer";
          }
          
      /* WENN KEINE FEHLER BEI DER EINGABE FORHANEN SIND WIRD ZUR PRÜFUNG WEITERGELEITET */
          
          
      if(count($fehlerB) > 0){
              
      $fehlversuche ++;
              
      verfuegbarkeitF($ap,$anTag,$anMonat,$anJahr,$abTag,$abMonat,$abJahr,$fehlversuche,$fehlerB);
          } else {
              
              echo 
      "<h3>Wird überprüft...</h3>";
              
              require 
      'functions/zeitdifferenz.inc.php';
              
              
      $dauer zeitdifferenz($anreiseMK$abreiseMK"Tage");
             
              echo 
      "<p>**************************************<br>\nAnreisetag: $anreiseDatum"
                      
      "<br>\nAbreisetag: $abreiseDatum<br>\n__________________________________<br>\n";

              echo 
      "Die Buchungsdauer beträgt $dauer";
              if(
      $dauer == 1){
                  echo 
      " Nacht.<br>\n**************************************</p>";
              } else {
                  echo 
      " Nächte.<br>\n**************************************</p>";
              }
              echo 
      "<p>$anreiseMK<br>    $abreiseMK</p>";
              
              require 
      'functions/DB_test_open.inc.php';
              
              
          
      /* SQL Abfrage ausführen */
              
      $abfrage mysqli_query($mysqli,"SELECT * from buchungen");
              
          
      /* Anzahl der Datensätze ermitteln und ausgeben */
              
      $num mysqli_num_rows($abfrage);
                  
          
      /* Datensätze aus Ergebnis ermitteln, in Array speichern und ausgeben */
          
      echo "<p>";
              echo 
      "<span class='underline green'>$num Datensätze gefunden</span><br>\n";
              while (
      $dsatz mysqli_fetch_assoc($abfrage))
              {
                  
      $ausgabe $dsatz["id"] . ", "
                  
      $dsatz["apartment"] . ", "
                  
      $dsatz["belegt"] . ", "
                  
      $dsatz["anmerkung"] . "<br>\n";
                  echo 
      utf8_encode($ausgabe);
              }
              echo 
      "</p>";
              
              echo 
      "<p>";
              
              
      $fehlerP = array();
              
      $gebTage = array();
              
              
      /* SCHLEIFE, die alle Daten zwischen den zwei angefragen Tagen(Daten) generiert */        
              
      for($i 0$i<=$dauer$i++):

                  
      $t date('d-m-Y',mktime(000$anMonat, ($anTag+$i), $anJahr));
                  
      $d date('Y-m-d',mktime(000$anMonat, ($anTag+$i), $anJahr));
                  
                  echo 
      "Tag ".($i+1).": &nbsp;$t";
                  
      $gebTage[$i] = $t;
                  
      /* VERSCHACHTELTE SCHLEIFE die jeden angefragen Tag auf eine schon vorhandene Buchung kontrolliert */           
                  
      $abfrage2 mysqli_query($mysqli,"SELECT * from buchungen WHERE belegt='$d'");
                      while (
      $dsatz2 mysqli_fetch_assoc($abfrage2))
                      {
                          echo 
      "<span class='fehler'> - belegt! ";
                          
      $ausgabe2$dsatz2['anmerkung'];
                          
      $fehlerP[$dsatz2['belegt']]= $dsatz2['anmerkung'].", ".$dsatz2['belegt']."<br>\n";
                          echo 
      utf8_encode($ausgabe2)."</span>";
                      }
                  echo
      "<br>\n";
              endfor;
              
      mysqli_close($mysqli);
              echo 
      "<span class='green'>Datenbankverbindung getrennt...</span><br>\n";
              echo
      "****************************************<br>\n";
      /* 
       * PRÜFT OB FEHLER AUFGETRETEN SIND
       * WENN NICHT - WIRD ZUR NÄCHSTEN FUNKTION WEITERGELEITET
       * WENN DOCH - WIRD DAS FEHLER ARRAY $fehlerP AUSGEGEBEN
       */        
              
      if(empty($fehlerP)){
                  
      $anfrage=array();
                  
      $z 0;
                      echo 
      "Geht weiter...<br>\n";
                      foreach(
      $gebTage as $v)
                      {
                          
      $anfrage[$z] = utf8_encode($v);
                          
      $z++;
                          echo 
      utf8_encode($v);
                          echo
      "|";
                      }
                      echo 
      "<br>\n***************************************<br>\n";

                      echo 
      "<span class='green'>Weiterleitung zur Funktion Buchungsanfrage()</span></p>";
                      
      $vn="";
                      
      $nn="";
                      
      $email="";
                      
      $tel="";
                      
      $personen="";
                      
      $anmerkung="";
                      
      $fehlerB="";
                      
      buchungsanfrage($vn,$nn,$email,$tel,$personen,$anmerkung,$fehlerB,$anfrage);
                      
                  } else {
                      if(
      count($fehlerP) == 1){
                          echo 
      "<span class='fehler underline'>Überschneidung:</span><br>\n";
                      } else {
                          echo 
      "<span class='fehler underline'>Überschneidungen:</span><br>\n";
                      }
                      foreach(
      $fehlerP as $v)
                      {
                          echo 
      utf8_encode($v);
                      }
                      echo 
      "***************************************</p>";
                  }
              
          }
      }

      #FUNKTION BUCHUNG ANFRAGEN:
      function buchungsanfrage($vn="",$nn="",$email="",$tel="",$personen="",$anmerkung="",$fehlerB="",$anfrage)
      {
          global 
      $anfrage;
          echo 
      "<p>";
          foreach(
      $anfrage as $v)
          {
              echo 
      $v."<br>\n";
          }
          echo 
      "<p>";
          
      $fehlerV = array();
      ?>
          <h3>BuchungsanfrageForm</h3>
          <p class="green">Tage frei:</p>
          <p><?php foreach($anfrage as $v){echo"$v<br>\n";} ?></p>
          <form method="post" action="#C1"
              <label for="vn">Vorname:
                  <input type="text" id="vn" name="vn"><br>
              </label>
              <label for="nn">Nachname:
                  <input type="text" id="nn" name="nn"><br>
              </label>
              <label for="personen">Personen:
                  <input type="number" id="personen" name="personen"><br>
              </label>
              <label for="email">Email:
                  <input type="email" id="email" name="email"><br>
              </label>
              <label for="tel">Telefon:
                  <input type="text" id="tel" name="tel"><br>
              </label>
              <label for="anmerkung">Anmerkung:
                  <textarea id="anmerkung" name="anmerkung"></textarea><br>
              </label>
              <input type="hidden" name="datum">
              <input type="submit" name="anfragen" value="Anfragen">
              <input type="submit" value="Verwerfen">
          </form>
      <?php

      }

      function 
      buchungsanfrageVerarbeiten()
      {
          echo
      "<h3>Verarbeitung...</h3>";
          !empty(
      filter_input(INPUT_POST"vn"FILTER_SANITIZE_ENCODED))
                      && 
      is_string(filter_input(INPUT_POST"vn"FILTER_SANITIZE_ENCODED)) 
                          ? 
      $vn ucwords(trim($_POST["vn"], "- '")) : $vn "";

          !empty(
      filter_input(INPUT_POST"nn"FILTER_SANITIZE_ENCODED))
                  && 
      is_string(filter_input(INPUT_POST"nn"FILTER_SANITIZE_ENCODED)) 
                      ? 
      $nn ucwords(trim($_POST["nn"], "- '")) : $nn "";

          !empty(
      filter_input(INPUT_POST"email"FILTER_SANITIZE_ENCODED))
                  && 
      is_string(filter_input(INPUT_POST"email"FILTER_SANITIZE_ENCODED)) 
                      ? 
      $email trim($_POST["email"]) : $email "";

          !empty(
      filter_input(INPUT_POST"tel"FILTER_SANITIZE_ENCODED)) 
                  && 
      is_string(filter_input(INPUT_POST"tel"FILTER_SANITIZE_ENCODED)) 
                      ? 
      $tel trim($_POST["tel"]) : $tel "";

          !empty(
      filter_input(INPUT_POST"personen"FILTER_SANITIZE_ENCODED)) 
                  && 
      is_string(filter_input(INPUT_POST"personen"FILTER_SANITIZE_ENCODED)) 
                      ? 
      $personen trim($_POST["personen"]) : $personen "";

          !empty(
      filter_input(INPUT_POST"anmerkung"FILTER_SANITIZE_ENCODED))
                  && 
      is_string(filter_input(INPUT_POST"anmerkung"FILTER_SANITIZE_ENCODED)) 
                      ? 
      $anmerkung trim($_POST["anmerkung"]) : $anmerkung "";
          
          !empty(
      filter_input(INPUT_POST"anfrage"FILTER_SANITIZE_ENCODED)) 
                  && 
      is_string(filter_input(INPUT_POST"anfrage"FILTER_SANITIZE_ENCODED)) 
                      ? 
      $anfrage trim($_POST["anfrage"]) : $anfrage "";
          
          
      $fehlerV = array();

          
      # Individuelle Prüfungen der Eingaben
          # Hier werden Fehlermeldungen erzeugt, falls Eingaben nicht korrekt sind oder Felder nicht ausgefüllt wurden

          
      if(empty($vn)){
              
      $fehlerV["vn"] = "Bitte geben Sie Ihren <b>Namen</b> ein";
          } elseif(! 
      preg_match("@^[A-Za-z-'ÄÖÜäöü ]+$@"$vn)){
              
      $fehler["vn"] = "Es sind nur <b>Buchstaben, Leerzeichen und ' ` ´ -</b>  erlaubt";
          }
          if(empty(
      $nn)){
              
      $fehlerV["nn"] = "Bitte geben Sie Ihren <b>Namen</b> ein";
          } elseif(! 
      preg_match("@^[A-Za-z-'ÄÖÜäöü ]+$@"$nn)){
              
      $fehlerV["nn"] = "Es sind nur <b>Buchstaben, Leerzeichen und ' ` ´ -</b>  erlaubt";
          }
          if(empty(
      $email)){
              
      $fehlerV["email"] = "Bitte geben Sie Ihre <b>Email</b> ein";
          }elseif(
      filter_var($emailFILTER_VALIDATE_EMAIL) === false){
              
      $fehlerV["email"] = "<b>Email</b> wurde nicht korrekt eingegeben";
          }
          if(!empty(
      $tel)){
              if(!
      preg_match("@^[0-9-/+ ]+$@",$tel)){
                  
      $fehlerV["tel"] = "Es sind nur <b>Zahlen, +, / und Leerzeichen</b>  erlaubt";
              }
          }
          if(empty(
      $personen)){
              
      $fehlerV["personen"] = "Bitte geben Sie die <b>Personenanzahl</b> an";
          }elseif(!
      is_numeric($personen)){
              
      $fehlerV["personen"] = "Personen Fehler";
          }elseif (
      $personen<&& $personen>10){
              
      $fehlerV["personen"] = "Ungültige Personenanzahl";
          }
          
          if(
      count($fehlerV) > 0){
              
      buchungsanfrage($vn,$nn,$email,$tel,$anmerkung,$personen,$fehlerV,$anfrage);
          }else{
              
          }

      }
      ?>

      Kommentar


      • #4
        ich habe ein problem mit der Übergabe von Werten in die Funktion buchungsanfrage():
        PHP-Code:
        if(empty($fehlerP)){ 
                    
        $anfrage=array(); 
                    
        $z 0
                        echo 
        "Geht weiter...<br>\n"
                        foreach(
        $gebTage as $v
                        { 
                            
        $anfrage[$z] = utf8_encode($v); 
                            
        $z++; 
                            echo 
        utf8_encode($v); 
                            echo
        "|"
                        } 
                        echo 
        "<br>\n***************************************<br>\n"

                        echo 
        "<span class='green'>Weiterleitung zur Funktion Buchungsanfrage()</span></p>"
                        
        $vn=""
                        
        $nn=""
                        
        $email=""
                        
        $tel=""
                        
        $personen=""
                        
        $anmerkung=""
                        
        $fehlerB=""
                        
        buchungsanfrage($vn,$nn,$email,$tel,$personen,$anmerkung,$fehlerB,$anfrage); 
                         
                    } else { 
        ...

        PHP-Code:
        function buchungsanfrage($vn="",$nn="",$email="",$tel="",$personen="",$anmerkung="",$fehlerB="",$anfrage

        ...eigentlich sollte ich ja diesen Block nicht brauchen, oder?
        PHP-Code:
        $vn=""
                        
        $nn=""
                        
        $email=""
                        
        $tel=""
                        
        $personen=""
                        
        $anmerkung=""
                        
        $fehlerB=""
        und der aufruf der funktion dann so:
        PHP-Code:
        buchungsanfrage($anfrage); 
        ??

        Kommentar


        • #5
          PHP-Code:
          function buchungsanfrage($anfrage,$vn="",$nn="",$email="",$tel="",$personen="",$anmerkung="",$fehlerB=""

          Wenn du $anfrage an erster stelle gibst dann benötigst die anderen nicht unbedingt.

          Kommentar


          • #6
            danke

            das war sehr hilfreich ^^ danke vielmals! klappt

            Kommentar

            Lädt...
            X