file_get_contents(‚php://input‘) nevrací žádná data (pokračování)

Vyřešeno934 zhlédnutíWebhosting
0

Dobrý den.

Už jsem se ptal jednou zde (jde o získávání dat z POST requestu), ale než jsem stačil získat potřebné informace, otázka byla označena jako vyřešená (což není).

Přidávám tedy další kontext:

  • zasílaná HTTP hlavička je „Content-Type: application/json“, tj. nastavení enable_post_data_reading by nemělo mít vliv
  • složky session a tmp v kořenovém adresáři FTP mám a opravená práva souborů mají také

Nenapadá vás tedy prosím, proč na straně vašeho webhostingu není možné k POST datům přistupovat?

Děkuji a zdravím
TK

Role: Zákazník
Otázka je uzamčena pro nové odpovědi.
MB313456 Vybral nejlepší odpověď
0
148.89K Odpověď od WEDOS Internet, a.s. 0 Komentář

Proxy server můžeme za určitých okolností Webhostingu vypnout, i když to není úplně žádoucí řešení, zejména pokud na službě běží webů víc. O vypnutí můžete požádat přes formulář. Uveďte název služby a odůvodnění žádosti.

Role: Podpora Web: https://kb.vedos.cz Vizitka: VEDOS Specialista na Znalostní bázi
MB313456 Vybral nejlepší odpověď
0
148.89K Odpověď od WEDOS Internet, a.s. 0 Komentář

Dobrý den,

posty uzavíráme 14 dní po odeslání poslední reakce. Pokud řešení podpory/zákazníka nefunguje, můžete post udržet „naživu“ sdělením, že to už nastavené dávno máte, nebo že jste to zkusil, ale nepomohlo to.

K Vašemu problému – běžná řešení nepomohla, ale chyba na serveru je také nepravděpodobná, protože kdyby nefungoval POST obecně, řešilo by takovou chybu mnohem víc zákazníků. Z naší strany bohužel chyby vlastního kódu neřešíme. Jediné další možnosti řešení, které mě napadají, jsou:

  • Vytvořit testovací složku/subdoménu a otestovat funkcionalitu v nejjednodušší možné podobě. Potom přidávat potenciálně problematický kód.
  • Aktivovat na Webhostingu errorlog a zjistit, jestli se něco neobjeví tam.
Role: Podpora Web: https://kb.vedos.cz Vizitka: VEDOS Specialista na Znalostní bázi
MB313456 Odpověděl na otázku
0

Děkuji za odpověď i za vysvětlení, jak funguje životnost postu 🙂 (vlastně mi to někdy přijde škoda, že posty uzavíráte pro budoucí odpovědi – myslím, že by tam mohly vznikat hezké diskuze)

Každopádně zpět k věci. Zkoušel jsem v rámci testování posílat POST request odjinud než dosud a tam mi pomocí následujícího skriptu data načíst šlo. Obecně je to tedy evidentně v pořádku.

$request = file_get_contents('php://input');
$data = json_decode($request, true);

Nicméně když se snažím zpracovat data POST requestu z té jedné konkrétní služby, k přečtení dat nedojde. V hlavičce sice vidím, že tam nějaký obsah je (tj. Content-Length je nenulová), nicméně proměnná $data zůstává prázdná. V podstatě se to chová podobně jako popisuje kolega ve vedlejším vlákně (jen v mém případě se to nezná být závislé na velikosti dat – jedná se o pouhých 1,4 kB).

Je ale pravda, že v případě toho problematického requestu to nyní háže v errorlogu následující (některé hodnoty změněny na XXX):

Wed Aug 14 22:20:38.642373 2024] [proxy_fcgi:error] [pid XXX:tid XXX] (70007)The timeout specified has expired: [id XXX] [client XXX] AH01075: Error dispatching request to : (reading input brigade)AH01075: Error dispatching request to : (reading input brigade)

Možná bude toto nějaké vodítko, proč k přečtení dat nedochází?

Role: Zákazník
JS324546 Změnil status na publikováno
0
50.16K Odpověď od WEDOS Internet, a.s. 0 Komentář

Dobrý den,

jde o zpracování dat z jedné konkrétní služby nebo se problém objevuje i jinde? Na jakém hostingu to testujete konkrétně?
Máte případně příklad konkrétních kódů, které bychom mohli otestovat?

Takto nedokážeme přesně říci, zda-li je problém u konkrétní služby, nebo narážíte na nějaký limit atp.

Role: Podpora
PK265670 Odpověděl na otázku
0

Dobrý den.

Udělal jsem pár dalších testů a ukazuje se, že čtení POST requestů z jiného serveru je v pořádku. Dle všeho se tedy jedná o problém konkrétní služby (Anabix CRM).

S podporou dané služby komunikuji, ale konkrétní kódy se mi zatím získat nepodařilo. Dostal jsem pouze informace, že „jde pravděpodobně o nějak špatně nastavený proxy server“.

U vás to testuji na webhostingu, který běží na clusteru hc1-wd281.

Kódy se ještě pokusím získat, ale pokud by vám výše uvedené informace už k něčemu byly, budu rád za návrhy možného řešení.

Děkuji
TK

Role: Zákazník
MB313456 Změnil status na publikováno