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:
Extrem genervt fand ich gerade heraus, das in der Konfigurationsdatei site.ini bzw. in der Override Datei site.ini.append.php der Wert des Parameters
EmailSender= example@domain.com
mit einem Leerzeichen beginnen muss. Ansonsten verschickt ez Publish keine E-Mails über sendmail
Das ist nicht so sonderlich toll, da das imho der einzige Paramter in den Konfigurationsdateien ist, wo zwischen dem “=” und dem Wert ein Leerzeichen sein muss. Da es aus der default Datei site.ini nicht ersichtlich ist war, half nur ein debuggen der kernel Dateien. Dabei kam raus, daß folgende Zeile aus der Datei lib/ezutils/classes/ezsendmailtransport.php daran Schuld ist.
$sendmailOptions .= ' -f'. $emailSender;
Das ganze betrifft sowohl ez Publish 3 und ez Publish 4.
In der Kundenzeitschrift von Home of Hardware bin ich über einen Artikel über Alice gestolpert. Alice ist eine 3D Programmierumgebung die von der Carnegie Mellon University entwickelt wurde und als E-Learning Software für Schüler und Studenten eingesetzt wird. Werd mir das mal installieren und schaun was da so geht…
Nachtrag: Eigentlich wollt ich schon mal was damit ausprobieren, leider schiesst das Programm nach dem Start mein System ab (Ubuntu 7.10), was ich ja nicht sooo toll finde…
Programming today is a race between software engineers trying to build bigger and better idiot-proof programs and the universe trying to build bigger and better idiots. So far, the universe is winning!
Eine interessante Sache hab ich in den FAQs von hosteurope gefunden. Es beschreibt eine Möglichkeit utf-8 kodierte Zeichen bei der Abfrage richtig zu sortieren…
SELECT utf8_spalte FROM tabelle
ORDER BY CONVERT(utf8_spalte USING latin1) COLLATE latin1_german2_ci ASC
Ich wollte schon immer mehr mit PEAR machen, was an und für sich ja eine gute Sache ist, da man sich die Adminstration der einzelnen Pakete und deren Anwendung dadurch schön vereinfachen kann. Allerdings hatte ich das Problem, dass Autocomplete bzw. Intellisense bei den PEAR Paketen nicht ohne Weiteres funktioniert hat. In der PDT (PHP Development Toolkit) gibt es im PHP Explorer einen Knoten namens “Include Paths”, über den man einfach die Libraries und Ähnliches eintragen kann. Dann klappts auch mit dem Autocomplete.
In Bildern:
Kontext Menü mit Option zum Setzen des “Include Path”.