Autor | Zpráva | ||
---|---|---|---|
Jean Profil |
#1 · Zasláno: 25. 4. 2006, 23:46:40
Omlouvam se, neco podobnyho se tady resilo vcera: http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=9&topic=24 808 , Leo tam zminuje, ze je objevovani se takovych nahodnych retezcu typu "359f". Bohuzel kod, ktery mi posila server zpracovavam fci eval(); a te se nic takoveho nelibi, jak bych mohl zakazat zobrazovani techto retezcu?
thx |
||
Leo Profil |
#2 · Zasláno: 26. 4. 2006, 10:07:44
Myslite zakazat ty retezce co dela transfer-encoding: chunked? A mate moznost ovlivnit skript na tom serveru, ze kteryho ctete? Jakym zpusobem ta data ze vzdalenyho serveru nacitate? Leo
|
||
Jean Profil |
#3 · Zasláno: 26. 4. 2006, 14:00:49
ano, potrebuji aby se ty retezce neukazovaly(pri zpracovani evalem to hazi chybu), server mi posila jako odpoved na POST pozadavek tyto data(jsou to kompletni phpkody pro zapis do db, ktere se pak provadi na druhem klientovi(localhost)), k tomu skriptu mam kompletni pristup...
|
||
Leo Profil |
#4 · Zasláno: 26. 4. 2006, 14:06:51
Pokud tu odpoved ctete pres fsockopen nebo tak neco, tam tam mate tuto syrovou komunikaci se vsim vsudy, i s http hlavickou atd. Muzete se pokusit to nacist pres praci se vzdalenymi soubory (fopen) nebo pouzit knihovnu curl, ktera by mela vratit jen samotnou odpoved bez tech znaku. Druha moznost je zkusit ten vystup vzdaleneho serveru odchytit do output bufferu, zjistit velikost dat a poslat hlavicku Content-length / pak server nema duvod posilat to v transfer-encoding chunked. Leo
|
||
Jean Profil |
#5 · Zasláno: 26. 4. 2006, 14:36:25
presne ctu to pres fsockopen, protoze je tomu pres socket posilan POST pozadavek. Jestli jsem to dobre pochopil, musi byt php zkompilovano primo s curlem(to by mohl byt problem) Mohl byste prosim popsat blize, jak s tim output bufferem?
diky moc |
||
Leo Profil |
#6 · Zasláno: 26. 4. 2006, 14:40:03 · Upravil/a: Leo
Mozna bych jeste dodal, kde se ta podivnost (transfer-encoding: chunked) bere. Trochu lidove, ale zhruba takto: Driv server http spojeni po kazdem pozadavku ukoncil, takze klient vedel, ze uz nema ocekavat data a ze mu vsechno co si vyzadal prislo. Dnes je mozne spojeni nechat otevrene, ale pak se musi klient nejak dozvedet, ze prenos daneho dokumentu na tom spojeni konci. Pokud server vi, jak to, co posila je velke datove, tak posle hlavicku Content-legth a tam to uvede. Klient vi, ze ma cekat 5678 bajtu, jakmile dorazi, vi, ze soubor ma komplet. Pokud ovsem server nevi, jak to bude velke, coz je napriklad pripad php skriptu, kdy se vystup posila uz behem jejich behu, pak tohle udelat nemuze. Posila proud dat, a musi nejak oznacit konec. Takze je posila po kouskach (chunk, kouknete to anglicko-ceskeho slovniku) a pred kazdym kouskem uvadi jeho delku v bajtech (jako sestnactkove cislo) / to jsou ty podivne retezce. Pokud uz nic k odeslani nema, posle nulu.
Pokud pouzijete output buffering (viz manual php, fce co zacinaji ob_ ....), pred odeslanim obsahu bufferu zjistite delku, a poslete hlavicku Content-length, pak by to melo prijit ok, bez chunku. Leo |
||
Jean Profil |
#7 · Zasláno: 26. 4. 2006, 14:41:27
jo, to sem vedel, horsi je ze nevim, jak to upravit, aby to neposilalo "chunked":/
|
||
Leo Profil |
#8 · Zasláno: 26. 4. 2006, 14:42:34
Ted jsem to tam doplnil. Leo
|
||
Leo Profil |
#9 · Zasláno: 26. 4. 2006, 14:43:53
Neco jako
http://mirrors.inway.cz/manual/en/function.ob-get-length.php posledni priklad (komentar) dole, Leo |
||
Jean Profil |
#10 · Zasláno: 26. 4. 2006, 15:09:16
supr, diky moc leo, to je presne ono, uz to funguje...:)
|
||
Leo Profil |
#11 · Zasláno: 26. 4. 2006, 15:11:00
Samotneho me to tesi :-) Leo
|
||
Jean Profil |
#12 · Zasláno: 26. 4. 2006, 15:12:37
:-)
|
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0