Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]cURL pobieranie sesji ze strony
Watt
post
Post #1





Grupa: Zarejestrowani
Postów: 372
Pomógł: 1
Dołączył: 13.06.2008

Ostrzeżenie: (0%)
-----


Cześć,

Mam duży problem z poberaniem sesji przez curl. Mam 2 requesty pierwszy zbiera sesję, drugi wykonuje zapytanie w post (który wymaga sesji).

Problem w tym, że ten pierwszy nie pobiera mi poprawnie sesji. Gdy odpalam stronę przez curl, w headerze strony wyrzuca mi atrybut np."Set-Cookie: JSESSIONID=07tP-hXzHurc-bL9bpOvVzmK; Path=/; HttpOnly", później gdy wrzucam go jako sesję w drugim curlu to strona wyrzuca mi "<partial-response>". Po każdym odświeżeniu strony JSESSIONID zmienia wartość.

W momencie jednak, gdy kopiuje sesję z przeglądarki wszysko śmiga. Starałem się dopisywać atrybuty jak leci i dalej nic. Jak sprawić, żeby strona poprawnie utworzyła sesję?

Pierwszy curl wyglada tak:

Kod
$chh = curlinit();
curlsetopt($chh, CURLOPT_URL, $strona);

curl_setopt($chh, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($chh, CURLOPT_COOKIEJAR, $tmpfname);
curl_setopt($chh, CURLOPT_COOKIEFILE, $tmpfname);
curl_setopt($chh, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($chh, CURLOPT_SSL_VERIFYPEER, false);


curl_setopt($chh, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($chh, CURLOPT_VERBOSE, 1);
curl_setopt($chh, CURLOPT_COOKIESESSION, 1);
curl_setopt($chh, CURLOPT_HEADER, 1);

$header_size = curl_getinfo($chh, CURLINFO_HEADER_SIZE);
$header = substr($response, 0, $header_size);

$exp = explode("Set-Cookie:", $header);
$sesja = explode("; Path=/; HttpOnly", $exp[1]);


Dodam jeszcze, że strona w firefoxie wyrzuca mi np:

Kod
Cookie: __utma=179393144.1468963194.1462999507.1462999507.1462999507.1; _ga=GA1.3.1468963194.1462999507; JSESSIONID=UhpC5Rq4mETGZxq4wPXBgAJf


Natomiast tak jak wyżej, w curlu ten atrubut to nie Cookie: tylko Set-Cookie:

Ten post edytował Watt 9.02.2017, 21:38:58
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
markuz
post
Post #2





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

Ostrzeżenie: (0%)
-----


Od google analytics na pewno nie bo to javascript dodaje te ciastka.

Masz też ustawione: curl_setopt($chh, CURLOPT_COOKIESESSION, 1); co jest chyba błędem w Twoim przypadku:
Cytat
Pass a long set to 1 to mark this as a new cookie "session". It will force libcurl to ignore all cookies it is about to load that are "session cookies" from the previous session. By default, libcurl always stores and loads all cookies, independent if they are session cookies or not. Session cookies are cookies without expiry date and they are meant to be alive and existing for this "session" only.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 15:06