Autor Zpráva
ServIT
Profil
Dobrý den,

na strojích s Linuxem mám bash skript, který mi odesílá na server stav disků ( zprávu smartctl ). V současné době odesílá data wget, chci to změnit na curl. (umí urlenkódovat). Pořád je řeč o bashi.

Nicméně se mi nedaří pomocí curl sestavit volání tak, aby přijímající PHP skript pochopil, že mu posílám data.
$_REQUEST je prázdný.
php://input obsahuje data, která když vypíšu, odpovídají tomu, co odesílám.

Data posílám pomocí POST a snažím se je urlenkódovat.

Google mi nabízí všelijaké hlouposti, ale přímo tenhle problém nikdo ( asi ) neřešil ... nebo se neumím správně anglicky zeptat .. nevím.

Tak doufám, že české fórum bude přívětivější ...

zatím jsem se dostal sem :
volání curlu : ( zkrátil jsem to, bo teď jde hlavně o to, aby PHP vytvořilo pole $_REQUEST )
curl -X -POST test.zendc.jp.firma/diskytest.php \ ---- interní URL, nezajímavé :D
-k \
--data-urlencode "pcs=$4"

log skriptu :
-- 09:02:50 / + 0,0010 s : Řádek 53 :<br><div class="dump-div"><dl><dt class="dump-dt dump-array"><nav class="dump-noclick"></nav><dfn>Neurčená p
roměnná</dfn><var>array (0)</var></dt><dd class="dump-sub"></dd></dl></div> --- request není ( viz array(0) )
-- 10:32:45 / + 0,0040 s : Řádek 138 :Délka vstupu : 31
-- 10:32:45 / + 0,0040 s : Řádek 139 :pcs=%09Serial+Number%3A+92JHD22 ---- toto je php://input

Nemá někdo zkušenost, aby mě správně nasměroval ?

Děkuji

Milan
Keeehi
Profil
Ta pomlčka před POST tam nemá co dělat. Takhle se to snaží (asi) odesílat přes rozhraní OST, protože si myslí že P je příznak a OST jeho hodnota. Nebo teoreticky si myslí že jde o příznaky P O S a T. Záleží jaký parser curl implementuje.
Nicméně data to posílá, takže ho to nezmátlo moc ale opravit by si to zasloužilo.

Jinak se to chová přesně tak, jak se to chovat má. Respektive jak ty jsi tomu určil. Ono totiž --data-urlencode ty data stále posílá v těle požadavku. A tělo požadavku se v PHP získává skrz php://input.
Pokud to potřebuješ mít v proměnné REQUEST, musíš to buď strčit do adresy a nebo to odeslat jako formulářová data.

curl "test.zendc.jp.firma/diskytest.php?pcs=$4" \
-k

curl test.zendc.jp.firma/diskytest.php \
-k \
-d "pcs=$4"

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0