#Pfad für die Gaestebuchdateien (z.b: "gbtexte/"
#Das verzeichnisd muss existieren
#Schreib und Leserechte müssen eingerichtet sein
$pfad="";
#name der Datei, die die Haupteinträge enthält
#(wird automatisch angelegt)
$gbeintraege=$pfad."gbtexte.txt";
#Maximale Anzahl pro angezeigte Seite(änderbar)
$maxproseite=10;
#Passwort für den Adminbereich, solltest du ändern
$adminpasswort="only4admins";
# Nur fürs Auge stellt die entsprechenden Smily's dar.
$smiles= array();
$smiles[1]='../images/daumen1.jpg';
$smiles[2]='../images/daumen2.jpg';
$smiles[3]='../images/daumen3.jpg';
?>
wir freuen uns über euren eintrag und hoffen euch hier öfter begrüssen zu können.
if(!$sent) #Gästebuch wird aufgerufen
{
auslesen(); #Vorhandene Einträge auslesen,siehe Function
anzeigen("normal"); #schreiben der normalen Gaestebuchansicht,siehe Function
}
elseif($sent and $sent=="neu") #Neuer Eintrag wurde aufgerufen
eingabeform();
elseif($sent and $sent=="neusave") #Neuer Eintrag wurde abgeschickt
{
#Prüfen ob die Felder Nickname oder Beitrag gültige Werte enthalten
#dazu werden alle "whitspaces" entfernt
if(strlen(preg_replace("/\s/","",$nick))<2 or strlen(preg_replace("/\s/","",$beitrag))<10) #Kein Eintrag in name oder Beitrag
{
echo "
";
eingabeform(); #Eingabeformular erneut aufrufen
exit;
}
#Eingaben waren ok, daten speichern, siehe entsp. Function
datenspeichern();
auslesen(); # einträge erneut auslesen und aktuell darstellen
anzeigen("normal");
}
elseif($sent and $sent=="admin") #Adminbereich geklickt
{
pwform(); #Passwortabfrage aufrufen
}
elseif($sent and $sent=="pw") #Passwort wurde eingegeben
{
if($pass!=$adminpasswort) #Passwort falsch
{
echo "
falsches passwort du trottel!!!
";
pwform(); #Passwortform erneut aufrufen
exit;
}
#Passwort ok
auslesen(); #Daten erneut einlesen
anzeigen("bearb"); # Daten mit auswahlbuttons anzeigen
exit;
}
#Zustand tritt ein nach einer Änderung
#Dadurch braucht das passwort nicht nochmal eingegeben werden
elseif($sent and $sent=="pwok")
{
auslesen();
anzeigen("bearb");
exit;
}
elseif($sent and $sent=="bearbeiten") #Datensatz zum bearbeiten ausgewählt
{
bearbeitenform();#formular zum Bearbeiten aufrufen, siehe Funktion
exit;
}
elseif($sent and $sent=="bearbeiten_save") #Änderung wurde ausgeführt
{
if($bart=="loeschen") #löschen wurde gewählt
{
auslesen(); #Daten auslesen
$dat=fopen($gbeintraege,"w"); #Datei mit den Einträgen zum Überschreiben öffnen
#rückwärts durlaufen damit die alte Reihenfolge bleibt
# data liegt ja als reverses-array vor
for($i=count($data)-1;$i>=0;$i--)
{
if($satznr!=substr($data[$i],0,strlen($data[$i])-1))
#datensatz nicht gewählt
#Wieder eintragen,daurch entfällt der gewählte eintrag
fputs($dat,substr($data[$i],0,strlen($data[$i])-1)."\n");
}
fclose($dat); #Datei schließen
if(file_exists($pfad.$satznr)) #dazugehörige Beitragsdatei suchen
unlink($pfad.$satznr); #ebenfalss löschen
}
else #Datensatz bearbeiten wurde gewählt
{
#Kommentartext erzeugen
$txt="";
$datum_a=date("d.m.Y, H:i:s"); #Datum erzeugen
$txt.='
';
$txt.='
';
$txt.='Kommentar von :Mathe-Arzt';
$txt.='('.$datum_a.')
';
# prüfen ob Kommentartext größer 9 Zeichen
#wenn nein dann ignorieren
if(strlen(preg_replace("/\s/","",$beitrag))>9)
{
#sonst datei zum anhängen öffnen,Kommentar zur datei dazu schreiben
if(file_exists($pfad.$satznr))
{
$daten=fopen($pfad.$satznr,"a");
fputs($daten,$txt);
fclose($daten);
}
}
}
auslesen(); #daten erneut auslesen
anzeigen("bearb"); #aktuallisiert mit bearbeitenbuttons anzeigen
}
?>
#Hier wird die Datei mit den Einträgen ausgelesen
#und als reverses(neuster Eintrag oben) Array zurückgegeben
#Beachte: in allen functionen werden die entsprechenden
#Variablen, die benötigt werden nochmals
#als global angegeben.
function auslesen()
{
global $data;
global $gbeintraege;
if(!file_exists($gbeintraege)) #Keine Eintraege
$daten=array(); #leeres Array
else
$daten=file($gbeintraege); #Einträge auslesen
$data=array_reverse($daten); # Letzer Eintrag nach oben
}
?>
#Diese Function übernimmt die Anzeige der Einträge
#der übergebene Parameter entscheidet
#ob die anzeige im Ansichtenmodus(Besucher)
#oder Bearbeitenmodus (admin)
#angezeigt wird.
function anzeigen($art)
{
global $PHP_SELF;
global $maxproseite;
global $szpara;
global $data;
global $satznr;
global $pfad;
#Anzeige für den Besucher
if($art=="normal")
{
?>
";
}
#vorhandene Dateien einbinden.
for($i=$startwert;$i<=$endwert;$i++)
{
if(file_exists($pfad.substr($data[$i],0,strlen($data[$i])-1)))
{
include($pfad.substr($data[$i],0,strlen($data[$i])-1));
#auswahl buttons für den Admin
#wird im Besuchermodus ignoriert
if($art!="normal")
{
echo "
";
}
}
}
}
#schreibt das Formular für den Gästebucheintrag
function eingabeform()
{
global $nick;
global $email;
global $web;
global $beitrag;
global $wertung;
global $PHP_SELF;
echo '';
echo '';
}
#speichert den Gaestebucheintrag
function datenspeichern()
{
global $nick;
global $email;
global $web;
global $beitrag;
global $wertung;
global $PHP_SELF;
global $smiles;
global $pfad;
global $gbeintraege;
$datum_a=date("Y.m.d_H.i.s");
# Name der Datei für den neuen Eintrag anhand des Datums vergeben.
$datum="gb_".strtr($datum_a,".","-").".htm";
$datum_a=date("d.m.Y, H:i:s");
$dat =$gbeintraege;
# Datei für die Einträge öffnen, existiert diese noch nicht wird sie angelegt
# Eintrag ans ende der datei schreiben
if(!file_exists($dat))
$daten=fopen($dat,"w");
else
$daten=fopen($dat,"a");
fputs($daten,$datum."\n");
fclose($daten);
# erstellen der HTML-Datei für den neuen Eintrag.
$daten=fopen($pfad.$datum,"w");
fputs($daten,'
');
fclose($daten);
}
#schreibt das Formular für das Adminpasswort
function pwform()
{
global $PHP_SELF;
echo '';
}
#Schreibt die Form für den Bearbeitenmodus
function bearbeitenform()
{
global $pfad;
global $PHP_SELF;
global $satznr;
global $bart;
global $beitrag;
global $sent;
include($pfad.$satznr);#Entsprechenden eintragstext nochmal mit anzeigen
# form mit auswahl : löschen oder bearbeiten
echo '