Adminer-Logo

Als Webentwickler kennt denke ich jeder die Situation: Ein neues Projekt steht an, und irgendwann im laufe der Arbeiten kommt man an die Stelle, an der man Hand an die MySQL-Datenbank legen muss.

Da viele Shared-Hosting Pakete einen externen Zugriff auf die Datenbank aus Sicherheitsgründen nicht zulassen, und somit die Desktop-Datenbankclients (bis auf Proxyfile-Lösungen) ausfallen, kommt in den meisten Fällen PHPMyAdmin zur Datenbankverwaltung als Webapplikation zum Einsatz.

Gut ist es natürlich wenn die Applikation direkt im Adminbereich des Hosting-Providers integriert ist, falls nicht, so muss das dicke Paket erst einmal entpackt, hunderte von Dateien hochgeladen, und am Ende noch konfiguriert werden.

Wer schnell und einfach auf seine Datenbanken zugreifen will, ein etwas übersichtlicheres und schnelleres Interface bevorzugt und zudem keine Installationsorgie abhalten möchte, der kann auch zu Adminer greifen.

Adminer ist ebenfalls eine mächtige Datenbankverwaltung, hat allerdings den Vorteil das sie ohne Konfiguration auskommt und zudem nur aus einer einzigen PHP-Datei besteht. Somit entfällt die lästige und zeitraubende Installation einer horrenden Ordner und Dateistruktur, um am Ende evtl. nur ein einfaches Backup einer Tabelle durchzuführen.

Zum Start einfach die 160Kb große PHP-Datei in ein sicheres Verzeichnis auf dem Server laden, im Browser aufrufen und schon erscheint eine Maske zur Eingabe der Mysql-Zugangsdaten.

Das Interface ist Multilingual, arbeitet sowohl mit PHP 4.3+ und PHP 5.1 zusammen und kommt mit MySQL 4.1, 5.0 und 5.1 zurecht.

Eine komplette Feature-Liste findet sich auf der Startseite des Projekts.


Patrick meinte gerade ob ich mir schonmal Gedanken darüber gemacht hätte, das man mit Firebug im Prinzip ja auch jedes Formularfeld einer Seite beliebig manipulieren könnte. Ja, darüber hatte ich auch schon des öfteren Nachgedacht.

Die Frage ist nur, was kann man dagegen tun? Ich stelle mir gerade ein Praxisbeispiel vor: Ihr habt eine ein <select> dessen <option>-Werte aus einer Datenbank generiert werden. Relativ üblich oder? Wenn nun ein Bösewicht daher kommt und dem <select> z.B. via Firebug eine <option> unterjubelt die es so in der Datenbank nicht gibt, was macht in dem Fall das PHP-Script? Wird der Wert im Nachheinein nicht nochmal überprüft würde ich davon ausgehen das evtl. ein neuer Datenbank-Eintrag erzeugt wird der auf ein Feld verweist das es gar nicht gibt oder das nicht genutzt werden dürfte.

Ich bin mir sicher das ein Großteil der Programmierer gegen solche externen Eingriffe gar keine Mechanismen einbauen, also Validierungen die prüfen ob der eingegebene Wert evtl. manipuliert wurde. Bei einer kleinen Applikation mag das noch mit relativ wenig Aufwand möglich sein, indem man einfach überprüft ob der übermittelte Wert den überhaupt zu den Werten in der Datenbank passt, doch bei komplexeren Gebilden kann das doch sehr schnell in viel Arbeit ausufern oder was meint ihr?

Habt ihr euch darüber evtl. auch schon Gedanken gemacht bzw. Lösungen gefunden? Ich meine es gibt ja auch nützliche Manipulationen die durch DOMScripting erzeugt werden, doch wie unterscheiden?


Logo von CakePHP

In CakePHP stand ich bisher oft vor einem Problem wenn ich auf allen Seiten meiner Anwendung Daten aus einem bestimmten Controller brauchte.

Ein Anwendungsbeispiel: Ihr erstellt eine Eventdatenbank und wollt das in eurem Template z.B. in der Sidebar immer die nächsten 4 Events aus eurer Datenbank ausgegeben werden.

Das ist in sofern nicht ganz soooo easy, da CakePHP eigentlich immer nur das aktuelle Model ansprechen kann Wenn man sich also auf der Seite gerade die Userliste ( /users/ ) anschaut, und auf dieser Seite dann einen Aufruf zum Event-Model starten möchte würde es im Normalfall nicht so einfach funktionieren, da eben gerade nur das User-Model aktiv wäre.

Nun gibt es für dieses “Problem” viiiiele verschiedene Lösungen…

Kompletten Artikel lesen...


Logo von CakePHP

Nun habe ich in letzter Zeit auch ein wenig in Sachen CakePHP dazu gelernt. Einige meiner Erfahrungen und Kniffe möchte ich an dieser Stelle an euch weiter geben. Gedacht sind sie gerade für Einsteiger in die Thematik, für alte Hasen sind viele der Tipps sicherlich nichts neues.

Sollten euch vielleicht auch noch nützliche Tipps zu diesem Thema einfallen, so sind diese natürlich in den Kommentaren jederzeit willkommen.

Kompletten Artikel lesen...


Ubuntu Logo

So, das hat mich als Linux-Anfänger gestern doch einiges an Zeit gekostet, doch wenn man es einmal kann gehts eigentlich ganz einfach.

Als kleinen Notizzettel für später und Personen mit gleichen Absichten hier ein kurze Anleitung:

Erstmal Klartext, was soll am Ende dabei eigentlich rauskommen? Nun, LAMP steht frei übersetzt für (L)inux (A)pache (M)ySQL und (P)HP. Ich versuche hier jedoch noch einen kleinen Schritt weiter zu gehen und beschreibe im Anschluss noch kurz wie man die oft benötigten Zusatzpakete PEAR, die GDLib, PHPMyAdmin und mod_rewrite installiert.

Kompletten Artikel lesen...


Screenshot einer aus MySQL ausgelesener Geburtstagsliste

Puh, das war ein hartes Stück Arbeit. Für ein aktuelles Projekt, welches ich mit CakePHP umsetze, war es nötig aus einer Mitarbeiterdatenbank alle Geburtstagskinder der nächsten bzw. letzten 5 Tage auszulesen, und dazu auch gleich das Alter und die Tage bis zum Geburtstag zu berechnen.

Mit Hilfe des Tutorials-Forums kam ich auf den richtigen Weg, und habe nun einen MySQL-Query, der sowohl mit Schaltjahren, als auch Jahresübergängen einwandfrei zu funktionieren scheint. Da ich sicherlich nicht der letzte mit diesem Problem bin, wollte ich euch den Query nicht vorenthalten…

Kompletten Artikel lesen...



Blogsuche

RSS-Feeds

Plaste & Plastik

plasteundplastik.de - Das Geocaching-Weblog

Die Kategorien


Netz-Fundstücke


Meta / Propaganda