IP4 Adressen mit PHP und MySQL

December 27th, 2009 ron Posted in MySQL, PHP No Comments »

IP-Adressen vergleichen

Meist werden IP4-Adressen vermutlich in einem VARCHAR(15) Feld gespeichert in einer Datenbank gespeichert.
Man kann die IP-Adresse auch in einem INT Feld speichern. Dazu muss sie zuvor in das Format Long übertragen werden. In PHP übernimmt diese Aufgabe die Funktion ip2long(), in MySQL lautet die entsprechende Anweisung INET_ATON(). Der umgekehrte Weg funktioniert natürlich auch, sonst würde das ganze wenig sinnvoll sein, die PHP Funktionen long2ip(), bzw. INET_NTOA() in MySQL erledigen diese Aufgabe.

Read the rest of this entry »

AddThis Social Bookmark Button

Smarty 3 und __autoload()

November 27th, 2009 ron Posted in PHP 1 Comment »

Da das neue Smarty 3 komplett in PHP 5 neugeschrieben wurde, wird dort auch die Interzeptormethode __autoload() verwendet. Zumindest wird mit spl_autoload_register() ein eigener Autoloader festgelegt. Der Standard-Autloader steht damit nicht mehr zur Verfügung.

Um nun dennoch automatisch Klassen bei Bedarf einzubinden, kann man mit spl_autoload_register(’mein_autoloader’) einfach einen weiteren, eigenen Autoloader registrieren, den man dann noch im globalen Namensraum deklariert.

Kleiner Tipp von mir: nicht require() verwenden ;). Der spl_autoloader versucht nacheinenander mit den registrierten Loadern die benötigten Klassen einzubinden. Da er hier nach dem LiFo-Prinzip vorgeht, wird also der zuletzt registrierte Loader zuerst verwendet (also der eigene). Wenn dieser dann mit require() versucht eine Smarty-Klasse einzubinden, die er nicht findet, gibt es einen fatal-error. Mit @include() wird dann einfach mit dem nächsten Loader weitergemacht.

AddThis Social Bookmark Button

Zend Framework 1.8.1 veröffentlicht

May 15th, 2009 ron Posted in PHP No Comments »

Zend hat das erstes Maintenance Release für die 1.8-Entwicklungsschiene des Zend Framework herausgebracht. Die Version 1.8.1 des PHP-Frameworks bringt knapp 70 Bugfixes mit, nachzulesen im ZF Issue Tracker.
Das Anfang Mai veröffentlichte 1.8.0-Release wurde mit Version 1.2 der JavaScript-Bibliothek Dojo ausgeliefert , owohl der Changelog Dojo 1.3 ausgewiesen hatte. Die Nutzer finden nun das aktuellere Release der Bibliothek.

AddThis Social Bookmark Button

Kostenloses CakePHP E-Book

May 14th, 2009 ron Posted in PHP No Comments »

Im Pseudocoder.com Blog gibt es ein kostenloses CakePHP eBook, dass sich vor allem an  fortgeschritten PHP Entwickler richtet, die schon hinreichend Erfahrung mit dem Framework haben.

CakePHP Bücher auf Anfänger gibt es bereits genug, jedoch kaum welche für, die über die Grundlagen hinausgehen und tiefer in die Materie eindringen.
Das vorliegende E-Book soll diesen Mangel beheben.

Für alle, die noch keine Erfahrungen mit CakePHP haben werden in Kapitel 2 “How to Learn CakePHP” zwei Wege vorgestellt, um die Grundlagen des Cake-Frameworks zu erlernen, ein kostenloser und einer, der Geld kostet.

AddThis Social Bookmark Button

Smarty Counter

March 9th, 2009 ron Posted in PHP 2 Comments »

Heute habe ich mich etwas mit dem Counter von Smarty geprügelt. Ich bin irgendwie der Typ, der mit einem Beispiel 1000x mehr anfangen kann, als mit 100 Zeilen Erklärungen.

Daher habe ich dann wohl auch den mich interessierenden Teil in der Doku geflissentlich mehrmals übersehen.

Wenn man einen Counter in Smarty benutzt und diesen auswerten will, dann muss man den Wert mit “assign” einer Variablen zuweisen, sonst kann man zwar den Wert ausgeben aber nicht intern im Template für Vergleichsoperationen nutzen.

Read the rest of this entry »

AddThis Social Bookmark Button

PHPUnit 3.3 erschienen

September 16th, 2008 ron Posted in PHP No Comments »

Ab sofort steht die Verison 3.3 der Testsuite PHPUnit von Sebastian Bergman zum Download bereit.

Die neue Version ist laut Bergman nicht nur eine Bugfix-Version, sondern bringt auch neue Funktionen. So unterstützt PHPUnit nun Behavoir-Driven-Development und soll die  Code-Coverage-Analysen schneller und übersichtlicher gestalten.

Read the rest of this entry »

AddThis Social Bookmark Button

MySQL Query Cache

September 13th, 2008 ron Posted in MySQL 1 Comment »

Im Zuge diverser Optimierungen bin ich mal wieder mit dem MySQL Query Cache aneinandergeraten. Primär ging es um die Streitfrage, ob ein Statement, zweimal abgesetzt mit unterschiedlichen LIMIT-Angaben vom Query Cache profiitert, oder nicht.

Meine Meinung, nein, kann es nicht, es werden nur wirklich identische Queries aus dem Cache mit Daten versorgt. MySQL speichert das komplette Result-Set eines Querys im Cache und liefert dieses einfach wieder aus, wenn das selbe Query nochmal abgesetzt wird. Ein Ändern der LIMIT-Werte im Query verändert zum einen das Query selbst, zum anderen erhält man ja auch ein anderes Result-Set zurück, daher kann hier der Cache gar nicht greifen.

Bei den Recherchen hierzu sind mir aber noch ein paar andere Dinge aufgefallen, die mir auch noch neu waren:

Read the rest of this entry »

AddThis Social Bookmark Button

UTF-8 - mal wieder

August 12th, 2008 ron Posted in MySQL No Comments »

Diesesmal sollte es gleich richtig laufen, ein niegelnagelneuer Server mit den aktuellsten Versionen von allem, PHP, MySQL, Apache, was man eben so braucht. Und damit nicht wieder Chaos mit den Zeichensätzen ausbricht, sollte alles von Anfang an auf UTF-8 getrimmt werden. Also wurden alle entsprechenden Konfigurationsdateien auf UTF-8 eingerichtet.

Da das Updaten von MySQL immer probelmatisch ist, wenn vor allem dabei von ISO auf UTF-8 umgestellt wird, wurden die Daten auf dem alten Server gedumpt und dann mit

iconv -f iso-8859-1 -t utf-8 dump.sql > dump_utf8.sql

Read the rest of this entry »

AddThis Social Bookmark Button

Filtererweiterung

August 3rd, 2008 ron Posted in PHP No Comments »

Leider sieht man immer wieder, dass völlig sorglos mit Usereingaben oder anderen Parametern, die an ein Skript übergeben werden, umgegangen wird. Selbst wenn man sich die größte Mühe gibt, wird man nie eine hundertprozentig sichere Anwendung haben, solange Userdaten verarbeitet werden müssen. Allerdings sieht man oft genug Skripte, in denen überhaupt keine Validierung stattfindet. Natürlich lässt sich eine Anwendung auf diese Weise um ein Vielfaches schneller fertigstellen, dies erkauft man aber mit einer hohen Anfälligkeit für Angriffe oder auch nur für Fehler.

Ein Grund, warum man derart ungesicherte Skripte immer wieder antrifft, ist wohl auch der leichten Erlernbarkeit von PHP zuzuschreiben. Die Lernkurve ist recht flach und so kann man mit relativ wenig Kenntnissen schon recht beeindruckende Ergebnisse abliefern. Wie es tatsächlich um den Code bestellt ist, sieht der Anwender oder schlimmer noch, der Auftraggeber oft gar nicht.

Read the rest of this entry »

AddThis Social Bookmark Button

SQLite

July 30th, 2008 ron Posted in PHP No Comments »

Seit einiger Zeit wird PHP im Bundle mit dem Datenbanksystem SQLite ausgeliefert. Anders als MySQL ist SQLite kein Datenbankserver, somit wird beim Betrieb auch kein eigener Prozess für SQLite ausgeführt. Stattdessen handelt es sich um eine Bibliothek ohne externe Abhängigkeiten, die direkt im PHP-Prozess ausgeführt wird. Daher gibt es hier auch keinen Kommunikationsweg zwischen PHP und der Datenbank. Datentransfers innerhalb eines Prozesses sind immer schneller, als Interprozess-Kommunikation beziehungsweise die Kommunikation zwischen unterschiedlichen Servern. Also ein klarer Vorteil für SQLite. Auf der anderen Seite kann die Datenbank auf diese Weise so natürlich nicht auf einen dedizierten Server ausgelagert werden, was bei zunehmender Last zu einem Problem werden kann.

Read the rest of this entry »

AddThis Social Bookmark Button




Amazon Bookshop