file_get_contents(‚php://input‘) nevrací žádná data (pokračování)
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
5 Odpověď
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í?