Wer oder was ist PHP-FIG und was versteckt sich hinter PSR-0 bis PSR-4?

Wenn man sich etwas tiefer mit dem Thema PHP und den diversen Frameworks beschäftigt, stößt man über kurz oder lang über zwei Begriffe. Gemeint sind die im Titel erwähnten PHP-FIG und die 5 Varianten der PSR. Doch was genau verbirgt sich dahinter?

Weiterlesen

Auf Fehlersuche in Selfoss 2.5

Jetzt wo Google Reader demnächst dicht macht, ist man natürlich auf der Suche nach Alternativen. Klar, kann man feedly benutzen, doch wer über einen eigenen Webspace verfügt, kann auch wunderbar eine Open Source Lösung installieren. Bei Selfoss hörte sich alles ganz wunderbar einfach an. Doch der Schein trügt.

Weiterlesen

In PHP mit PDO Daten per SELECT abfragen

Verwendet man externe Daten in seiner Abfrage ist es ratsam nicht direkt per PDO::query() darauf zuzugreifen. Hierfür bietet sich PDO::prepare() an.

Als erstes brauchen wir eine Datenbankverbindung:

$dbc = new PDO($dsn, $username, $password);

Danach können wir unsere Abfrage vorbereiten. Der Parameter, der später für email eingesetzt werden soll, wird durch :email in unserem SQL-Statement markiert.

$st = dbc->prepare("SELECT name FROM users WHERE email=:email");

Jetzt binden wir den Parameter :email an die Abfrage.

$st->bindParam(':email',$email);

Durch das Aufrufen von PDO::execute() starten wir die Abfrage.

$st->execute();

Jetzt müssen wir nur noch das Ergebnis der Abfrage per PDO::fetch() in die Variable $usr schrieben.

$usr = $st->fetch();

Die Variable $usr stellt nun einen Array dar, den wir entsprechend auslesen können. Wenn alles geklappt hat, dürften wir den Namen zur abgefragten Emailadresse erhalten.

Spielplan für eine Liga in PHP generieren

Nachdem ich seit geraumer Zeit schon auf der Suche nach einem Weg war um einen Spielplan zu generieren und die eigenen Versuche mit diversen Skizzen irgendwie nicht zum gewünschten Ergebnis geführt haben wurde ich schließlich im Internet fündig.

Auf der Internetseite http://www.x3m.ch wurde ich schließlich fündig. Andy Theiler hatte dort einen Algorithmus umgesetzt, welcher schnell und unkompliziert einen Spielplan generiert. Leider war es nicht möglich auch eine ungerade Zahl an Teams für die Berechnung zu verwenden.

Mit ein paar Veränderungen ist es nun möglich, auch z.B. einen Spielplan mit 5 Spielern zu generieren. In diesem Fall wird einfach in der Klasse die Anzahl der Teams um eins erhöht. Dadurch funktioniert die Berechnung. Da wir aber natürlich nur ein Team weniger haben, werden die Spiele, die mit dem zusätzlichen Team zusammenhängen aussortiert. Würde also bedeuten, dass pro Spieltag ein Team nicht dabei wäre. Im Endeffekt jedoch jeder einmal, bzw. mit Rückrunde zweimal, gegeneinander gespielt hat.

Im Anschluss befindet sich noch die in PHP programmierte Klasse zusammen mit meinen Ergänzungen. Wer das Original sucht, sollte hier einmal vorbei schauen.

Weiterlesen

Formulare in WordPress-Plugins per Session absichern

Es kommt vor, dass man Formulare durch eine zufällige Zeichenfolge vor erneutem Versenden schützen möchte. Um diesen Wert zu speichern, bietet sich die Session des aktuellen Benutzers an. Auch kann dadurch niemand mit einem selbstgebastelten Formular Daten übermitteln. Eine wichtige Schwachstelle wäre dadurch geschlossen.

Will man dies jedoch in einem WordPress-Plugin machen, steht man vor dem Problem, dass WordPress keine Sessions verwendet. Man könnte natürlich auch ein Cookie verwenden, aber nicht alle Besucher lassen Cookies zu. Die Session ist also unsere erste Wahl.

An sich ist das Ganze auch recht simpel. Es reicht, wenn man per add_action() bei ‚init‘ eine simple Funktion aufruft, die prüft, ob bereits eine Session besteht und wenn nicht, diese startet. Somit haben wir eine aktive Session in die wir einen Zufallswert speichern können.

Generieren wir nun unser Formular benötigen wir eine zufällige Zahl, besser sogar eine zufällige Zeichenfolge. Diese wird im Formular als verstecktes Feld eingebunden. Beim Empfang des Formulars wird dann geprüft, ob der Eintrag des Formulars mit der Session übereinstimmt. Als erstes sollte nun der Eintrag in der Session wieder gelöscht oder geleert werden.

Man ist jedoch damit nicht auf WordPress beschränkt, dies funktioniert natürlich überall in PHP wo mit Sessions gearbeitet wird. Zur Absicherung auf jeden Fall zu empfehlen.

XAMPP Beta mit PHP 5.3

Wer sich etwas schwer damit tut, PHP 5.3 selbst in ein bestehendes XAMPP zu integrieren, der sollte sich einmal die neue Betaversion ansehen. Dort ist diese Version schon integriert. Abgeraten wird jedoch, wie bei jeder Software in diesem Zustand, diese Beta jedoch für produktive Umgebungen zu verwenden. Als Testsystem und für die ersten Gehversuche mit PHP 5.3 völlig ausreichend.

–> apachefriends.org

Galileo Press: PHP 5.3 & MySQL 5.1

Wer sich das im Titel genannte Buch gekauft hat, dem wird beim programmieren schnell auffallen, dass die Verwendung für Namespaces nicht wie beschrieben funktioniert. Die Ursache des Problems liegt jedoch nicht bei den Autoren des meines Erachtens nach herrvorragenden Buches, sondern daran, dass sich die Truppe hinter PHP dazu entschieden hat ein paar Dinge zu verändern.

Hätten wir vorher wie folgt programmiert:

namespace System::Test::Namensraum;

wird daraus nun folgender Code:

namespace System\Test\Namensraum;

Jetzt sollte das ganze wieder richtig funktionieren.

Natürlich stimmen deshalb die Quelltexte auf der CD des Buches nicht mehr. Eine aktualisierte Fassung kann man jedoch über die Internetseite phpundmysql.de beziehen.

XAMPP mit PHP 5.3 RC verwenden

Derzeit beschäftige ich mich ein wenig mit PHP 5.3, um ein wenig tiefer in die objektorientierte Programmierung in Webapplikationen einzusteigen. Mein Problem dabei war, wie bekomme ich am den Release Candidate von PHP 5.3 in meinem XAMPP ans laufen. Letztenendes erwies sich die ganze Angelegenheit als recht simpel.

  1. Stoppen des Apaches
  2. Herunterladen des aktuellen RCs von php.net (Variante: VC6 x86 Thread Save, ZIP)
  3. Sicherung von /apache und /php
  4. Überschreiben der Dateien im Ordner /php mit den Dateien aus dem RC
  5. Kopieren der .dll Dateien nach /apache/bin
    Wobei hier einfach darauf geachtet werden sollte, welche .dlls schon vorhanden sind und diese einfach ersetzt werden. Die restlichen .dlls werden dort nicht benötigt.
  6. Starten des Apache

Wenn jetzt alles geklappt hat, solltet ihr im Browser unter http://localhost/xampp/ eine Angabe zu PHP 5.3 finden, genauso unter phpinfo().