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?

PHP-Framework Symfony 2.1 ist verfügbar

Wer Webseiten mit PHP erstellt, kennt sicher schon das PHP-Framework Symfonie. Mehrere Tausend Änderungen finden sich in der neuen Version 2.1 des quelloffenen PHP-Frameworks. Auch die Dokumentation und einige Tausend Unit-Tests sind hinzugekommen. Für eine so große Überarbeitung  ist die Kompatibilität zur Vorversion sehr gut geblieben. Neu ist der Composer, mit dem man einfach und schnell neue Projekte einrichten kann und der auch fast alle Abhängigkeiten berücksichtigt. Auch das Formularmodul und der Swiftmailer wurden überarbeitet und beide sind merklich schneller geworden. Das Symphony 2.1-Framework kann auf der Github-Projektseite als Tart- oder Zip-Archiv heruntergeladen werden. Auch einzelne Komponenten von Symfonie lassen sich dort einzeln herunterladen.

2012-09-07T12:57:37+02:00September 7th, 2012|Allgemein, Webwerkzeuge|Kommentare deaktiviert für PHP-Framework Symfony 2.1 ist verfügbar

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

PHP-Code mit php.js als Javascript im Browser ausführen

Von Niklas von Hertzen stammt php.js, eine Virtuelle Maschine (VM), die PHP-Code im Browser ausführen kann. Die Bibliothek liest den PHP-Code ein und wandelt ihn in Javascript-Code um, der dann von der PHP VM ausgeführt wird. Standardmäßig wird der Code synchron ausgeführt. Dadurch sind die Ausgaben direkt nach der Ausführung sichtbar. Man kann die VM aber auch via Callback-Funktion von einem Webworker ausführen lassen. Für komplexe Anwendungen auf Produktivsystemen ist die PHP-VM schon aus Sicherheitsgründen kaum geeignet, Trotzdem ist sie ganz brauchbar, wenn man nur ein wenig PHP für einen bestimmten Zweck braucht und zum Beispiel der Hoster kein PHP zur Verfügung stellt. Hier ein einfaches Anwendungsbeispiel: var engine = new PHP ('<?php echo "Eine Bildschirmausgabe"; ?>'); console.log( engine.vm.OUTPUT_BUFFER);

2012-07-25T12:28:50+02:00Juli 25th, 2012|Allgemein, Webwerkzeuge|Kommentare deaktiviert für PHP-Code mit php.js als Javascript im Browser ausführen

Oracle veröffentlicht Entwicklungsumgebung NetBeans 7.2

Oracle hat gerade die neue Version der quelloffenen Integrierten Entwicklungsumgebung (IDE) Netbeans 7.2 zum Download bereitgestellt. In der neuen Version wurden Performance und Kompatibilität deutlich verbessert. Die Gesamtperformance soll abhängig von der Projektkonfiguration verglichen mit der Vorversion Netbeans 7.1 um bis zu 60 % besser sein. Schon beim Start eines Prijekts wird der Vorteil der neuen Version 7.2 gegenüber NetBeans 7.1 mit 10 % angegeben. Eine komplette Beschreibung aller Neuerungen in NetBeans 7.2 findet man auf der “New and Noteworthy”-Seite im Wiki von NetBeans. Die kostenlose Entwicklungsumgebung NetBeans 7.2 kann man jetzt auf NetBeans.org downloden. Netbeans hat sich schon seit einigen Jahren von einer Java-IDE zu einer IDE für C++ und Java entwickelt und unterstützt auch PHP 5.4. Ich selbst nutze diese IDE von Oracle schon seit Jahren als Hauptwerkzeug zur Erstellung von dynamischen Internetseiten und -anwendungen mit PHP und Java und bin schon auf den Test der neuen Version gespannt...

2012-07-24T15:21:44+02:00Juli 24th, 2012|Allgemein, Webwerkzeuge|Kommentare deaktiviert für Oracle veröffentlicht Entwicklungsumgebung NetBeans 7.2

Die Favoriten unter den Programmiersprachen

Die neue Studie der Projektbörse Gulp, die gestern herauskam, basiert auf der Untersuchung von über 60.000 Anfragen nach Programmierdienstleistungen von freiberuflichen Software-Entwicklern. Dabei geht es nicht nur um die Erstellung von Internetseiten oder Apps, sondern auch um System- und Anwendungsprogrammierung für den Desktop. Im Fokus der Analyse standen natürlich die Stundensätze der selbstständigen Software-Entwickler, die im Mittel bei gut 70 € lagen. Aber man kann der Auswertung auch die aktuell angesagten Programmiersprachen entnehmen. Bei der Erstellung von "normalen" Webseiten sind immer noch PHP, ASP, Javascript und Perl die Sprachen der Wahl.  Aber auch bei komplexen Projekten gibt es einen Favoriten: die Java-Programmierung. Java/JEE ist mit 50% die gefragteste Programmiersprache, gefolgt von C/C++ mit 36% und C# (C sharp) mit 14%.

2012-04-28T07:56:42+02:00April 28th, 2012|Allgemein|Kommentare deaktiviert für Die Favoriten unter den Programmiersprachen

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