Bananas Development Blog: share your thoughts

Ach PHP

Die Sprache kann vieles und ist für Ihre Einsatzgebiete einwandfrei. Leider wird mir in der letzten Zeit zu viel geschlampt....

PHP patcht schnell, aber nicht gründlich
Die am gestrigen Donnerstag veröffentlichten Updates auf die PHP-Versionen 5.3.12 und 5.4.2 sind fehlerhaft. Darauf weisen die Entdecker der Schwachstelle hin, welche eigentlich durch die Updates behoben werden sollte.


So kann das nicht weiter gehen....


Wettern über PHP

Ach ja, PHP ist schon die Qual der Wahl wenn es um Anwendungen geht, die über das HTT-Protokoll arbeiten.

Leider ist PHP nicht das Beste wenn es um Genauigkeit geht. Es finden sich immer wieder Fehler die eigentlich nicht da sein sollten.

Large HTTP request Content-Length header values result in failed malloc() call
wrong equality of string numbers

Und hier noch ein längerer Artikel über das Design in PHP:
PHP: a fractal of bad design
PHP is an embarrassment, a blight upon my craft. It’s so broken, but so lauded by every empowered amateur who’s yet to learn anything else, as to be maddening. It has paltry few redeeming qualities and I would prefer to forget it exists at all.



Javascript in PHP ?!

Ach du Schei*e...

V8js in PHP

Was kommt als nächstes ??
Reicht GOTO nicht schon ?


...

PS: #61095 PHP can't add hex numbers

...

Haskell ich komme !


Suhosin und das memory_limit

Argh, das hätte man wissen sollen...

suhosin.memory_limit
Suhosin changes this fact and disallows setting the memory_limit to a value greater than the one the script started with, when this option is left at 0


Erspart so manche verzweifelte Suche nach einem "Fehler" ...

PHP ein wenig sicherer machen

Jede Programmiersprache hat Ihre Tücken und Fehler. Bei PHP ist das nicht viel anders.

Securing PHP
( Mirror )

PHP-Reboot

Rémi Forax will mit PHP-Reboot eine der populärsten Programmiersprachen neu erfinden. Er verspricht weniger $-Zeichen und Semikolons und Sicherheit von Hause aus.

Der Ansatz ist ja gar nicht mal so schlecht...

Rémi Forax, Java-Entwickler und Maître de Conférences an der Universität Marne-la-Vallée, arbeitet mit PHP-Reboot an einer Programmiersprache, die die Philosophie von PHP weiterführen, aber mit modernen Ansätzen verbinden soll. Umgesetzt wird PHP-Reboot auf Basis der Java Virtual Machine.

WTF ?
Wäre es nicht besser Java zu verbessern, und sicherer zu machen ?

Rémi Forax will PHP neu erfinden

Also ich sehe darin keine Vorteile...

Multiple DB Connections mit PHP

Sollte man mal mehrere Datenbank Verbindungen in einem Script benötigen sollte man an folgendes denken:

Sind die Datenbanken auf ein und dem selben Server ( der gleiche Host ) und der Benutzer UND das Passwort sind für beide Verbindungen gleich, DANN bekommt man Probleme.
Denn DANN werden die Abfragen immer auf die letzte Verbindung angewandt, egal ob der link_identifier richtig angegeben wird oder nicht.

If you are trying to open multiple, separate MySQL connections with the same MySQL user, password, and hostname, you must set $new_link = TRUE to prevent mysql_connect from using an existing connection.

$db1 = mysql_connect($dbhost, $dbuser, $dbpass);
$rv = mysql_select_db($dbname1, $db1);
$db2 = mysql_connect($dbhost, $dbuser, $dbpass);
$rv = mysql_select_db($dbname2, $db2);

wird zu:

$db1 = mysql_connect($dbhost, $dbuser, $dbpass);
$rv = mysql_select_db($dbname1, $db1);
$db2 = mysql_connect($dbhost, $dbuser, $dbpass, TRUE);
$rv = mysql_select_db($dbname2, $db2);


Die Lösung ist also, dass man das Erstellen einer neue Verbindung erzwingt. Was nicht sehr tolle ist wenn man performance braucht. Aber da kann man ja verschiedene Benuzter anlegen.

Und so was erfährt man erster aus den Kommentaren.....


E-Mail validation ist eigentlich unnötig

Sobal man von dem Benutzer eine E-Mail Adresse braucht, steht man vor dem "Problem" ob die Eingabe nun wirklich eine richtige E-Mail Adresse ist.

Als erstes wird man ja versuchen anhand einer Analyse der Eingabe festzustellen ob es eine korrekt formatierte E-Mail Adresse ist. Danach noch herausfinden via ping etc. ob die Domain vorhanden ist.

Leider gibt es bei der Überprüfung der Eingabe ein Problem.
Es sind viele Methoden im Umlauf die meinen sie könnten 100% testen ob die Eingabe eine E-Mail Adresse ist.

Tja, aber solche Zeichen sind in einer E-Mail Adresse auch gültig !!!
! $ & * - = ^ ` | ~ # % ' + / ? _ { }

Um Grunde sind es viel mehr Zeichen wenn sie richtig maskiert sind !

Also lassen wir diese Überprüfung am besten Falle weg und senden einfach eine Kontroll E-Mail.

Email address validation: please stop
I Knew How To Validate An Email Address Until I Read The RFC

In SilverStripe die Vergabe eines sinnvollen Seitentitels erzwingen

Da nicht jeder Redakteur eine Ahnung von SEO hat und diese auch nur Menschen sind, kann es in SilverStripe zu Problemen mit den Seitentiteln kommen.

Wenn man eine neue Seite anlegt bekommt diese automatisch einen Namen. Diesen muss man leider nicht ändern und somit können viele Seiten entstehen die den selben Seitentitel haben und auch noch eine fortlaufende URL.

Alles nicht so dolle.

Wie man diese Problematik leicht lösen kann habe ich hier beschrieben.

Ausgabe auf der Kommandozeile in Farbe mit PHP

Jeder hat sicherlich nicht nur PHP Scripte erstellt, die über den Apache ablaufen, sondern auch Scripte dir nur auf der Kommandozeile laufen und nicht für den Browser gedacht sind.

Oft lässt man sich ja das Ergebnis oder Statusmeldungen ausgeben. Man kann diese mit Hilfe vo ASCII Zeichen formatieren aber mit Farbe sieht das schon besser aus.

Farben in der Kommandozeile nutzen

PHP Funktionen begrenzen

PHP und wie andere Sprachen habe eine Fülle an funktionen.

Es werden aber nicht immer alle gebraucht. Manche sind je nach Einsatzort sogar "gefährlich".

In PHP gibt die Möglichkeit solche Funktionen zu deaktivieren.

Gefährliche PHP-Funktionen ausschalten

Weiterhin gibt es dazu noch das Suhosin Projekt. Damit kann man sich noch ein wenig mehr Sicherheit geben lassen.

Große Dateien mit PHP komprimiert als Download streamen

Die Idee und der Ansatz finde ich nicht schlecht und ist sicherlich eine Lösung große Dateien unkompliziert anzubieten.

Große Dateien komprimiert als Download streamen
Bei großen Dateien gibt es mehrere Probleme. Sie belegen viel Speicherplatz auf der Festplatte, bei der Komprimierung vergeht viel Zeit, die fertig komprimierte Datei belegt wiederum viel Speicherplatz, und eventuell wird auch viel Arbeitsspeicher benötigt beim Komprimieren oder ausliefern via PHP.


Twitter OAuth Anbindung

Wir hatten es ja schon mal davon. Nur diesmal ist es allgemeiner.

Creating a Twitter OAuth Application
OAuth can be a tricky concept to wrap your head around at first, but with the Twitter API now requiring its use, it is something you need to understand before creating a Twitter application. This tutorial will introduce you to OAuth, and walk you through the process of creating a basic application


( Mirror )

Meinungen über PHP von PHP Experten

Viele benutzen es und viele wollen es lernen.

Hier nun eine kleine Übersicht was denn so "bekanntere" Leute über PHP so denken und woe die Vorteile und Nachteile sind.


8 Experts Break Down the Pros and Cons of Coding With PHP
For the last post in this series, we’ve turned to the same experts with some more general questions: What makes PHP a good language? What are some of PHP’s drawbacks? And what are the best apps or cleverest hacks you’ve seen made with and/or for PHP?


Hier ist die Serie aus die dieser Beitrag kommt.

Mit PHP Dateien verschlüsseln

Sicher bekam man mal die Frage ob die Dateien, die man einer Anwendung hochgeladen hat, auch sicher sind. Vielleicht kam sogar einer auf die Idee diese zu Verschlüsseln.

Solchen Anfragern, sage ich dann immer, dass Daten die Vertraulich sind nichts auf einem Webserver zu suchen haben. Es ist einfach kein sicherer Ort...

Wenn aber nun mal doch so eine Anfrage kommt und man kann sie nicht abwehren, dann könnte man diese Anleitung hier als Lösungsansatz nehmen.
Encrypting uploaded files in PHP

Dabei sollte man aber beachten, dass dies nur ein "Hinderniss" für voreilige Script Kiddies ist und keine absolute Sicherheit bietet. Dazu kommt noch das Problem mit großen Dateien. Alleine der Upload solcher Dateien macht ja schon Probleme. Diese dann noch zu verschlüsseln, überfordert die Arbeitsspeichereinstellung für PHP.

Aber es sollte doch dem ein oder anderen Helfen.