Quellcode

# Quellcode der Funktionsbibliothek

    <?
    /*

       Das ist die Datei header.inc. Sie enthält diverse Variablen und
       Funktionen für das Gästebuch, die von mehreren anderen PHP-Dateien
       gebraucht werden. Daher werden sie in dieser Datei formuliert und
       später von den anderen Dateien eingebunden.

    */

    // Variablen die wir immer brauchen

    $datadir="Gastbuch/";			// Das Gastbuchverzeichnis
    $buchfile=$datadir . "gastbuch.txt";	// Die Gastbuchdatei
    $trenner="+++___+++";			// Trennlinie zwischen Einträgen

    // Die folgende Funktion schreibt einen Eintrag ins Gastbuch.
    // Sie erwartet zwei Parameter, den Namen des Autors und den Eintrag selbst.

    function add_entry($name,$eintrag){
      global $trenner;	// Bezug auf globale Variablen
      global $buchfile;	// trenner und buchfile

      // Wir lesen Datum und Uhrzeit
      $zeit=getdate(time());
      // und verwandeln das in einen lesbaren Satz.
      $ts=sprintf("%02d.%02d.%d - %02d:%02d",$zeit[mday],$zeit[mon],$zeit[year],$zeit[hours],$zeit[minutes]);

      $fp=fopen($buchfile,'a');	// Öffnen der Datei zum Anhängen
      if ($fp){			// Wenn es geklappt hat
        fputs($fp,$trenner . "\n");	//   schreiben wir den Trenner
        fputs($fp,$ts . "\n");	//   die Zeitangabe
        fputs($fp,$name ."\n");	//   den Namen und
        fputs($fp,$eintrag . "\n"); //   den Eintrag in die Datei
        fclose($fp);		//   schließen sie wieder und
        return 1;			//   geben eine 1 zurück.
      } else return 0;    		// wenn nicht geben wir eine 0 zurück.
    }

    // Die folgende Funktion ließt einen bestimmten, durch eine Nummer
    // bezeichneten Eintrag aus der Datei. Die Nummer wird der Funktion
    // als Parameter mitgegeben. Der erste Eintrag hat die Nummer 0

    function get_entry($nr){
      global $trenner;	// Bezug auf die globalen Variablen
      global $buchfile;	// trenner und buchfile

      $i=0;			// Zählervariable auf 0 setzen.
      $fp=fopen($buchfile,'r');		// Öffnen der Datei zum Lesen
      if($fp){				// Wenn es geklappt hat
        while ($line = fgets($fp, 4096)){	//  Wir lesen Zeilen aus der Datei bis zu ihrem Ende
          if (strstr($line,$trenner))$i++;  //    Wenn wir auf eine Trennlinie
    					//    stoßen, wird der Zähler um eins
    					//    erhöht.
          if ($i == $nr){			//    Wenn der Zähler die Nummer des
    	$a[]=$line;			//    gewünschten Eintrags ist, lesen
          }					//    wir die Zeilen in ein Array
        }
        fclose($fp);			//  Schließen der Datei
        return $a;				//  Das Array, das den gewünschten
    					//  Eintrag enthält wird
    					//  zurückgegeben.
      } else return 0;			// Wenn es nicht geklappt hat oder
    					// kein Eintrag dieser Nummer
    					// gefunden wurde, geben wir 0
    					// zurück.
    }

    // Die nächste Funktion zählt die Einträge des Gästebuchs und gibt
    // die Anzahl der Einträge als Funktionswert zurück. Sie erwartet
    // keine Parameter.

    function count_entry(){
      global $trenner;	// Bezug auf die globalen Variablen
      global $buchfile;	// trenner und buchdatei

      $i=0;			// Zählervariable auf 0 setzen
      if (!file_exists($buchfile)) return 0;// Wenn die Datei nicht existiert
                                            // geben wir 0 zurück und beenden
                                            // damit die Funktion.
      $fp=fopen($buchfile,'r');		// Öffnen der Datei zum Lesen
      if($fp){				// Wenn es geklappt hat
        while ($line = fgets($fp, 4096)){	//  lesen wir Zeilenweise bis zum Ende
          if (strstr($line,$trenner))$i++;	//   Wenn wir einen Trenner lesen
    					//   wird der Zähler um eins erhöht
        }
        fclose($fp);			//  Schließen der Datei
        return $i;				//  Wert des Zählers zurückgeben
      } else return 0;			// Im Fehlerfall wird 0
    					// zurückgegeben.
    }

    ?>