file_get_contents(‚php://input‘) nevrací žádná data
Snažím se zpracovat data, která jsou na server posílána pomocí POST requestu, ale ať zkouším cokoliv, vrací mi to prázdné údaje.
Prostudoval jsem typické problémy, na kterých by to mohlo drhnout, ale v nich to podle všeho není. Pro kontext tedy uvádím, že:
- mám ověřené, že data jsou zasílána metodou POST
- allow_url_fopen je na serveru povolené
- nenašel jsem moment, kdy by byl request přesměrováván pomocí .htaccess
Data se snažím získat pomocí kódu níže.
$request = file_get_contents('php://input');
$data = json_decode($request, true);
Nemáte prosím tip, v čem by mohl být zakopaný pes?
4 Odpověď
Máte korektně nastavené enkodování?
<var class="filename">php://input</var> is not available in POST requests with enctype="multipart/form-data"
https://www.php.net/manual/en/wrappers.php.php#wrappers.php.input
Podal jsem to možná jako obecný dotaz, ale v jiných prostředích mi data pomocí stejného skriptu získat povedlo. Proto si myslím, že by to s vašimi službami souviset mohlo a i z toho důvodu se ptám zde a ne třeba na Stack Overflow 😉
Budu proto rád, když zvážíte, že se na to přeci jen podíváte. Děkuji.
Dobrý den,
Vaši zprávu jsem publikoval. Protože se přímo netýká našich služeb, necháváme ji k zodpovězení komunitě. Pokud Vám cca do 14 dnů nikdo neodpoví, vrátí se k Vašemu dotazu přímo zákaznická podpora WEDOS.
Z Vašeho dotazu jsem nepoznal, jestli Serverem myslíte službu Webhosting, nebo něco jiného.
Co se Webhostingu týče, nejběžnějším problémem, který PHP občas brání ve správném fungování a není součástí chybových hlášek jsou chybějící složky session a tmp v kořenovém adresáři FTP. Pokud je máte, a mají opravená práva souborů, bohužel nevím, co by problém mohlo způsobovat.