Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno PHP - curl - práca na vzdialenom serveri

Potrebujem sa pripojiť na vzdialený server, odoslať do login formulára prihlasovacie údaje a ďalej na ňom fungovať. Podstatný kód vyzerá takto:

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $param);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
POST parametre sú upravené do tvaru:
meno=asd%40asd%2esk&heslo=123456
Keď odošlem požiadavku na vzdialený server a vypýtam si odpoveď, dostanem HTML prihlasovacieho formulára bez chybovej hlášky o zlom hesle. Ak údaje pozmením, hlášku dostanem. Informácia, že som bol presmerovaný je len v headeri požiadavky medzi 3 hlavičkami v riadku Location. Dá sa presmerovanie odhaliť aj "krajším" spôsobom alebo len spracovaním tejto dlhej hlavičky? Zrejme mi curl_getinfo() nepomôže, lebo nič vhodné tam nevidím.

Moja druhá otázka je, že keď mám aktívne prihlásenie na serveri (riešené cez SESSION), ako mám prikázať curl, že používam toto PHPSESSID? Viem o vložení cookie do curl, ale len pomocou súboru, ako ten súbor má vyzerať?

No a ktoré PHPSESSID je to čo potrebujem?
http://xxx/login.phpHTTP/1.1 302 Found
Date: Wed, 14 Dec 2011 20:36:06 GMT
Server: Apache
Set-Cookie: PHPSESSID=9f66772b9ad1b8948b87d85a80ef2bd0; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: PHPSESSID=e101bb81dccee88fd1b5d6cb6735e8c1; path=/
Location: main.php
Content-Length: 0
Connection: close
Content-Type: text/html

HTTP/1.1 302 Found
Date: Wed, 14 Dec 2011 20:36:06 GMT
Server: Apache
Set-Cookie: PHPSESSID=13dd6a8a14fb838003e8e9963bf52c83; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Location: http://xxx/login.php
Content-Length: 0
Connection: close
Content-Type: text/html

HTTP/1.1 200 OK
Date: Wed, 14 Dec 2011 20:36:06 GMT
Server: Apache
Set-Cookie: PHPSESSID=bd6adb3d8049fd5557140cfe2b5d2f5a; path=/
Expires: Sun, 16 Mar 2003 05:00:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Last-Modified: Wed, 14 Dec 2011 20:36:06 GMT
Cache-Control: post-check=0, pre-check=0
Content-Length: 3544
Connection: close
Content-Type: text/html; charset=UTF-8
Pre úplnosť informácii ešte informácia, že prihlasovací formulár odosielam na login.php a presmeruje ma na main.php a to potrebujem zistiť. Stačí mi testovať na výskyt textu "Location: main.php"?

Odpověď na otázku

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny