David Ortmann: Kartenreservierung?

Hallo mal wieder,
kennt ihr zufällig ein kostenloses PHP-Skript (o.ä.), mit dem ich als nicht sehr erfahrener PHP-Nutzer sehr einfache Reservierungen von Sitzplätzen in einem kleinen Theater online entgegennehmen und verwalten kann?

Mehr als die Angabe der benötigten Plätze (evtl. inkl. Sitzgruppe) durch den Nutzer und eine Speicherung/Auswertung durch das Programm (Reservierungsnummer?) sowie eine kurze Meldung an den Webmaster wäre nicht nötig, also unter keinen Umständen Bezahlung o.ä..

Habt ihr da vielleicht eine Quelle im Kopf?

Würe mich über eine Antwort sehr freuen,
David Ortmann
http://www.TheatergruppeSchulpforta.de/

  1. Hi,

    Mehr als die Angabe der benötigten Plätze (evtl. inkl. Sitzgruppe) durch den Nutzer und eine Speicherung/Auswertung durch das Programm (Reservierungsnummer?) sowie eine kurze Meldung an den Webmaster wäre nicht nötig, also unter keinen Umständen Bezahlung o.ä..

    So etwas einfaches wirst Du wohl nicht finden (evt aber doch und zwar in einem Tutorial als Beispiel. Vielleicht mal Google bemühen, mitunter hat man ja doch Glück.) das ist alles schon recht elaboriert.

    Aber das ist wirklich so einfach, das kannst Du auch selber machen. Das einzige Problem vor dem Du stehst ist die Verhinderung von Doppelbuchungen. Wenn mehr als einer gleichzeitig denselben Sitz begehrt. Da Du keine großen Datenmengen hast oder hohe Fluktuation oder gar beides reicht für die Speicherung der Daten eine einfache Datei. Inhalt seien Reihen der Form "n,(f|r|b)". 'n' sei die Sitznummer und einer der Buchstaben 'f' (frei), 'r' (reserviert) oder 'b' (reserviert und schon bezahlt) zeigen die Belegung des Sitzes mit der Nummer 'n' an. Beispiel anhand eines Hauses mit 10 Sitzen, einer recht intimen Spielstätte also:
    1,f
    2,r
    3,r
    4,b
    5,b
    6,f
    7,f
    8,b
    9,b
    10,f
    Freie Plätze sind also 1,6-7,10, reserviert 2-5,8-9, von den reservierten sind schon bezahlt 4-5,8-9. Eingelesen wird das vollständig und zeilenweise und geschrieben vollständig und am Stück.
    Diese so erstellte Datei läßt sich vor gleichzeitigem Zugriff "sichern". Eine Methode dazu ist flock(). Es ist nicht einfach zu behandeln, aber da Deine Datei immer gleich groß ist und Du darauf achtest, immer alles zu lesen (file_get_contents()) und vor allem zu schreiben kannst Du die einfachste Methode wählen:
    [code lang=php

    <?php
    $fp = fopen("/tmp/lock.txt", "w+");
    // Inhalt einlesen und verarbeiten, dann ...
    if (flock($fp, LOCK_EX)) { // "sichern"
        fwrite($fp, "Das hier wandert in die Datei\n");
        flock($fp, LOCK_UN);    // "entsichern"
    } else {
        echo "Konnte Datei nicht sichern.";
    }
    fclose($fp);
    ?>
    [/code]

    Statt des einfachen Abbruchs sollte man das aber vielleicht in eine kleine Schleife packen und mit einem sleep(1) dazwischen drei-viermal versuchen bevor man ganz aufgibt.

    Wenn dann alles erfolgreich war, geht eine Mail an den Webmaster:

      
    $mailto  = "webmaster@example.org";  
    $subject = "Reservierung";  
    $body    = "Die Sitze " . $sitznummern . " wurden von " . $adresse . " reserviert";  
    $header  = "From: reservierungsscript@example.org\n";  
    $header .= "Reply-To: devnull@example.org\n";  
    $header .= "X-Mailer: Ich bin es doch, Dein Script! \n";  
    $header .= "Content-Type: text/html";  
    mail($mailto,$subject,$body,$header);  
    
    

    Dann bastelst Du noch ein Formular zu Eingabe und dann noch eines für den Admin, der die Daten ändern kann (wenn bezahlt wurde, oder abgesagt)

    Das sollte doch an einem gemütlichem Wochenende zu schaffen sein, oder?

    so short

    Christoph Zurnieden

    1. Hi,

      habe gerade mal geschaut, aber da ist ja wirklich nicht viel an Fertigware.
      Das einzge, was ich gefunden habe (aber nicht getestet!) ist der hier: [http://sourceforge.net/project/showfiles.php?group_id=24249]
      Ist von einem Deutschem für ein kleiens Theater geschrieben worden und dürfte so Dienen Anforderungen entsoprechen. Nur halt nix einfaches und will auch eine SQL-DB haben.

      Und ein bischen blöde bin ich auch, wie ich gerade festgestellt habe:

      <?php
      $fp = fopen("/tmp/lock.txt", "w+");
      // Inhalt einlesen und verarbeiten, dann ...
      if (flock($fp, LOCK_EX)) { // "sichern"

      Hier muß natürlich die Datei noch mal eingelesen und kontrolliert werden, da sonst zwischenzeitliche Änderungen von anderen Nutzern überschrieben würden.

      Nä, watt peinlich wieder! ;-)

      fwrite($fp, "Das hier wandert in die Datei\n");
          flock($fp, LOCK_UN);    // "entsichern"
      } else {
          echo "Konnte Datei nicht sichern.";
      }
      fclose($fp);
      ?>

        
        
      so short  
        
      Christoph Zurnieden