logo
10.01.2021 19:24
1
Ahoj, rypu se ted v jednom hodne starem webu na Nette. Potrebuju nejlepe samostatny file kvuli prijmu POST dat a nejake dalsi prace s tim. Ale nemuzu docilit toho, abych na tu stranku poslal data treba skrze Postmana a na te strance to zobrazil pomoci $_POST. GET je v pohode, ale POST to proste nevidi a vzdy je tam prazdne pole. Jinde mi to funguje, ale chyba jako takova v tom skriptu tam nebude.

Uz z toho snad vinim hosting Forpsi, nevim, neni to normalni :) Posilam vzdy na https variantu, zkousel jsem s www i bez www a proste vzdycky jsou POST prazdne.

Nemuze byt problem nekde v tom htaccess? Ze to treba vzdycky udela nejaky presmerovani, nebo to ty POST data nekde zahodi? Na me je to az moc velky maglajs ten htaccess file.

Poradite?


Kód:
# disable directory listing
Options -Indexes

# configure PHP
# <IfModule mod_php5.c>
#    php_flag magic_quotes_gpc off
#    php_flag register_globals off
# </IfModule>

# mod_rewrite
<IfModule mod_rewrite.c>
	RewriteEngine On

	RewriteCond %{HTTP_HOST} ^domain.loc
    	RewriteRule (.*) https://www.domain.loc/$1 [R=301,QSA,L]

	RewriteCond %{HTTP_HOST} ^domain.cz
	RewriteRule (.*) https://www.domain.cz/$1 [R=301,QSA,L]

	RewriteRule data/images/thumb/([_a-zA-Z0-9-]*)/([_a-zA-Z0-9-]*)\.(gif|jpg|png) /data/images/thumb/$1.$3 [L]

	RewriteBase /

	# front controller
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_FILENAME} !-d

	RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$ index.php [L]

</IfModule>

<filesmatch "\.(ini)$">
order allow,deny
deny from all
</filesmatch>

Co se právě děje na Webtrhu?

10.01.2021 19:55
2
Jakým způsobem posíláš ty data? PHP $_POST totiž umí přečíst jen form data (zdroj: php.net diskuze).

Jestli posíláš třeba JSON tělo, tak to přečteš z php://input. Příklad implementace: https://stackoverflow.com/a/18867369/1693192

Edit: Nezkoušel jsem, ale možná na to dokáže přečíst i některá z nativních Nette metod - https://doc.nette.org/cs/3.0/http-re...toc-getrawbody
10.01.2021 20:06
3
jestli matně pamatuji, nette kdysi $_POST bralo, naparsovalo a proměnou vymazalo.

Přesměrování u post není podporované, při přesměrování se nepřenáší post data. Dokud ten post odchytí htaccess jalo rewrite, projde to i s daty, jakmile ale htaccess vrátí 301, data se ztratí. Hledej chybu tady.
10.01.2021 21:38
4
Vytahl jsem to do solo souboru a jsou to formdata. Podle me to podela ten htaccess. Zkousel jsem udelat i podadresar a ten z toho vyjmout, ale kdo vi, zda to bylo dobre.
10.01.2021 21:41
5
a jak vypadá url, na kterou to posíláš? Jak vypadají hlavičky z problížeče? Co laděnka, už tam je? Co access logy, není tam požadavek dvakrát?
10.01.2021 22:19
6
Původně odeslal TomášX
a jak vypadá url, na kterou to posíláš? Jak vypadají hlavičky z problížeče? Co laděnka, už tam je? Co access logy, není tam požadavek dvakrát?
Hele neni, udelam to a klidne to sem hodim. Me jen stve to, jak trivialni to je a ze to jde jinde bez problemu. A fakt podeziram Forpsi kvuli nejaky konfiguraci.
10.01.2021 22:32
7
post je běžná funkce, nevím, jak by to forpsi mohlo jen tak rozbít. Osobně bych vzal curl (či jiný http inspector), zkusil poslat post a koukal na hlavičky, koukl se, jestli server odeslal redirect či rovnou nějakou odpověď.

Nemůžeš aplikaci vzít a zkusit to na lokále, jestli to dělá stejně? Nepoužívá se tam někde jinde post v aplikaci a není tam nějaký trik či fígl?

U takhle popsané chyby mě nenapadá, co je špatně.