PHP howTo's

PHP sicher und performant programmieren

Lokal unter Windows mit ZendFramework in MVC programmiertes Tool funktionierte einwandfrei, auf dem lokalen Server (Ubuntu 11.04) ebenfalls auf Anhieb, auf dem vServer mit Ubuntu 10.04 kommt folgende Fehlermeldung:

SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

Nach ca. 30 Minuten Suche wurde ich fündig: Offenbar nutzt der PDO_Mysql Treiber lieber gern den Socket, um sich zu verbinden und Zend_Db knüpft daran an. In der my.cnf von MySQL ist allerdings eine falsche Pfadangabe. Wieso Zend_Db da den falschen Socketpfad verwendet ist mir schleierhaft, aber mit einem symbolischen Link ist schnell dieser Fehler behoben:

ln -s /var/run/mysqld/mysqld.sock /tmp/mysql.sock

GD Star Rating
loading...
GD Star Rating
loading...

Mobile-Web mit Zend-Framework MVC

07. Oktober 2011 gepostet von Stefan

Mit den steigenden Verkaufszahlen von iPhone & Co wird das Mobile Web immer interessanter. Dem entsprechend ist die Nachfrage bei neuen Portal-Entwicklungen sehr hoch. Mit dem Zend-Framework ist mit dem MVC-Prinzip sehr schnell, performant und vor allem skalierbar ein Portal umsetzbar und auch ein Mobile Web zusätzlich damit zur Verfügung zu stellen, ist eigentlich sehr einfach. In diesem Artikel beschreibe ich, wie man mit ein Projekt, welches mit Zend-Framework in MVC umgesetzt wird, mittels einem Modul und entsprechend gesetzten Routen auch die allgemein benutzte Mobil-Version des Projektes anhand einer Subdomain (in der Regel m.domainname.tld) umsetzt. Weiterlesen “Mobile-Web mit Zend-Framework MVC” »

GD Star Rating
loading...
GD Star Rating
loading...

Pro Jahr programmiere ich minimum zwei Projekte, die aufwendige Admin-Bereiche enthalten, in denen diverse Eigenschaften und Funktionen benötigt werden und oftmals die Benutzerfreundlichkeit des Ganzen durch die Vielfalt verloren geht. Große Unternehmen bzw. deren Produkte zeigen oft, wie man es aber doch sehr freundlich und vor allem übersichtlich gestalten kann – mittels sogenannter Widgets, Javascripts und AJAX-Technologien in Verbindung mit einer passenden Businesslogik in PHP dahinter.

In dieser neuen Artikel – Kategorie beschreibe ich in diversen Artikeln einzelne Bereiche einer Administration, bei dem am Ende eine umfangreiche, widget-basierte Administration inkl. Javascript / AJAX und Flash-Statistiken mittels PHP angefangen von der Businesslogik als sogenannte Models (und somit objektorientiert zu programmieren), über die Controller (das Bindeglied zwischen Model und View) bis hin zur eigentlichen Ausgabe (View) fertigt. Dieses Thema an sich ist sehr umfangreich, weshalb ich dies auch in einer eigenen Kategorie auslagere. Abgesehen davon möchte ich insbesondere auch darauf eingehen die erstellte Administration möglichst an Standards auszurichten und die übliche benutzerfreundliche Art und Weise (RIA-ähnlich) zu nutzen.
Weiterlesen “Admin-Bereiche benutzerfreundlich gestalten” »

GD Star Rating
loading...
GD Star Rating
loading...

Nicht wenige PHP-Entwickler benutzen den @-Operator, um Fehlerausgaben einer Funktion zu unterdrücken. Die meisten Entwickler dürften sich aber nicht bewußt sein, was der Interpreter daraus erzeugt. Ein Beispiel:

< ?php
$fp = @fopen('/eine/datei/oeffnen.txt','r');

Weiterlesen “Der @-Operator und valides Programmieren” »

GD Star Rating
loading...
GD Star Rating
loading...

Wir Programmierer sind ja zumeist sehr schreibfaul und machen es so kurz wie nur möglich, was sich allerdings nicht selten auf die Performance auswirkt. Eines der häufigsten Fehler bzw. Schandtaten sind PHP-Funktionen in For und While zu benutzen. Anfänger machen sehr oft sogar noch viel gravierendere Fehler und erzeugen nicht korrekte Arrays, so dass der Interpreter jede menge Zusatzarbeit bekommt und die Performance daher nicht selten um bis zu mehr als 700% reduziert. Weiterlesen “PHP-Funktionen in Schleifen und Arrays” »

GD Star Rating
loading...
GD Star Rating
loading...

Grundsätzlich sollte man alle Variablen die erst recht aus einer Eingabe von Außen kommen (z.B. Formular) zuvor validieren und filtern. Der Grund ist nicht nur, dass man unerwünschte Übergaben herausfiltert, sondern die allseits bekannten XSS-Angriffe aber auch CSRF sowie SQL-Injections damit weitgehensd verhindert. Seit PHP5 ist die vorherige Extension ext/filter im Apache-Modul standardmäßig aktiviert und sollte hierzu auch genutzt werden. Ferner existieren bereits zahlreiche Klassen in den verschiedenen Frameworks, die ebenfalls die Aufgabe einer Validation hervorragend übernehmen und die Klasse sogar häufig auf eigene Validatoren erweitert werden kann. Weiterlesen “Eingabe – Variablen filtern & Validieren” »

GD Star Rating
loading...
GD Star Rating
loading...

set_include_path funktioniert nicht

15. Oktober 2010 gepostet von Stefan

Läuft PHP als Apache-Modul auf dem Server und wird mittels

php_admin_value include_path ".:"

in der VirtualHost-Konfiguration der PHP Include-Path gesetzt, zeigt die PHP Funktion set_include_path() keine Wirkung.

Die Lösung ist relativ simpel. Seit PHP-4.x existiert bereits dieser Bug und man kommt diesen bei, in dem man in der VirtualHost-Konfiguration entweder die Einstellung nicht verwendet oder dies wie folgt festlegt:

php_value include_path ".:"
GD Star Rating
loading...
GD Star Rating
loading...

PHP HowTo’s startet

13. Oktober 2010 gepostet von Stefan

Es gibt zahlreiche Seiten über PHP, mit jede menge Tipps, Tutorials und verschiedensten Schnipseln. Es gibt zahlreiche Foren, die fast alle an sich unmengen an verschiedenen und meistens auch kompetenten Beiträgen enthält. Mir ist aber auch aufgefallen, dass sehr viele dieser Seiten seltenst auf die Sicherheit und Performance eingeht, denn PHP ist immerhin eine Skriptsprache, die als Software auf einem Webserver läuft und eben abhängig des Programmierers sehr unsicher und auch auch resourcefressend sein kann. Weiterlesen “PHP HowTo’s startet” »

GD Star Rating
loading...
GD Star Rating
loading...

Site-Tipps

Fan Page

Empfehlungen