Artikel

Ajax Suggest mit PHP und Lucene

Rubrik: PHP

Eine der beliebtesten Ajax Anwendungen ist sicher die Suggest- oder Autocomplete-Funktion. Dabei werden dem Benutzer während der Eingabe in ein Input-Feld Vorschläge zur Vervollständigung der Eingabedaten unterbreitet.

Technisch umgesetzt wird dies, indem per Javascript/Ajax nach der Eingabe jedes weiteren Buchstabens in das Eingebefeld eine Anfrage mit den bisher eingegebenen Daten an den Server geschickt wird und dieser eine Liste mit passenden Elementen zurücksendet, die dem Benutzer dann zur Auswahl angezeigt werden.

Die vorgeschlagenen Daten ermittelt der Server bei einer Webanwendung aus einer Datenbank. Bei einer viel besuchten Seite sowie dem breiten Einsatz dieser Methode kann so die Belastung für den Datanbankserver nicht ganz vernachlässigt werden, obgleich sie meistens sehr gering ist. Ein weiteres Problem ist die evtl. mangelhafte Suchmöglichkeit des Datenbankservers. So bietet MySQL eine Volltextsuche nur bei dem unzureichenden Tabellenformat MyISAM an, InnoDB beherrscht leider keine Volltextsuche, hier kann lediglich mit LIKE %...% oder ähnlichem gesucht werden.

...

Eingabedaten überprüfen mit ext/filter

Rubrik: PHP

Die größte sicherheitsrelevante Schwachstelle in Blogs ist sicherlich die Kommentarfunktion. Die Kommentare sind normalerweise die einzige Funktion, in der Benutzer Daten an die Blog-Software schicken. Aus diesem Grund sollte hier besonders auf Sicherheit geachtet werden. Eine genaue Überprüfung der Benutzereingaben ist zwingend notwendig. Zu diesem Zweck bietet sich die neue PHP-Extension ext/filter an. Mit einer einfachen Validator-Klasse lässt sich ein Wrapper zum objektorientierten Zugriff implementieren.

PHP ext/filter

Seit PHP 5.2.0 existiert diese Extension zum filtern von Variablen, also auch Eingabedaten der Benutzer. ext/filter bietet spezielle Funktionen für URLs, E-Mail-Adressen oder auch einfache Datentypen. Ich selbst setze unter anderem ext/filter ein, um die Eingabedaten aus dem Kommentar-Formular zu überprüfen.

...

Funktionsumfang eines Blogs

Rubrik: Klappity

Welche Funktionen sollte ein Blog bieten?

Neben der eigentlichen Hauptfunktion, nämlich der Darstellung von News, kleinen Tutorials oder meinetwegen auch Tagebucheinträgen (siehe Wikipedia) bieten Blogs normalerweise noch ein paar mehr oder weniger wichtige Funktionen. Ich habe mal ein paar Blogs abgegrast und gecheckt, was so alles geboten wird. Hier eine Liste der üblichen Blog-Features (ob es sich wirklich bei allen Punkten um echte Funktionen handelt, sei mal dahingestellt).

Blog-Features

...

Blog-Sitemap mit PHP

Rubrik: PHP

Was ist eine Sitemap?

Eine Sitemap ist eine XML-Datei, die alle erreichbaren Links einer Webseite, also z.B. eines Blogs, enthält. Die Sitemap kann von Suchmaschinen benutzt werden, um auch an Unterseiten zu gelangen, die nicht so einfach über die normale Navigation erreichbar sind.

Was bringt mir die Sitemap außerdem?

...

Sprechende URLs mit mod_rewrite

Rubrik: PHP

Eine (manchmal auch ein) URL ist die Adresse einer Webseite – zumindest soll das für diese Betrachtung hier mal reichen. Als sprechende URL bezeichnet man nun URLs, die lesbar sind. Vermutlich wäre lesbare URL ausreichend, aber meistens wird der Ausdruck "sprechende URLs" verwendet.

Vorteile sprechender URLs

Folgende Punkte sind als Vorteile von sprechenden URLs zu nennen:

...

PHP-Debugging leicht gemacht

Rubrik: PHP

Um eine Anwendung zu debuggen kann man eine Menge Blödsinn in seinen Code schreiben. Es ist nun mal leider so, dass die Zeit zum Auffinden eines Fehlers umgekehrt proportional zur Schwere des Fehlers ist. Der beste Weg wäre natürlich immer die Benutzung eines richtigen Debuggers - die Benutzung ist aber meistens nicht ganz einfach. Es gibt nämlich noch eine zweite Eigenart von Fehlern. Sie treten erst auf, wenn man die Anwendung auf dem Produktivserver installiert hat - in der Test- bzw. Entwicklungsumgebung funktioniert alles. Spätestens hier kommt man mit dem lokal installierten Debugger nicht weiter.

Da wir aber unseren Code nicht mit unendlich vielen print, print_r, var_dump und error_log-Anweisungen verunstalten wollen, muss eine praktischere und einfachere Lösung her. Genau bei diesem Problem hat mir mal wieder das Buch PHP Design Patterns weiter geholfen.

Als erstes eine Überlegung, wo wir eigentlich hin wollen. Es soll möglich sein, Debug-Meldungen auf unterschiedliche Art und Weise auszugeben. Vom einfachen echo über ein Logfile bis zu E-Mail oder Jabber. Die Abschaltung des Debuggers nicht zu vergessen - dies sollte ebenfalls ohne große Änderungen am Code möglich sein.

...

Blog mit PHP

Rubrik: PHP

Wie programmiere ich einen Blog in PHP? Diese Frage habe ich mir vor einer Weile gestellt, als ich mit der Planung dieser Seite begann. Eigentlich ist ein Weblog ja nichts anderes als eine News-Seite, so hieß das früher mal. Zumindest aus technischer Sicht, der Inhalt hebt sich evtl. von dein reinen News ab.

Da ich schon länger mit PHP programmiere und schon einige Seite mit PHP4 programmiert habe, wollte ich dieses Projekt endlich mal ordentlich objektorientiert umsetzen. Das läuft vermutlich beim ersten Versuch wiedermal nicht ganz optimal, aber man lernt ja dazu.

Als erstes habe ich meine vorhandene Bibliothek mit neuen PHP-Büchern erweitert. Es ist zwar auch möglich, sich im Web weiter zu bilden, ich persönlich halte aber von einem echten Buch aus echtem Papier deutlich mehr, als von irgendwelchen Frickel-Tutorials. Ein zweiter Aspekt für mich war, dass ich kein Framework, wie z.B. das Zend Framework, nutzen wollte. Die ganzen nützlichen Dinge, die man fertig vorfindet, wollte ich gern selbst programmieren.

...

Farbwahl ganz einfach?

Rubrik: Website

Die richtigen Farben für eine neue Webseite zu finden ist garnicht so einfach. Gerade wenn man eigentlich lieber den technischen Teil übernimmt und bei Designfragen nur Fragezeichen vor den Augen hat.

So schwierig ist das aber nun auch wieder nicht - es gibt ja genügend Webseiten, die einem bei der Farbzusammenstellung helfen. Die Qual der Wahl hat man dann zwar immernoch, aber zumindest sollten einigermaßen harmonische Zusammenstellungen dabei rauskommen.

Schon seit mehreren Jahren benutze ich die Online-Version des ColorSchemer. Auf dieser Seite kann man einfach eine Farbe auswählen (den Hex-Code eingeben) und schon bekommt man eine Palette Farben, die zur Ausgangsfarbe passen. Ausgehend von diesen Farben kann man eine Seite aufbauen. Neben der Online-Version kann man weitere Programme käuflich erwerben, die dann einige Funktionen mehr bieten. Davon habe ich allerdings keinen Gebrauch gemacht, zumal es die Programme nur für Windows und MacOS gibt, ich jedoch fast ausschließlich mit Linux arbeite.

...

Start des Klappity Blogs

Rubrik: Website

Freudig verkünde ich, dass der Klappity Blog an den Start geht. Die eigentliche Seite ist zwar noch nicht fertig entwickelt - den Blog gibt es aber trotzdem schon.

Im Klappity Blog wird es ganz unterschiedliche Informationen geben. Zur Übersicht werden die einzelnen Nachrichten in Rubriken eingeordnet. Die Rubrik einer Nachricht steht jeweils rechts neben der Überschrift. So gehört die Nachricht, die du gerade liest, in die Rubrik Klappity. In dieser Rubrik werden allgemeine - den Blog bzw. Klappity betreffende Nachrichten - eingeordnet. Neben dieser Rubrik wird es technisch orientierte, oder auch Rubriken mit statistischen Informationen zu Klappity bzw. diesem Blog hier geben. OK, so weit erst einmal.

...

Dies ist der Titel meines Testposts

Rubrik: Klappity

Und hier ist auch schon der erste Absatz, der eine Menge unsinnigen Text enthält. Ok, zugegeben, der Umfang hält sich in Grenzen.

Weil es so schön war, gibt es gleich noch einen zweiten Absatz dazu. Dieser zweite Absatz enthält z.B. Akronyme, nämlich XHTML und CSS. Und hier noch der Titel meines derzeitigen Lieblingsbuches: PHP Design Patterns von Stephan Schmidt. Dieses Buch kann man auch bei Amazon kaufen, dazu braucht man nur folgendem Link zu folgen: kaufen.

...

Beiträge nach Rubrik
Amazon.de: Bestseller RSS