Lecza István (Isu)

My developer life, CV and others...

július 4 14:19:04, 2009

A minap egy fura ötletbe, megoldásba futottam, egy php fájlra való post-olás közben. Mit ad isten, a feladat az volt, hogy multipart encode-olatlan fájlt küldjünk egy php fájlnak. Volt némi meglepetésben részem, ha kíváncsi vagy, olvass tovább.

Akkor néhány szót a környezetről. Symbian S60 operációs rendszerre írt program, egy fájlt és némi adatot küldött GET-ben egy php fájlnak. Valahogy így nézett ki: upload.php?adat1=ertek1&adat1=ertek2=adat2. A GET-ben küldött adatokkal természetesen nem volt gond, a szokott módon kezeltem.

Azonban a küldött encode-olatlan fájl bináris adat volt, melyet a POST változó tartalmazott, de nem a megszokott érték-kulcs formában, és nem is pontosan azt tartalmazta amit az S60 küldött.

A küldött fájlt sorról-sorra felolvasva, és a POST válzónak értékül adva továbbította a telefon. Mielőtt azonban php oldalon a POST felöltődött volna, a speciális karaktereket a php eltávolította. A POST adatot fájlba írtam és az így kapott fájl természetesen már nem az volt amit kapni szerettem volna.

Böngészgettem hát, hogy hogyan kaphatnám meg a POST értéket abban a formában, ahogy azt az S60 küldi. Egy fura megoldásra találtam, amit magamtól soha ki nem találtam volna.

A változatlan raw POST data kiolvasása a következős sor segítségével lehetséges:

$raw_post_data = file_get_contents("php://input");

Ez volt a cheat kódex sorozat első része...

HOZZÁSZÓLÁS, VÉLEMÉNYEK

* Név
* E-mail
Weboldal, blog
* Hozzászólás
* Biztonsági kód
* A "Weboldal, blog" mező kivetélével minden mező kitöltése kötelező!