odoslanie POST request na server

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
peter0212
Člen | 9
+
0
-

Zdravim!
Vytvoril som si registracny formular, do ktoreho sa vlozi variabilny symbol studenta. Tento variabilny symbol by sa mal overit na serveri, ci je platny a ak ano, tak mi server vrati udaje z databazy vo formate XML/JSON. Potreboval by som pomoc s vytvorenim POST poziadavky na server. Server najprv overi moju identitu menom a heslom a az potom by mal odpovedat..
na server by som mal odosielat udaje:

varsymbol: variabilny symbol studenta
format: xml/json
login: xxxx
pass: xxx123
Skusal som uz nejake sposoby cez cURL, ale hlasi mi chybu „Curl extension is not loaded!“ a neviem sa pohnut dalej. Dakujem.

vvoody
Člen | 910
+
0
-

Skús si najskorej zistiť či ten vzdialený server nemá nejaký autorizačný protokol (npr LDAP), bude asi lepšie ho použiť než znásilňovať ten formulár ;)

peter0212
Člen | 9
+
0
-

Pisal som spravcovi servera. Odpisal mi ze tam nie je ziaden autorozacny protokol. :) takze ako by som mal postupovat?

Editoval peter0212 (8. 12. 2012 20:27)

llook
Člen | 407
+
0
-

„Curl extension is not loaded“ mluví samo za sebe. Pokud to je localhost, tak se přesvědč, že máš v php.ini řádek extension=php_curl.dll.

peter0212
Člen | 9
+
0
-

..uz som to poriesil, problem bol tam ako pises na localhoste. :) dakujem za postreh :)
ale zase mam iny problem s tym, server mi odpovie na poziadavku, ale neodosle mi ziadne udaje. Asi to je preto, ze je adresa chranena SSL (zacina https://). Neviem ako by som to mohol obist.

$values = $form->getValues();

$request = new \Nette\Curl\Request(‚https://.....‘);
try {
$response = $request->post(array(
‚login‘ ⇒ ‚xxxx‘,
‚pass‘ ⇒ ‚xxxx123‘,
‚varsymbol‘ ⇒ $values,
‚format‘ ⇒ ‚json‘,
));
echo $response->getBody();
} catch (\Nette\Curl\CurlException $e) {
echo $e->getMessage();
 }

ak dam dump($response); tak mi to v dump-e vyhodi NULL. Ako by som sa mohol dostat cez to https:// ??

llook
Člen | 407
+
0
-

Zkusil bych tohle:

$request->setOption('SSL_VERIFYPEER', FALSE);
$request->setOption('SSL_VERIFYHOST', 2);
Filip Procházka
Moderator | 4668
+
0
-

Kde jsi proboha vzal Nette\Curl ?

peter0212
Člen | 9
+
0
-

..no pridal som si kniznicu Curl do adresara Nette. Nemoze to tam byt?

David Zadražil
Člen | 62
+
0
-

peter0212 napsal(a):

..no pridal som si kniznicu Curl do adresara Nette. Nemoze to tam byt?

Dej to klasicky do „libs/“.

Filip Procházka
Moderator | 4668
+
0
-

Do adresáře, kde je Nette Framework se nikdy nic nedává. Proč mám pocit, že jsi zkopíroval tohle rozšíření a všude změnil namespace? To je zbytečná a kontraproduktivní práce, ne?

peter0212
Člen | 9
+
0
-

..ano presne to som pouzil, nakolko som v Nette novy, tak som nevedel co ine mam pouzit a tak som hladal na fore. Je na tom nieco zle? akurat nemam tam poriesene to SSL. podla teba to nemam robit takto? ale inak?

Filip Procházka
Moderator | 4668
+
0
-

Když chceš použít knihovnu, tak ji vezmeš, vložíš do zvláštní složky do libs/, třeba libs/cURL/ a používáš (o načítání se stará RobotLoader, nebo Composer). Bylo by dost hloupé, kdybys kvůli používání knihovny musel knihovnu upravovat, ne?

mildabre
Člen | 62
+
0
-

peter0212 napsal(a):

Zdravim!
Vytvoril som si registracny formular, do ktoreho sa vlozi variabilny symbol studenta. Tento variabilny symbol by sa mal overit na serveri, ci je platny a ak ano, tak mi server vrati udaje z databazy vo formate XML/JSON. Potreboval by som pomoc s vytvorenim POST poziadavky na server. Server najprv overi moju identitu menom a heslom a az potom by mal odpovedat..
na server by som mal odosielat udaje:

varsymbol: variabilny symbol studenta
format: xml/json
login: xxxx
pass: xxx123
Skusal som uz nejake sposoby cez cURL, ale hlasi mi chybu „Curl extension is not loaded!“ a neviem sa pohnut dalej. Dakujem.

Asi to plně nechápu, ale proč používáš Curl, když můžeš pomocí formuláře komunikovat se serverem přímo pomocí http a POST ? POST požadavek přece odesílá browser z formuláře na server véceméně bezproblémově.

Není to spíš tak, že odešleš formulářem data obsahující ten variabilní symbol na jeden server kde je aplikace psaná v Nette Frameworku – a od této aplikace se očekává, že se bude automaticky dotazovat na jiném serveru zda je tento variabilní symbol OK ? Potom by mě to použití Curl dávalo smysl.

Ještě jeden dotaz – jaká je výhoda mít data ve formátu XML/JSON ?