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.
}

?>