Datenbank-Frontend mit Dadabik
Datenbankverwalter im Eigenbau

Big DataData & StorageDeveloperIT-ProjekteSoftware

PhpMyAdmin ist oft zu leistungsfähig. Gerade wenn ein ungeübter User auf die Datenbank zugreifen soll, kann es für MySQL gefährlich werden. Der Ausweg: Ein einfaches Frontend im Eigenbau mit PHP und Dadabik.

Überdimensioniert

Datenbank-Frontend mit Dadabik

Klassischerweise hat eine Datenbank kein Frontend, das man mit einer Maus bedienen kann oder mit dem man schöne Anwendungen erstellen kann. Das Erstellen der Bedienoberfläche beziehungsweise die gesamte Businesslogik, die dort enthalten ist, überlassen die Datenbankhersteller anderen Produkten. Immerhin werden Sie feststellen, dass viele Datenbankhersteller Entwicklungsumgebungen bereitstellen, mit denen Sie schnell und einfach ein Frontend erzeugen können. Microsoft hat bei Access das Frontend sogar so eng mit der Datenbank verknüpft, dass die Trennung zwischen Datenbank und Frontend schwerfällt.

Die meisten Internet-Anwendungen basieren auf der Datenbank MySQL, die leider kein schickes Frontend bietet. Das hat zur Folge, dass in den meisten Fällen das Tool phpMyAdmin genutzt wird. Hierbei handelt es sich um eine PHP-Anwendung, die darauf spezialisiert ist, MySQL-Datenbankserver zu verwalten. Wenn Sie phpMyAdmin kennen, dann wissen Sie, dass es sich um ein sehr mächtiges Tool mit zahlreichen Funktionen handelt.

Es gibt fast keine Schraube an MySQL-Servern, an der Sie mit dem Tool nicht drehen können, vorausgesetzt, Sie verfügen über die entsprechenden Berechtigungen. Für viele andere Datenbankserver gibt es ähnliche Tools. Bevorzugen Sie PostgreSQL als Datenbank, so können Sie beispielsweise phpPgAdmin nutzen.

Allerdings sind diese Tools oft zu leistungsfähig. Manchmal möchte man nur eben einen Wert in einer Datenbank ändern oder hinzufügen. Dafür ist phpMyAdmin überdimensioniert, obwohl das natürlich nicht stören würde. Unangenehmer ist die Situation, wenn Sie einem Kunden Zugriff auf die Inhalte der Datenbank ermöglichen wollen. phpMyAdmin bietet so viele Bearbeitungsoptionen, dass der Kunde schnell mal etwas kaputt machen kann. Es muss also eine andere Lösung her.

Selbst ein Frontend zu erstellen ist eine gute Idee. Allerdings kann das auch schnell sehr aufwendig werden. Werte aus einer Tabellenspalte zu lesen und wieder zu speichern geht ja noch. Was aber, wenn Sie die Eingaben validieren wollen, um sicherzustellen, dass nicht die falschen Datentypen in der Tabelle landen? Das kann schnell zum Problem werden. Aber keine Angst, die Open-Source-Welt kennt natürlich auch dafür eine Lösung. Eine einfache Variante, um ein solches Frontend zu erstellen, ist Dadabik.


Dadabik

Datenbank-Frontend mit Dadabik

Dadabik steht als Kürzel für Database Interface Kreator und wurde von Eugenio Tacchini entwickelt. Wie der Name schon vermuten lässt, können Sie auf Dadabiks Basis sehr schnell und einfach ein Frontend für eine Datenbank erstellen. Alles, was Sie benötigen, finden Sie unter www.dadabik.org. Nachdem Sie die ZIP-Datei heruntergeladen haben, entpacken Sie diese. In dem Verzeichnis, das dabei erstellt wird, finden Sie einen Ordner namens program_files.

Die dort enthaltenen Dateien und Unterverzeichnisse kopieren Sie in ein Verzeichnis unterhalb des Document-Root-Verzeichnisses Ihres Webservers. Es empfiehlt sich, für die Beispiele einen neuen Ordner mit dem Namen Dadabik anzulegen, der auch in den Beispielen benutzt wird. Sie können die Daten natürlich aber auch in einem anderen Ordner wie admin ablegen. Wenn Sie Dadabik auf einem Server installieren, der öffentlich zugänglich ist, dann sollten Sie das Unterverzeichnis zumindest während der Installation mit einem Passwort sichern.


Server konfigurieren

Datenbank-Frontend mit Dadabik

Bevor Sie anfangen, Dadabik zu konfigurieren, sollten Sie kurz einen Blick auf die Einstellungen des Webservers werfen. Denn Dadabik setzt voraus, dass die magic_quotes_gpc eingeschaltet sind. Ist diese Einstellung aktiv, dann sorgt PHP selbstständig dafür, dass einfache Einführungszeichen automatisch entwertet werden.

Damit ist automatisch sichergestellt, dass ein solches Hochkomma nicht versehentlich dazu führt, dass ein SQL-Befehl ungültig wird. Dadabik kümmert sich nicht selbst um die Einstellung. Möchten Sie herausfinden, wie Ihr Server konfiguriert ist, dann hilft Ihnen der Befehl phpinfo() weiter. Sollte magic_quotes_gpc aus sein, also den Wert off haben, dann können Sie die Einstellung in der Datei php.ini ändern. Setzen Sie den Wert dazu einfach auf on.

Bitte beachten Sie dabei aber, dass die Einstellung für den gesamten Server gilt. Wenn also schon Software auf dem Server laufen sollte, dann wird diese auch durch die Einstellung beeinflusst. In dem Fall könnte es sinnvoll sein, die Einstellung nicht in der php.ini, sondern mit einer .htaccess-Datei zu ändern. Das macht sich dann nur in einem Verzeichnis bemerkbar. Dafür legen Sie in dem Verzeichnis, in dem Dadabik installiert ist, eine Datei mit dem Namen .htaccess an. In dieser Datei notieren Sie die folgende Zeile:


php_value magic_quotes_gpc on

Damit sind für den Ordner, in dem die Datei liegt, und alle darunter liegenden Ordner die Magic Quotes eingeschaltet.

Sollte das nicht die erwünschte Wirkung zeigen, kann es sein, dass Ihr Provider in der zentralen Apache-Konfigurationsdatei httpd.conf die Option allow override umschalten muss, damit Sie .htaccess-Dateien nutzen dürfen. Kontaktieren Sie in diesem Fall Ihren Provider.


Dadabik konfigurieren

Datenbank-Frontend mit Dadabik

Nachdem der Server nun vorbereitet ist, können Sie sich um Dadabik kümmern. Im Ordner include befindet sich eine Datei mit dem Namen config.php. Öffnen Sie diese mit einem einfachen Text-Editor wie dem Windows-Editor. Hier verwalten Sie die Konfiguration des gesamten Systems. Relativ am Anfang der Datei finden Sie einige Variablen, denen Sie die für Ihr System relevanten Informationen zuweisen müssen:


$dbms_type = 'mysql';
$host = 'localhost';
$db_name = 'test';
$user = 'root';
$pass = '';
$site_url = 'http://127.0.0.1/DaDaBIK/';
$site_path = '/DaDaBIK';

Der Wert von $dbms_type definiert, um welche Art von Datenbank es sich handelt. Neben mysql können Sie hier auch andere Werte wie postgres7, postgres8, mssql (Microsoft SQL-Server) oder oci8po (Oracle ab Version 9) angeben. In der Variablen $host wird der Name beziehungsweise die IP-Adresse des Datenbank-Servers gespeichert. Benutzername und Passwort für den Datenbankzugang sind in den Variablen $user und $pass abzulegen. Beachten Sie dabei, dass der Benutzername, den Sie hier angeben, alle relevanten Rechte für die Datenbank haben muss. Hat Ihr Provider die Datenbank für Sie bereitgestellt, ist das in der Regel kein Problem.

In den letzten beiden Variablen, $site_url und $site_path, speichern Sie den kompletten URL des Dadabik-Verzeichnisses beziehungsweise nur den eigentlichen Ordner. Damit haben Sie alle Einstellungen getätigt, die Sie zwingend ändern müssen. Optional kann Dadabik noch Benutzer verwalten. Das heißt, dass User sich mit Passwort und Benutzernamen authentifizieren müssen oder dass beispielsweise nur Benutzer, die einen Eintrag angelegt haben, diesen auch löschen können. Wenn Sie das wünschen, weisen Sie der Variablen $enable_authentication den Wert 1 zu. Die anderen Werte brauchen Sie nicht zu verändern. Diese Funktionalität ersetzt allerdings nicht den Passwortschutz für das Verzeichnis, der weiter unten noch eingehend behandelt wird.

Zu empfehlen ist auch noch, dass Sie der Variablen $language den Wert german zuweisen, um eine deutschsprachige Oberfläche zu erhalten. Die Administrationsoberfläche des Systems kann allerdings mit diesem Verfahren nicht eingedeutscht werden, sie bleibt englisch.


Installation & Nutzung

Datenbank-Frontend mit Dadabik

Haben Sie alle Angaben gemacht, dann rufen Sie die Datei install.php im Browser auf. Sie führt die Installation aus. Da Dadabik zur Verwaltung von Tabellen gedacht ist, beschwert sich das Tool bei der Installation, wenn noch keine Tabellen vorhanden sind. Sollte die Datenbank leer sein, dann wäre es daher hilfreich, zuerst eine Tabelle anzulegen.

Während der Installation analysiert Dadabik die vorhandenen Tabellen. Sollte eine der Tabellen keinen Primärschlüssel haben, gibt das System eine Warnung aus. Das hat den einfachen Grund, dass Dadabik auf dieser Ebene sicherstellt, dass der korrekte Datensatz verändert oder gelöscht wird. Ohne Primärschlüssel können Sie die Werte in der Tabelle nicht löschen oder verändern. Löschen Sie nach der Installation aus Sicherheitsgründen die Datei install.php. Relevant sind für die weitere Arbeit nur noch die beiden Dateien admin.php und index.php.

Die Datei index.php ist ein komplett fertiges Frontend, mit dem Sie die Inhalte der Tabellen verwalten können. Zugegebenermaßen ist die Oberfläche nicht sonderlich komfortabel, aber sie funktioniert. Mit der Optionsliste rechts unten können Sie die Tabelle selektieren, deren Werte Sie bearbeiten oder anzeigen wollen. Verfügt die Tabelle über einen Primärschlüssel, dann sehen Sie vor jedem Datensatz drei Symbole. Das Symbol mit den beiden ineinander verschlungenen Pfeilen gibt Ihnen die Möglichkeit, den Datensatz zu editieren. Das Kreuz löscht einen Datensatz und das linierte Blatt zeigt Details zu dem Datensatz an.

Unter der Tabelle finden Sie die Möglichkeit des CSV-Exports. Das heißt, die gesamten Daten der Tabelle werden in einer Textdatei im CSV-Format als Download gesendet. Die Tabellendaten können Sie dann direkt in Excel importieren. Das Trennzeichen, das in den CSV-Dateien verwendet wird, können Sie übrigens auch in der Datei config.php einstellen.


Suchfunktion

Datenbank-Frontend mit Dadabik

Unten rechts finden Sie einige weitere Funktionalitäten. Mit einem Klick auf Suchen gelangen Sie in eine Suchmaske. Mit der oberen Optionsliste können Sie definieren, ob alle oder nur eine der nachfolgenden Bedingungen zutreffen muss. Danach können Sie für jede Spalte einen Wert eingeben, nach dem gesucht werden soll. Die Optionsliste gibt Ihnen dabei die Möglichkeit, festzulegen, ob der gesuchte Begriff dem Wert in der Spalte entsprechen muss, ob er nur enthalten sein muss, ob er am Anfang oder am Ende stehen soll oder ob mit einem kleiner beziehungsweise größer verglichen werden soll.

Um einen neuen Datensatz zu speichern, klicken Sie auf Einfügen. Dieser Standard-Einfügen-Dialog ist noch nicht sonderlich komfortabel, aber er erfüllt seinen Zweck. Aber keine Angst, man kann den Dialog, genau wie die Suchfunktion, noch besser gestalten.


Administration

Datenbank-Frontend mit Dadabik

Gerade wenn Sie das System für einen Kunden installiert haben, wollen Sie vielleicht nicht, dass er alle Tabellen bearbeiten kann. Um festzulegen, welche Tabellen nutzbar sein sollen, können Sie die Datei admin.php aufrufen. Wie schon erwähnt ist die Seite leider nicht eingedeutscht und auch ein wenig unübersichtlich aufgebaut.

Im oberen Bereich finden Sie eine Liste mit so genannten installierten Tabellen, die in Dadabik nutzbar sind. Wichtig ist, dass Dadabik hier zwei Status unterscheidet. Zum einen ist das die Frage, ob eine Tabelle installiert ist oder nicht. Installiert heißt, dass Dadabik die Tabelle analysiert hat. Dabei wird im Hintergrund für jede der Tabellen noch eine weitere Tabelle für die interne Verwaltung angelegt. Der zweite Punkt ist, ob die Tabelle im normalen Benutzerbereich angezeigt werden, sprich ob sie includet werden soll. Entfernen Sie in dieser Liste das Häkchen aus der Checkbox, so wird die Tabelle nicht mehr in der Übersicht angezeigt. Den Link Uninstall sollten Sie nur dann anklicken, wenn Sie eine Tabelle gelöscht haben.

Unter dieser Liste finden Sie eine weitere Liste mit Tabellennamen. Dabei handelt es sich um die Namen aller Tabellen, die in der Datenbank vorhanden sind. Hinter jedem Namen finden Sie einen Link Install. Wenn Sie den anklicken, wird eine Tabelle neu beziehungsweise erneut analysiert und installiert. Das sollten Sie aber nur dann tun, wenn Sie eine neue Tabelle in der Datenbank angelegt haben, die Sie nun aufnehmen wollen.


Konfiguration einzelner Tabellen

Datenbank-Frontend mit Dadabik

Der Zugriff auf die einzelnen Tabellen kann aber noch deutlich feiner konfiguriert werden. Unter der zweiten Liste mit den Tabellennamen gibt es einige zusätzliche Konfigurationsmöglichkeiten. Zuerst können Sie einstellen, welche der Tabellen bearbeitet werden soll und welche Editiermöglichkeiten es für die Tabelle geben soll. Mit Hilfe von Checkboxen können Sie hier einstellen, ob der Benutzer Daten einfügen, editieren, löschen oder sich detailliert anzeigen lassen darf.

Unter Step 1 haben Sie die Möglichkeit, Spalten, die Sie in der Tabelle umbenannt haben, bei Dadabik anzumelden. Selektieren Sie dazu den alten Spaltennamen an und geben Sie rechts daneben den neuen Namen an. Mit Step 2 können Sie Spalten, die Sie in der Tabelle gelöscht haben, entfernen und mit Step 3 können Sie neue Spalten anmelden. Klicken Sie dazu einfach auf den Button, und Dadabik erkennt die Spalten selbstständig. In einigen Fällen kann es hilfreich sein, die Darstellungsreihenfolge der Spalten zu verändern, was Step 4 ermöglicht.

Das ist ja schon alles ganz prima, aber wenn Sie sich jetzt gerade fragen, was denn nun so toll an Dadabik sein soll, dann muss ich zugeben, dass der eigentliche Knaller ein wenig versteckt ist. Und zwar finden Sie unter der Möglichkeit zur Auswahl einer Tabelle einen Link zum Interface Configurator.


Der Interface Configurator


Datenbank-Frontend mit Dadabik

Mit dem Interface Configurator können Sie für jede einzelne Spalte festlegen, wie sie dargestellt werden soll und welchen Datentyp sie hat. Die Einstellmöglichkeiten sind recht umfangreich, daher sollen hier nur die wichtigsten Punkte angesprochen werden. Eine komplette Erläuterung der Möglichkeiten finden Sie auf der Dadabik-Website.

Da die Spaltennamen in Tabellen oft nicht sonderlich aussagekräftig sind, können Sie im Feld Label eine andere Beschriftung für eine Spalte angeben. Diese macht sich nicht in der Struktur der Tabelle bemerkbar. Es geht hier nur darum, einen anderen Text in der Such- und Eingabemaske darzustellen, damit der Benutzer sich besser orientieren kann. Der Field Type und der Content Type sind miteinander verwandt, unterscheiden sich aber doch deutlich. Bei dem Field Type geht es darum, welche Eingabemöglichkeit im Frontend vorgesehen sein soll. Das heißt, ob es ein normales Textfeld, eine Textarea, ein Passwortfeld oder etwas Ähnliches sein soll. Interessant ist hierbei der Punkt rich_editor. Geben Sie diesen an, dann wird ein kompletter HTML-Editor eingebunden. Mit date erhalten Sie die Möglichkeit ein Datum auszuwählen, generic_file und image_file binden einen Datei-Upload-Dialog ein.

Die Dateien werden allerdings nicht in die Datenbank eingefügt, sondern im Dateisystem abgelegt. In der Datenbank wird nur der Pfad gespeichert. Welche Dateien akzeptiert werden, wird über die Datei config.php gesteuert. Dort ist eine Liste der akzeptierten Dateiendungen zu finden. Des Weiteren stellen Sie dort auch ein, in welchem Verzeichnis die Uploads landen sollen und wie groß ein Upload maximal sein darf.

Der Content Type stellt sicher, dass der Benutzer nur bestimmte Inhalte eingeben kann. Es erfolgt also eine automatische Validierung. Gibt der Benutzer dann einen Wert ein, der nicht der Vorgabe entspricht, wird eine Fehlermeldung ausgegeben. Sie können beispielsweise festlegen, dass nur Zahlen (numeric), nur Buchstaben (alphabetic), Zahlen und Buchstaben (alphanumeric), URLs (url) oder E-Mail-Adressen (email) eingegeben werden dürfen. Der Punkt city, den Sie ebenfalls anwählen können, ist zurzeit ohne Funktion.

Danach finden Sie sieben Optionslisten, mit denen Sie unter anderem einstellen können, ob das Feld mit ausgegeben werden soll oder ob es verändert werden kann. Von besonderer Bedeutung sind hier die beiden Punkte Is the field a required one? und Check for duplicated entries during insert? Sollte eine Spalte als Primärschlüssel definiert sein, dann darf ein Wert nicht doppelt vorkommen und sie darf nicht leer sein. Fängt Dadabik das nicht ab, dann würde beim Einfügen eines neuen Datensatzes ein Fehler auftreten. Um das zu verhindern, kann Dadabik vor dem Einfügen diese beiden Bedingungen prüfen.

Interessant ist auch noch der Punkt Search operators, mit dem Sie die Suchmaske verändern können. Hier definieren Sie, welche Such-Operatoren für diese Spalte zulässig sind. Die Operatoren definieren Sie über einen String, bei dem die einzelnen Operatoren durch einen Slash getrennt werden. Mit is_equal schalten Sie den direkten Vergleich ein. contains aktiviert die Substring-Suche und starts_with beziehungsweise ends_with ermöglichen dem User, am Anfang beziehungsweise am Ende eines Strings zu suchen. greater_than und less_than schalten die Größenvergleiche mit Größer und Kleiner ein.


Sicherheit

Datenbank-Frontend mit Dadabik

Wie schon bei der Konfiguration erwähnt, unterstützt Dadabik die Möglichkeit der Authentifizierung. Das heißt, wenn Sie in der Datei config.php der Variable $enable_authentication den Wert 1 zuweisen, dann muss der User einen Benutzernamen und ein Passwort eingeben. Aber Achtung, die Passwortabfrage könnte schnell zu einem Eigentor werden. Sie schützt nur die Datei index.php, nicht aber admin.php. Die Administrationsdatei ist also komplett ungeschützt. Diese sollten Sie entweder löschen oder selbst für ihre Sicherheit sorgen.

Nachdem Sie den Passwortschutz aktiviert haben müssen Sie sich einloggen, wenn Sie auf die Daten einer Tabelle zugreifen wollen. Wenn Sie das System installieren, dann ist der Benutzer root mit dem Passwort letizia standardmäßig eingerichtet. Die Benutzer werden nicht über einen speziellen Administrationsbereich, sondern über die Datei index.php verwaltet. Das mag ein wenig ungewöhnlich anmuten, ist aber halb so schlimm.

Dadabik unterscheidet nämlich zwischen Administratoren, zu denen auch root gehört, und normalen Benutzern. Administratoren können in der gleichen Weise auf die Tabelleninhalte zugreifen wie normale Nutzer, sie haben aber zusätzlich die Tabelle users_tab im Zugriff, in der Dadabik die Benutzer verwaltet.

Sie können die Benutzer über das normale Frontend editieren: Rufen Sie die Tabelle auf und klicken Sie auf Eingeben, um das Formular zu öffnen. In der Optionsliste können Sie bestimmen, ob Sie einen normalen Nutzer oder einen Administrator anlegen wollen. Danach geben Sie den Benutzernamen und das Passwort ein. Allerdings erwartet Dadabik, dass Sie das Passwort bereits md5-verschlüsselt eingeben. Um das ein wenig zu vereinfachen, können Sie unten rechts in der Navigation auf passwort erstellen klicken. Dieser Link öffnet ein Fenster, in dem Sie das Passwort eingeben und auf Verschlüsseln! klicken. Den so generierten md5-Hash können Sie mit einem Klick auf Passwort registrieren und beenden in das Eingabeformular übernehmen. Sobald Sie auf Neuen Satz einfügen klicken, wird der neue User angelegt.


Optik aufpolieren

Datenbank-Frontend mit Dadabik

Das Standard-Erscheinungsbild von Dadabik ist nicht wirklich kreativ oder ausgefallen. Einen Großteil der Darstellung können Sie aber beeinflussen. Das Aussehen wird mit einer Kombination aus CSS und Layout-Tabellen bestimmt. Die CSS-Dateien finden Sie in im Unterverzeichnis css. Es handelt sich nur um zwei Dateien, die für das gesamte System genutzt werden. Die Datei styles_screen.css ist für die Bildschirmdarstellung gedacht, und styles_print.css definiert die Formate für einen Ausdruck.

Die CSS-Datei für die Bildschirmausgabe nutzt eine Kombination von Elementen und Klassen als Selektoren. Das heißt, grobe Formatierungselemente wie die Schriftart werden über das jeweilige Tag zugewiesen und die Feinheiten werden dann mit einer Klasse ergänzt.

Eine weitere Möglichkeit, das Aussehen zu beeinflussen, sind die Dateien header.php und footer.php beziehungsweise header_admin.php und footer_admin.php, die Sie im Unterverzeichnis include finden. Die ersten beiden werden von den Seiten eingebunden, die für die normalen User gedacht sind. header.php definiert den Kopf der Seiten, inklusive der Überschrift Dadabik und der Layout-Tabelle. footer.php schließt die Layout-Tabelle ab. Die anderen beiden Dateien übernehmen diese Aufgaben für den Administrationsbereich von Dadabik. Sollten die deutschen Übersetzungen nicht gefallen, dann können Sie die Datei german.php aus dem Verzeichnis include/languages überarbeiten.


Fazit

Datenbank-Frontend mit Dadabik

Dadabik ist sicher noch nicht perfekt. Das Tool bietet aber viele interessante Ansätze, und Sie können extrem schnell eine brauchbare, sinnvolle Datenbankoberfläche erstellen. Wenn Dadabik Sie interessieren sollte, dann testen Sie es einfach mal. Hier und da kann man sicher noch ein paar Sachen verbesse
rn, aber alles in allem ist es schon ein schönes und leistungsfähiges Tool.