Weiter Zurück [Inhalt] Online Suche im Handbuch

49.1 Datenbank ohne Datenbank

Nicht jeder Provider bietet eine Datenbank an, aber fast alle unterstützen CGI-BIN´s.

Perls generische Datenbankschnittstelle DBI kann man auch mit einem Treiber für ordinäre Dateien ansteuern - statt mit einer Datenbank zu kommunizieren, verwaltet das DBD::File-Modul lesbare Dateien mit Komma - separierten Einträgen, die man mit SQL-Zugriffen abfragen kann !!!

Hinweise zur Installation des Treibers und einiger abhängiger Module, sowie zur Aktivierung des vorgestellten Skripts addr.pl finden sich im Abschnitt "Installation" am Ende des Artikels.

Schauen Sie sich hier zu bitte die Abbildung 1 an: http://www.linux-magazin.de/ausgabe.1999.05/DBflat/addr.gif

Abbildung 1 zeigt das Eingangsformular, das das CGI-Skript addr.pl, wenn es einmal in cgi-bin installiert und initialisiert ist, beim ersten Aufruf in den Browser zaubert: Zunächst zeigt addr.pl keinerlei Daten an (auch wenn die Tabelle schon mit Einträgen gefüllt wäre), sondern nur eine Liste der Buchstaben des Alphabets, deren jeder mit einem Link verknüpft ist, der addr.pl nach einem Eintrag suchen läßt, dessen Vorname oder Nachname mit dem betreffenden Buchstaben anfängt. Ein Klick auf den "Alle Einträge" - Link zeigt das ganze Notizbuch an.

Weiter wird ein Suchfeld angezeigt, das Suchstrings entgegennimmt. Falls Suche starten gedrückt wird, sucht addr.pl ebenfalls in den Vorname/Nachname-Feldern der Tabelle nach Übereinstimmungen und zeigt die Ergebnisse in einer Liste an. Klickt der Benutzer auf den Neuer Eintrag-Knopf, wird ein Formular nach Abbildung 2 angezeigt:

name="http://www.linux-magazin.de/ausgabe.1999.05/DBflat/edit.gif>"

Der nach dem Ausfüllen der Felder gedrückte Speichern-Knopf läßt die Daten in die Datenbank wandern. Die Einträge in der Adreßbuchdatei liegen bei dem im Skript verwendeten DBD::File-Treiber in der Datei "addressbook/addressbook" unterhalb des CGI-Verzeichnisses, der Inhalt sieht etwa folgendermaßen aus:


id,     fname,  lname,  phone,  email,  addr,   notes
9214031581423,Freddy,Holler,089/1234567,holler@aol.com,"Bon-Scott-Weg 3,89834 Zuffenhausen",
"Alte Email: fredy@aol.com"
9214038931493,Herbert,Rigatoni,08234/234435,
herbertR@yahoo.com,"In der Grube 24, 82342 Kutzenbach","Geburtstag: 1.3."

Die erste Zeile legt hierbei die Spaltennamen fest. Sie lauten genauso wie die später verwendeten CGI-Parameternamen, das erspart Kopfschmerzen bei der Programmierung. "fname" steht dabei für den Vornamen (First Name), lname für den Nachnamen (Last Name) usw. Einträge in den Datenzeilen werden durch Kommata getrennt. Einträge, die Leerzeichen enthalten, werden in doppelte Anführungszeichen eingeschlossen und eventuelle Sonderzeichen (doppelte Anführungszeichen und Kommata) entsprechend maskiert. Die erste Spalte (id) jeder Zeile weist dem Eintrag eine eindeutige ID zu. Sie setzt sich zusammen aus der gegenwärtigen Uhrzeit (Rückgabewert des time()-Kommandos) und der PID des aktuellen CGI-Prozesses beim Anlegen des Eintrags.


Weiter Zurück [Inhalt] Online Suche im Handbuch