Der Trinitätsoperator in PHP

Gerade kurze If/Else-Abfragen lassen sich mit dem Trinitätsoperator deutlich effizienter als normal schreiben. Das spart viel Tipperei, und das Programm wird auch schneller fertig. Hier ein Beispiel in "normaler" Schreibweise, bei dem nur festgestellt wird, ob eine Zahl größer oder kleiner als 2 ist:   if ($zahl > 2) {     $unterschied = 'größer als 2'; } else {     $ unterschied = 'kleiner als 2'; } Mit dem Trinitätsoperator geht das deutlich einfacher: $unterschied = ($zahl > 2) ? 'größer als 2' : 'kleiner als 2'; Probieren Sie es mal aus. Wenn Sie sich daran gewöhnt haben, werden Sie es nicht mehr missen wollen.

2012-11-08T19:33:29+02:00November 8th, 2012|PHP|Kommentare deaktiviert für Der Trinitätsoperator in PHP

PHP: Dateien mit DirectoryIterator auslesen

Was macht man, wenn man Dateien aus einem Verzeichnis auflisten soll und das Directory Listing ist deaktiviert und kann auch per .htaccess nicht eingeschaltet werden? Wenn PHP 5.0.0 oder höher zur Verfügung steht, ist das ein Fall für die neue interne Klasse DirectoryIterator. Hier das entsprechende Script:   <?php // Auszulesendes Verzeichnis $verz = 'dateiverzeichnis/'; ?> <table border="0" cellpadding="3" cellspacing="3">     <tr>     <th>Name</th>     <th>Größe</th>     <th>Aktualisierung</th>     </tr> <?php // Directory auslesen und Dateien ausgeben foreach (new DirectoryIterator($verz) as $datei) {     // Nur Dateien     if (!$datei->isDir() && !$datei->isDot())     {         echo '<tr>';         echo '<td><a href="'.$verzeichnis.$datei->getFilename().'">';         echo $datei->getFilename(). '</a></td>';         echo '<td>' .ceil( $datei->getSize()/1024 ). ' KB</td>';         echo '<td>' .date( 'd.m.Y', $datei->getMTime() ). '</td>';         echo "</tr>\n";     } }  // Tabellenende echo '</table>'; ?>

2012-11-08T19:21:20+02:00November 8th, 2012|PHP|Kommentare deaktiviert für PHP: Dateien mit DirectoryIterator auslesen

Emails mit deutschen Sonderzeichen in PHP

Die einfachste Methode, mit der Scriptsprache PHP Emails versenden zu lassen, ist der Befehl "mail". Viele Funktionen wie Kontaktformulare, Anmeldungen, Empfehlungen oder Mailinglisten nutzen dieses Kommando. Wer die ersten Versuche mit der Funktion mail macht, muss aber schnell feststellen, dass beispielsweise die deutschen Umlaute nicht wie gewünscht beim Empfänger ankommen. Grund dafür ist der ASCII-Zeichensatz, den der SMTP-Mailversand normalerweise nutzt, diese Zeichen nicht enthält. Mit dem nachstehenden Aufruf der Funktion mail werden die Sonderzeichen korrekt dargestellt: <?php mail ("name@empfaenger.de","Betreff","Inhalt","Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable" ); ?> Häufig ist es sinnvoller, statt des Zeichensatzes ISO-8859-1 den modernen UTF-8 zu verwenden, weil die meisten modernen PHP-Programme selbst oder auch verwendete Datenbanken mit UTF-8 codiert sind.

2012-11-07T08:18:59+02:00November 7th, 2012|PHP|Kommentare deaktiviert für Emails mit deutschen Sonderzeichen in PHP

Pfadkonstante in PHP 5

Wer interaktive Internetseiten mit PHP programmiert, entwickelt seine Anwendung in der Regel zunächst auf einem Entwicklungsserver oder in einem Entwicklungsverzeichnis wie beispielsweise neu. meinedomain.de. Seit PHP 5 ist die Konstante __FILE__ nutzbar, über die man recht einfach den absoluten Pfad bestimmen kann: $pfad=dirname(__FILE__); Damit lässt sich auch der Projektpfad einfach  durch eine Konfigurationsdatei im Rootverzeichnis der Anwendung bestimmen: define('PROJECTPFAD', dirname(__FILE__)); Seit PHP 5.3 kennt die Sprache auch die Pfadvariable __DIR__ , die das Ganze noch einfacher macht: define('PROJEKTPFAD', __DIR__); Bei Includes, die nicht im selben Verzeichnis liegen, ist Vorsicht geboten, den dann enthält __DIR__ den Pfad des Includes.

2012-10-22T10:18:16+02:00Oktober 22nd, 2012|PHP|Kommentare deaktiviert für Pfadkonstante in PHP 5

Kann jeder dritte Deutsche programmieren?

Nach einer Umfrage des  Branchenverbandes Bitkom anlässlich des heutigen “Europäischen Tages der Sprachen” hat in der Tat jeder dritte Deutsche Grundkenntnisse in einer Programmiersprache. Das entspricht ungefähr der Verbreitung von Französischkenntnissen der Deutschen, die auch bei 33 % liegen. Die Reihenfolge der am häufigsten genannten Sprachen: BASIC, JAVA, C und PHP. Bei den Männern gaben 46 % und bei den Frauen 21 % an, Grundkenntnisse in einer Programmiersprache zu haben, im Mittel also 33 %. Da es aber eine Befragung ohne Überprüfung war, kann man aber schon bezweifeln, dass jeder Dritte Deutsche auch nur ein mäßig anspruchsvolles Programm zum Laufen bringt…

2012-09-26T07:21:57+02:00September 26th, 2012|Javascript, PHP|Kommentare deaktiviert für Kann jeder dritte Deutsche programmieren?

PayPal IPN unterstützt HTTP 1.0-Protokoll ab 1.2.2013 nicht mehr

Wer Internetseiten für Shops erstellt oder pflegt, die auch eine PayPal-Zahlungsschnittstelle nutzen, muss möglicherweise Änderungen vornehmen.  PayPal erweitert den IP-Adresspool seiner Server. Als Teil dieses Übergangs plant der Zahlungsdienstleister, die Unterstützung des HTTP 1.0-Protokolls ab 1. Februar 2013 einzustellen. Das wirkt sich auf die Instant Payment Notification (IPN) aus in den Zahlungsschnittstellen von Internetshops und Verkaufsstellen aus, die IPN nutzen. PayPal hat sich in einem Foren-Eintrag und per Email bei Kunden, die IPN schon nutzen, dazu geäußert und weist insbesondere darauf hin, dass die IPN- Scripte nur noch funktionieren, wenn das HTTP 1.1-Protokoll verwendet wird, das den Header "Host: www.paypal.com" im Request beinhalten muss. Hier ein Auszug aus der Email, nach dem Programmierer ihre Zahlungsschnittstelle umstellen können:   Was bedeutet das im Detail? Alle eingehenden Anfragen benötigen ab dem 1. Februar 2013 einen "Host"-Header, der den HTTP 1.1-Spezifikationen entspricht. Dieser Header wurde für HTTP 1.0 nicht benötigt. IPN- und PDT-Skripte, die nach dem 1. Februar 2013 HTTP 1.0 verwenden, werden möglicherweise die Fehlermeldung "HTTP/1.0 400 Bad Request" erhalten. Aus diesem Grund können IPN-Benachrichtigungen nicht erfolgreich bestätigt werden oder PDT-Skripte können keine Transaktionsinformationen abrufen. Erforderliche Maßnahmen vor dem 1. Februar 2013 Händler müssen Ihre IPN- und/oder PDT-Skripte aktualisieren, HTTP 1.1 verwenden und den "Host"-Header in dem IPN-Verifizierungsskript [...]

2012-09-07T08:27:10+02:00September 7th, 2012|Javascript, PHP|Kommentare deaktiviert für PayPal IPN unterstützt HTTP 1.0-Protokoll ab 1.2.2013 nicht mehr

Twitter-Entwickler immer unsicherer

Twitter will die Regeln für seine Kurzmitteilungs-Plattform verschärfen, damit der Nutzer eine "konsistentere Erfahrung" angeboten bekommt. Wenn man das in Klartext übersetzt, könnte es heißen: Die Benutzer sollen die Originalfunktionen von Twitter nutzen, wo das Unternehmen auch Werbung schalten kann. Das sagt natürlich noch nicht genau, was sich bei Twitter ändern wird. Aber die ersten Entwickler sind schon abgesprungen oder haben Probleme, weiteres Geld für Twitter-Projekte aufzutreiben. Es wurde sogar schon eine Petition dazu gestartet, weil Twitter hartnäckig zu den Fragen schweigt. Also seine Sie vorsichtig bei der Erstellung von Internetseiten mit Twitter-Funktionen, denn es könnte sein, dass die bald nicht mehr funktionieren.

2012-08-16T09:13:58+02:00August 16th, 2012|Allgemein, PHP|Kommentare deaktiviert für Twitter-Entwickler immer unsicherer

PHP 5.4 ist freigegeben . Updaten, ja oder nein ?

Die soeben freigegebene neue Version 5.4 der beliebtesten Web-Programmiersprache PHP ist sicher ein Meilenstein für die Entwickler dynamischer Internetseiten. Deutlich bessere Performance, effiziente Speicherverwaltung und neue Funktionen für das objektorientierte Programmieren sprechen für einen schnellen Umstieg auf die neue Hauptversion. Traits zur Wiederverwendung von Methoden, Array-Dereferenzierung (Syntax Chaining) und sogar die Aktivierung eines eingebauten Webservers sind möglich. Allerdings wurden auch viele Altlasten aus PHP entfernt: Safe Mode, Register Globals, Magic Quotes sind damit Geschichte. Das macht es für kleinere Anbieter von Webhosting schwierig, denn wenn man einfach alle virtuellen Webs updatet, besteht eine Wahrscheinlichkeit, dass die eine oder andere dynamische Internetseite sich nicht mehr so verhält wie vorher. Diese Wahrscheinlichkeit ist umso höher, je älter die vorher verwendete PHP-Version ist. Um das neue, bessere PHP 5.4 für neue Anwendungen nutzen zu können und die Vorteile für die Seitenerstellung zu nutzen ohne Gefahr zu laufen, dass alte Anwendungen nicht mehr sauber laufen, ist ein zweiter Internetserver mit dem neuen PHP eine gute Idee. Hier lohnt es sich bei seinem Webspace- oder Hosting-Anbieter nachzufragen.

2012-03-07T08:01:50+02:00März 7th, 2012|PHP|Kommentare deaktiviert für PHP 5.4 ist freigegeben . Updaten, ja oder nein ?

Joomla 2.5 mit neuen Funktionen

Das Open Source CMS Joomla kommt in der neuen Version 2.5 mit einigen Neuerungen daher. Dazu gehört zum Beispiel die erweiterte Suchfunktion, die nun mit Wortstämmen und automatischer Vervollständigung arbeiten kann. Die Suche an sich soll auch deutlich schneller geworden sein und dabei auch natürliche Sprache erkennen können. Für den Webseitenersteller könnte interessant sein, dass Joomla jetzt nicht mehr nur MySQL unterstützt. Version 2.5 arbeitet auch mit dem Microsoft SQL-Server, in Kürze sollen auch PostgresSQL, SQLite, Oracle und PDO mit Joomla zusammenarbeiten. Die mit Joomla 1.6 eingeführten automatischen Updates informieren den Admin jetzt auch, wenn ein Update zur Installation bereitsteht. Im Joomla-Blog findet man weitere Details.

2012-01-26T09:13:37+02:00Januar 26th, 2012|PHP|Kommentare deaktiviert für Joomla 2.5 mit neuen Funktionen

POST-Anfragen können Internetserver lahmlegen

Auf dem Kongress des Chaos Computer Clubs wurde eine neue Schwachstelle von Internetservern offengelegt. Die Entwickler Alexander Klink und Julian Wälde haben das Problem entdeckt und beschrieben. Über POST-Requests kann man gezielt Hash-Kollisionen auslösen, die die Last eines Internetservers drastisch erhöhen, und so eine DoS-Angriff fahren. Das klappt im Grunde bei allen Webservern, denn das Problem liegt in den verwendeten Scriptsprachen wie PHP, ASP oder Javascript. Durch solche provozierten Hash-Kollisionen braucht man weniger als 100 kBit/s Bandbreite, um eine moderne CPU komplett auszulasten und einen Internetserver in die Knie zu zwingen. Als bestes Mittel dagegen gilt es, die Hash-Funktion zu randomisieren. Einige Hersteller haben schon auf die Angriffsmöglichkeit reagiert. Microsoft bietet einen Patch für ASP.Net an, der heute erscheinen soll. Bei PHP empfiehlt sich die Absicherung mit Suhosin an. Für Tomcat gibt es ein Workaround und für Ruby einen Patch.

2011-12-29T14:53:20+02:00Dezember 29th, 2011|Javascript, PHP|Kommentare deaktiviert für POST-Anfragen können Internetserver lahmlegen
Nach oben