Bookmarks vom 11.03.2010 bis zum 16.03.2010

No Comments

Dies sind interessante Links vom 11.03.2010 bis zum 16.03.2010:

PHPUnit mittels PTI in Eclipse einbinden

No Comments

Gerade gefunden und klingt hervorragend:

PHPUnit mittels PTI in Eclipse einbinden | PHP hates me – Der PHP Blog.

Typo3 – <> werden bei br und b etc entfernt

No Comments

Gestern hatte ich bei mir lokal ein merkwürdiges Verhalten. Ich hatte eine Extension um eine Textarea erweitert. Das Ganze mit Hilfe von Flexform. Normalerweise (dachte ich) kann man da einfach HTML Code reinpacken und alles ist gut.

Nach dem Speichern sah ein <br /> allerdings so aus: br /. Die Tag-Zeichen waren weg.

Anschließend mal mit dem RTE probiert. Selbes Problem. Erst dachte ich… Scheiß Typo… bestimmt irgendein komisches Sicherheitsgedöhns. Mit TS rumgedoktort. Nix. Gar nix hat sich geändert.

Dann gegen Ende des Abends bin ich über folgenden Beitrag gestolpert:

TemplaVoila + RTE: <> werden bei br und b etc entfernt – TYPO3 Forum & Portal.

Da stand dann was von PP Version sei Schuld dran. Ein Beitragender meinte allerdings es läge an der libxml2-Version.

Scheint so zu sein, da auf dem Live-Server alles funktioniert. Lokal hab ich nen XAMPP mit PHP5.2.9.

Zend Framework und AMF

1 Comment

Gestern haben wir einen Test mit der Zend_Amf Komponente gemacht. Es ist total einfach, wenn man ein paar Sachen beachtet:

  • Return-Werte dürfen immer nur Arrays sein und
  • es darf z.B. kein Controller bzw. keine Klasse, die von einem Controller erbt, genommen werden.

Dann ist es wirklich ziemlich einfach.

PHP – Rohdaten eines Requests auslesen

1 Comment

In PHP ruft man normalerweise die übermittelten Daten via $_POST, $_GET oder $_REQUEST ab. Dies sind sogenannte Superglobale und kommen als Array daher.

Muss man nun allerdings Daten in Empfang nehmen, die nur über den Header erreichbar sind, z.B. die Daten werden direkt in die Request-Felder eingebettet. Normalerweise sieht ein Wert ja folgendermaßen aus: mykey=myvalue. Dieses wird dann auf $_POST['mykey'] abgebildet. Der Wert ist darin gespeichert. Soll nun, in dem Beispiel myvalue aus unerfindlichen Gründen direkt eingebunden werden, was nicht HTTP-konform ist, hat man ein Problem. Selbiges Problem hat man, wenn eigene Headerdaten gesetzt werden, allerdings ist die Lösung die gleiche.

Es gibt in PHP eine Fülle an Streams. Mithilfe des Inputstreams kann man den Datenverkehr roh (raw) abgreifen. Damit kann man dann die “versteckten” Daten wieder erlangen. Folgender Codeausschnitt soll dies veranschaulichen:

<?php
$fh = fopen('php://input', 'r');
if (!$fh) {
  echo "Error";
}
$xml = '';
while (!feof($fh)) {
  $data .= fgets($fh);
}
fclose($fh);
echo $data;
?>

Edit: Wie dolce unten anmerkt, gehts unter PHP5 so viel einfacher. Aber warum einfach, wenns auch kompliziert geht :)