PHP für Android-Smartphones

PHP für Android (PFA) ist ein Android-Paket, das PHP-Programme auch auf Android-Smartphones ablaufen lässt. Damit soll es PHP-Entwicklern möglich werden, auch Programme für Smartphones in ihrer normalen Umgebung zu entwickeln. Mit FPA kann man auch auf Sensoren und Funktionen des Handys zu, zum Beispiel auf das GPS – Empfangsteil des Gerätes. Eine erste Version wurde bereits vorgestellt, mit der auch der PHP 5.3.3. Release Candidate ausgeliefert wird. Ein integriertes Entwickler-Kit ermöglicht es den Programmierern, sich schnell in PFA einzuarbeiten. Der Hersteller Irontec will die Software sehr gut kommentieren und dokumentieren. Die Anleitungen sind aktuell noch in Bearbeitung. Voraussetzung für PHP auf Android Handys ist Android in der Version 1.5 und das Android Scripting Environment, das vom Programm als Vorabversion mitgebracht wird.

2010-09-16T08:02:13+02:00September 16th, 2010|Allgemein|1 Kommentar

Update auf PHP 5.3.3

Das neue Update für PHP mit der Versionsnummer 5.3.3 beseitigt einige Probleme in PHP 5.3, die sich auf die Stabilität der Anwendungen auswirken können. Darunter sind auch einige Sicherheitsupdates. Angriffspunkte, an denen man einen Pufferüberlauf für Hacker-Angriffe ausnutzen konnte, wurden vom Entwicklerteam beseitigt, ebenso auch  einige Speicherprobleme, die zu einem Absturz der Software führen konnten. Mehrere andere bekannte Fehler, die das System crashen können, wurden zusätzlich beseitigt, insgesamt wurden über 100 Fixes mit PHP 5.3.3 gemacht. Neu ist: Wenn Methoden den gleichen Namen tragen wie das letzte Element einer im Namespace gekapselten Klasse, werden sie nicht mehr als Konstruktor behandelt. Das Verhalten war interessanterweise erst mit PHP 5.3 eingeführt worden. Zusätzlich zu den Fehlerbeseitigungen wurden auch mehrere Komponenten von PHP aktualisiert. Mit PHP 5.3.3 wird jetzt SQLite in der Version 3.6.23.1 ausgeliefert. In der DBA-Erweiterung wird jetzt auch Berkeley DB 5 unterstützt.

2010-09-13T08:18:03+02:00September 13th, 2010|Allgemein|Kommentare deaktiviert für Update auf PHP 5.3.3

Zufällige Werbe-Banner mit PHP

Werbebanner sind immer noch sehr gefragt, und auch wenn Sie mehrere Banner abwechselnd an einer Stelle anzeigen möchten, ist das mit PHP kein großes Problem. Das soll an einem Beispiel mit zwei zufällig wechselnden Bannern für verschiedene Kunden, Bannergrafiken, Titel- und Alt-Tags gezeigt werden. Zunächst sollten die Daten der Werbebanner sinnvollerweise in ein Array gepackt werden. Das könnte so aussehen: <? $werbung = array( 1 => array('ziel‘ =>'adresse1.de‘, 'grafik‘ => 'banner1.gif‘, 'titel‘ => 'Werbung1‘, 'alt‘ => '1. Banner‘), 2 => array( 'ziel‘ => 'adresse2.de‘,  'grafik‘ => 'banner2.gif‘, 'titel‘ => 'Werbung2‘, 'alt‘ => '2. Banner‘)); ?> Die Ausgabe des mit der Funktion array_rand() zufällig ausgewählten Werbebanners mit Bild, Link, Titeltext und Alt-Text kann mit folgender Routine erzeugt werden: <? $sb = array_rand($werbung); echo ‘ <div> <a href = http://’.$werbung[$sb][‘url’].’/ title = “’.$werbung[$sb][‘titel’].’”> <img src = “.$werbung[$sb][‘grafik’].’” Alt = “’.$werbung[$sb]['alt‘].‘“ /> </a> </div>‘; ?> Dabei müssen die Grafiken im selben Verzeichnis liegen, in dem auch die Programmdatei ist.

2010-07-05T07:17:43+02:00Juli 5th, 2010|Allgemein|Kommentare deaktiviert für Zufällige Werbe-Banner mit PHP

PHP Data Objects

Seit der Version PHP 5.1 gibt es in PHP zusätzlich zu den Standardfunktionen von MySQL auch die PHP Data Objects (PDO). Das ist eine PHP-Erweiterung, mit der man sehr schnell in einheitlicher Weise auf verschiedene Datenquellen zugreifen kann. Ähnlich wie beim bekannten und weit verbreiteten Repository PEAR werden dabei die spezifischen Zugriffe auf die verwendete Datenbank durch PDO gekapselt und sind damit transparent. PDO ist aber im Gegensatz zu PEAR eine rein binäre Erweiterung und deshalb auch deutlich schneller. PDO unterstützt zurzeit die Datenbanken MySQL, SQLite, PostgreSQL, MS SQL Server, Oracle, DB2, Firebird und auch ODBC. Dabei braucht allerdings jeder Datenbanktyp seinen spezifischen Treiber, sonst funktioniert es nicht. Eine Datenbankverbindung kann man über PDO mit folgendem Code öffnen, die Daten auslesen und listen und dann wieder schließen: $db = new PDO('mysql:host=localhost;dbname=meinedatenbank‘, 'user‘, 'passwort‘); $sql = $db->prepare("SELECT * FROM meinetabelle“); $sql->execute(); while ($row = $sql->fetch()) { echo $row[id].” “.$row[name].“ <br /> “; } $sql 0 NULL; $db = NULL; Das kurze Beispiel-Script öffnet eine Verbindung zur MySQL-Datenbank meinedatenbank, liest alle Daten aus der Tabelle meinetabelle aus und listet dann die Datenfelder id und name aus jedem Datensatz auf. Danach wird die Datenbankverbindung sauber geschlossen. Die Erweiterung PDO gestattet auch die Arbeit mit Prepared Statements, also vorkompilierten SQL-Kommandos. [...]

2010-05-20T18:39:36+02:00Juni 27th, 2010|Allgemein|Kommentare deaktiviert für PHP Data Objects

Einfacher Schutz vor Cross Site Scripting

Das Cross Site Scripting (XSS) gehört zu den häufigsten Angriffsmethoden auf Internetseiten. Dabei bezieht sich das Cross Site nicht unbedingt darauf, dass zwei Seiten beteiligt sind, sondern darauf, dass der Angriff zwischen mehreren Aufrufen einer Seite passiert. Grundsätzlich ist Cross Site Scripting eine spezielle Form von HTML-Injection, und es passiert meist in Formularen, in denen Benutzerdaten eingegeben und ungeprüft weiterverarbeitet werden. Da kann dann ein Angreifer leicht ausführbaren Programmcode ins System schmuggeln. Sie haben das vielleicht schon einmal im Gästebuch, Blog, Wiki oder Forum erlebt. Ein Angreifer gibt zum Beispiel dort einen Schadcode ein, der dann auf dem Client eines Benutzers, der sich das Gästebuch anschaut, ausgeführt wird. Der Schadcode ist meist in Javascript geschrieben. Deshalb sollte man beim Erstellen einer solchen Seite alles tun, um das injizieren von ausführbarem Code zu verhindern. Dazu bieten sich mehrere einfache Möglichkeiten an, die die Sicherheit merkbar erhöhen. Zunächst sollte man alle Eingaben von Benutzern als unsicher und bösartig betrachten und deshalb auf jeden Fall vor die weitere Verarbeitung eine Prüfung der Eingabewerte schalten. Als erstes sollte die Länge geprüft werden. Eine deutsche Postleitzahl mit mehr als 5 Stellen ist je nach Inhalt entweder ein Eingabefehler und sollte dem Benutzer zurück gemeldet werden oder aber ein versuchter XSS-Angriff. Prüfen [...]

2010-05-20T13:23:44+02:00Juni 24th, 2010|Allgemein|Kommentare deaktiviert für Einfacher Schutz vor Cross Site Scripting

Schnelleres PHP mit HipHop

PHP ist eigentlich eine interpretierte Sprache. Das heißt, dass eine PHP-Seite erst übersetzt und dann ausgeliefert wird. Das braucht natürlich unnötig Zeit, wenn eine Seite bei jedem Aufruf erneut übersetzt wird, auch wenn der Quellcode überhaupt nicht geändert wurde. Auch die Entwickler von PHP haben das schon lange erkannt, und seit der Version 4 wird der Quellcode vor der Ausführung zunächst in einen Bytecode übersetzt und dann solange gespeichert vorrätig gehalten, bis sich der Quellcode einmal geändert hat. Erst dann wird er wieder einmalig in den Bytecode übersetzt. Dadurch kann die Ausführung eines PHP-Programms bis zu achtmal schneller erfolgen. Für normale Internetseiten ist das schon eine deutliche Verbesserung der Performance – die Besucher einer solchen Präsenz bekommen schnell die angeforderten Informationen. Dem Internetdienst Facebook, der ca. 30.000 Server betreibt, um die Last von einigen Hundert Milliarden Seitenabrufen zu bewältigen, war das nicht ausreichend, und HipHop wurde innerhalb von zwei Jahren entwickelt. Im Grunde übersetzt HipHop den PHP-Quellcode in C++-Quellcode und diesen wiederum in Maschinensprache. So etwas nennt man einen zweistufigen Sourcecode-Transformator. Leider hat das System auch seine Schwächen, die zurzeit in der PHP-Community diskutiert werden. Das beginnt bei Funktionen wie eval(), die mit HipHop nicht mehr laufen, mit der Verkomplizierung der Entwicklungsprozesse, der berechtigten Sorge, dass [...]

2010-05-20T12:10:32+02:00Juni 21st, 2010|Allgemein|Kommentare deaktiviert für Schnelleres PHP mit HipHop

Die platzsparende Speicherung von IP-Adressen mit MySQL und PHP

Es ist eine ziemlich unbekannte Funktion von MySQL, die es erlaubt, IP-Adressen nicht wie üblich als VARCHAR(15), sondern als UNSIGNED INT(10) in der Datenbanktabelle abzuspeichern und natürlich auch wieder zurück in eine IP-Adresse zu verwandeln. Da VARCHAR(15) 16 Bytes verbraucht und der 4-Byte-Long nur 4 Bytes, braucht man damit nur ein Viertel des Speicherplatzes. Die dazu nötigen MySQL-Funktionen sind INET_ATON() und INET_NTOA(). Wenn Sie den Befehl SELECT INET_ATON(„127.0.0.1“), INET_NTOA(2130706433) an MySQL schicken, werden sie als Resultate 2130706433 und 127.0.0.1 zurückbekommen. In dieser rein numerischen Notation lassen sich zum Beispiel bestimmte Ranges von IP-Adressen wesentlich einfacher überprüfen als mit den IP-Adressen: SELECT `feld` FROM `tabelle` WHERE `ip`&lt; = INET_ATON('192.168.254.1') AND `ip`&gt; = INET_ATON('192.168.254.254'); Dieser Befehl zeigt alle gespeicherten IP-Adressen zwischen 192.168.254.1 und 192.168.254.254. Es gibt auch zwei entsprechende PHP-Funktionen, die genauso funktionieren. Mit ip2long() und long2ip() übernimmt PHP die entsprechende Umwandlung, so dass auch ohne MySQL das wesentlich einfachere Scannen von IP-Ranges möglich ist.

2010-05-20T10:00:07+02:00Juni 15th, 2010|Allgemein|1 Kommentar

Kompletter Shop als Open Source

Mit der Open Source Anwendung Free PHP Shopping Cart Software wird PHP-Entwicklern ein komplettes Shopsystem kostenlos zur Verfügung gestellt. Der Shop läuft mit PHP 4.0 und höher und braucht als Datenbank MySQL 4.0 oder höher. Das Installationsscript ist kurz und knackig, wenn man allerdings keine Schreibrechte für das Installationsverzeichnis vergibt, wird man von Warnungen nur so erschlagen. Deshalb ist es für einen schnellen Test sinnvoll, vor der Installation Schreibrechte für jedermann zu vergeben. Wenn Ihnen die Software gefällt und der Shop soll echt in Betrieb gehen, sollten Sie nur noch die absolut notwendigen Schreibrechte vergeben haben. Dateien und Unterverzeichnisse werden bei der Installation automatisch erzeugt und es gibt auch eine automatische Update-Funktion. Wenn Ihr Webspace vorbereitet und eine leere Datenbank angelegt ist, dauert der Installationsprozess nur wenige Minuten. Es gibt eine Verwaltung für Kunden, Lieferanten, Hersteller und Produkte und ein Warenkorbsystem. Produkte und Kategorien sind nicht begrenzt, Sie können auch beliebig viele Produktbilder einstellen. Eine Bestandskontrolle ist integriert und einzelne Produkte können auch ausgeblendet werden. Produktoptionen wie Größen oder Farben werden unterstützt. Als Bezahlschnittstelle ist Paypal integriert und auch Google Analytics wird unterstützt. Der Shop kann mit suchmaschinenfreundlichen URLs arbeiten. Für Kunden gibt es ein Login und eine „Forgot Password“-Funktion. Bestellbestätigungen und Hinweise gehen [...]

2010-05-18T09:06:21+02:00Mai 22nd, 2010|Allgemein|Kommentare deaktiviert für Kompletter Shop als Open Source

Drupal – ein CMS für Community-Websites

Drupal ist zwar ein weit verbreitetes CMS, hat seine Stärken aber nicht unbedingt im Content-Management. Das System ist eher für das Erstellen und Pflegen auch größerer Communities ausgelegt und diesen Bereich deckt es sehr gut ab. Drupal bietet dazu ein ausgefeiltes Benutzer-Management und viele Module wie Blogs und Foren als interaktive Bestandteile. Die Architektur von Drupal ist für Content Management Systeme typisch. Man kann das Kernsystem mit zusätzlichen Modulen erweitern, um die gewünschten oder benötigten Zusatzfunktionen zu realisieren. DieSchnittstelle ( API) zur Integration von solchen Modulen ist bei Drupal gut dokumentiert und im Internet wird eine Unzahl von Erweiterungen für das CMS angeboten. Das Aussehen der erstellten Seiten, also Design und Layout, wird von einem Template-System gesteuert. Auch diese Templates (auch Skins oder Designs genannt) zu Drupal findet man in großer Zahl im Internet. Zum Ablaufen braucht Drupal auf dem Server PHP in der Version 4.3.5 oder höher und als Datenbank MySQL oder PostgreSQL. Wenn die Apache-Komponente mod_rewrite zur Verfügung steht, unterstützt Drupal auch die Verwendung von suchmaschinenfreundliche URLs. Für einige Funktionen des CMS werden noch weitere Komponenten nötig, zum Beispiel das meist sowieso eingebundene XML-Modul von PHP für das Blogger-API oder die RSS-Syndication. Vor dem Installieren muss auf dem Server eine Datenbank für Drupal mit [...]

2010-04-27T07:35:01+02:00Mai 1st, 2010|Allgemein|Kommentare deaktiviert für Drupal – ein CMS für Community-Websites

Bluefish Version 2.0 – ein guter Programm-Editor für Anfänger

Bluefish ist ein flexibler Editor für Entwickler, der unter Anderem PHP, CSS, Javascript, XML, C, C++, CFML, gettext PO, HTML, Perl, Python, Ruby, Unix Shell, SQL und Java unterstützt. Man kann sehr produktiv mit Bluefish 2.0  arbeiten und spart sich gegenüber einem Standard-Texteditor viel Zeit. Der Editor verfügt über immer mehr Lokalisierungen (zur Zeit zehn) und ist auch auf die deutsche Sprache umschaltbar. Auch die Installationsroutine des Programms spricht Deutsch. Früher war Bluefish nur für Linux und Mac zu bekommen, seit der Version 1.3.7 gibt es auch eine native Version für Windows. Bluefish ist leicht und schnell. Im Vergleich mit anderen Programmeditoren braucht der Editor nur ein Drittel der Speicherressourcen. Er startet auch auf schwächeren Computern wie Netbooks echt schnell und lädt hunderte von Dateien in Sekunden. Dabei kann das Multi-Datei-Interface über 500 Dateien gleichzeitig geöffnet halten. Man kann mehrere Projekte mit Bluefish verwalten und selbstverständlich auch mit Dateien auf Netzwerkrechnern arbeiten. Eine unbegrenzte Undo/Redo-Funktion ist genauso selbstverständlich wie ein Auto-Recovery nach einem Crash oder ähnlichen Problemen. Intern arbeitet der Editor mit UTF8, unterstützt aber die meisten anderen Codierungen. Man kann Bluefish 2.0 kostenlos herunterladen, der Editor steht unter der Gnu Public License (GPL).

2010-04-20T12:37:20+02:00April 25th, 2010|Allgemein|Kommentare deaktiviert für Bluefish Version 2.0 – ein guter Programm-Editor für Anfänger
Nach oben