Skocz do zawartości

curl_setopt i użycie CURLOPT_COOKIE


tosik

Rekomendowane odpowiedzi

Witam. Męczę się jak przekazać ciastko dla curla oprócz CURLOPT_COOKIEFILE

Więc zacząłem używać : CURLOPT_COOKIE

tyle że nie wiem czy to działa jak cookiefile tzn. curl korzysta z tego ciastka jak z cookiefile podczas sesji

o ile się nie mylę miało być w formacie chyba takim:

bb038dfef1_data=a%3A2%3A%7Bs%3A11%3A%22autologinid%22%3Bs%3A33%3A%22176587654649c5467d9b1c87.28822886%22%3Bs%3A6%3A%22userid%22%3Bs%3A1%3A%223%22%3B%7D;  expires=1269201409; path=/; domain=bb2.tosiek.pl

i nie wiem czy można dwa razy umieścić CURLOPT_COOKIE w jednej sesji curla.

aktualnie mam takie coś:

$cookiie  =  'bb038dfef1_data=a%3A2%3A%7Bs%3A11%3A%22autologinid%22%3Bs%3A33%3A%22176587654649c5467d9b1c87.28822886%22%3Bs%3A6%3A%22userid%22%3Bs%3A1%3A%223%22%3B%7D;  expires=1269201409; path=/; domain=bb2.tosiek.pl';
  $cookiie2 = 'bb038dfef1_sid=1b6fb619a0b5ed2f31f8837344666d2d; path=/; domain=bb2.tosiek.pl';


  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $edit_url);
  curl_setopt($ch, CURLOPT_HEADER, 0);
  curl_setopt($ch, CURLOPT_COOKIESESSION, 1);
  curl_setopt($ch, CURLOPT_COOKIE, $cookiie);
  curl_setopt($ch, CURLOPT_COOKIE, $cookiie2);
  curl_setopt($ch, CURLOPT_VERBOSE, 1);
  curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7');
  curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $hashFields);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/hasher.txt');
  $hasher = curl_exec($ch);
  curl_close($ch);

  echo $hasher;

tyle że jakby nie przesyła ciastek do curla. ani jak jest jedno ani jak są dwa.

Nie czyta także po zmianie zawartości ciastek np z samymi wartościami:

bb038dfef1_data=

oraz

bb038dfef1_sid=

I już nie mam pomysłu jak podesłać curlowi ciastka żeby je odczytał ;/

Nie mam pojęcia dlaczemu wyleciały i mają filtera Polskie znaki w adresach Joomla od nowa napisane, czytelnie i logicznie. Dylemat adres z www czy bez? Powinno to rozwiać wszelkie wątpliwości.

Naprawiam kodowanie [krzaki, chińskie znaki, polskie znaki] dowiedz się także czymże jest kodowanie znaków bo to podstawa.

Odnośnik do komentarza
Udostępnij na innych stronach

Brak:

curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie/cookie.txt'); //  < tego
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie/cookie2.txt');

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

tak, tylko że wtedy czyta z pliku a ja potrzebuję przesłać sam cookie do curla.

Nie mam pojęcia dlaczemu wyleciały i mają filtera Polskie znaki w adresach Joomla od nowa napisane, czytelnie i logicznie. Dylemat adres z www czy bez? Powinno to rozwiać wszelkie wątpliwości.

Naprawiam kodowanie [krzaki, chińskie znaki, polskie znaki] dowiedz się także czymże jest kodowanie znaków bo to podstawa.

Odnośnik do komentarza
Udostępnij na innych stronach

Najprostszą metodą implementacji ciastek jest ich zapis do pliku i późniejsze odczytanie z niego zapisanych danych. Potrzebne będą nam dwie opcje: CURLOPT_COOKIEFILE oraz CURLOPT_COOKIEJAR. Pierwsza pobiera nazwę pliku, z którego będą wczytywane informacje o ciastkach, które zostaną automatycznie wysłane do serwera. Druga odpowiada za zapis otrzymanych w odpowiedzi ciastek. Do określenia umiejscowienia pliku musimy podać ścieżki bezwzględne. Wiecej _> https://wortal.php.pl/wortal/artykuly/php/b...ol_http/ciastka

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

wiem. tylko że nie mogę odczytać ciastek z pliku :) potrzebuję jakoś użyć ciastek ze zmiennej :)

zapisywać i odczytywać umiem,

teraz potrzebuję otworzyć sesję curla z już gotowymi ciastkami nigdzie nie zapisanymi.

Nie mam możliwości aby serwer przesłał nowe ciastka sam do curla, bo najpierw curl musi już mieć ciastka żeby odczytał potem świeże z serwera.

PS. jak przerobić ciastko z przegladarki na format w pliku curla ?

1. urldecode

2. stripslashes

3. urlencode

używam w takiej kolejności dla jednego ciastka.

Nie mam pojęcia dlaczemu wyleciały i mają filtera Polskie znaki w adresach Joomla od nowa napisane, czytelnie i logicznie. Dylemat adres z www czy bez? Powinno to rozwiać wszelkie wątpliwości.

Naprawiam kodowanie [krzaki, chińskie znaki, polskie znaki] dowiedz się także czymże jest kodowanie znaków bo to podstawa.

Odnośnik do komentarza
Udostępnij na innych stronach

Nie mam możliwości aby serwer przesłał nowe ciastka sam do curla, bo najpierw curl musi już mieć ciastka żeby odczytał potem świeże z serwera.
:)

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Ok. Inaczej. Curl od samego początku musi być zalogowany(musi mieć i korzystać z gotowych ciastek ze zmiennej),

potem dopiero po wykonaniu akcji mogę skorzystać z cookiejar i cookiefile, bo dopiero teraz serwer przesyła ciastka

Nie mam pojęcia dlaczemu wyleciały i mają filtera Polskie znaki w adresach Joomla od nowa napisane, czytelnie i logicznie. Dylemat adres z www czy bez? Powinno to rozwiać wszelkie wątpliwości.

Naprawiam kodowanie [krzaki, chińskie znaki, polskie znaki] dowiedz się także czymże jest kodowanie znaków bo to podstawa.

Odnośnik do komentarza
Udostępnij na innych stronach

Wysyłasz prawidłowe dane do logowania metodą cURL POST, a serwer wystawia ciastko i po sprawie. Nie wiem co ty za dziwne kombinacje robisz...

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

CURLOPT_COOKIE

Pass a pointer to a zero terminated string as parameter. It will be used to set a cookie in the http request. The format of the string should be NAME=CONTENTS, where NAME is the cookie name and CONTENTS is what the cookie should contain.

If you need to set multiple cookies, you need to set them all using a single option and thus you need to concatenate them all in one single string. Set multiple cookies in one string like this: "name1=content1; name2=content2;" etc.

Note that this option sets the cookie header explictly in the outgoing request(s). If multiple requests are done due to authentication, followed redirections or similar, they will all get this cookie passed on.

Using this option multiple times will only make the latest string override the previous ones.

https://curl.haxx.se/libcurl/c/curl_easy_se...l#CURLOPTCOOKIE

Jak to jest zaimplementowane w php to nie wiem, jutro sprawdzę :)

jak przerobić ciastko z przegladarki na format w pliku curla ?

No właśnie dobrze kombinujesz z file_put_contents przed sesją curla.

Zapisz sobie byle jakie ciastko i porównaj :)

E:

CURLOPT_COOKIE The contents of the "Set-Cookie: " header to be used in the HTTP request.

https://pl.php.net/manual/pl/function.curl-setopt.php

Wygląda na to że tak samo ;)

nihil fit sine causa

Odnośnik do komentarza
Udostępnij na innych stronach

Chyba się udało :) jutro napiszę dokładnie.

ale teraz jak z takiej daty: time() + 31536000 zrobić coś w stylu: Wed, 17-Mar-2010 21:22:40 GMT

Z manuala: Wdy, DD-Mon-YYYY HH:MM:SS GMT

tylko że mktime ani date tego nie łyka ;/

Nie mam pojęcia dlaczemu wyleciały i mają filtera Polskie znaki w adresach Joomla od nowa napisane, czytelnie i logicznie. Dylemat adres z www czy bez? Powinno to rozwiać wszelkie wątpliwości.

Naprawiam kodowanie [krzaki, chińskie znaki, polskie znaki] dowiedz się także czymże jest kodowanie znaków bo to podstawa.

Odnośnik do komentarza
Udostępnij na innych stronach

ok. to mam.

$czas = time() + 31536000;
$expired = gmdate(DATE_COOKIE, $czas);

ale hmm po użyciu

curl_setopt($ch, CURLOPT_COOKIE, $cookiie);
curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/hasher.txt');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_exec($ch);
curl_close($ch);

nie zapisuje do pliku ;/ czy to tak ma działać gdy użyję COOKIE to przestaje działać: COOKIEJAR ?

Nie mam pojęcia dlaczemu wyleciały i mają filtera Polskie znaki w adresach Joomla od nowa napisane, czytelnie i logicznie. Dylemat adres z www czy bez? Powinno to rozwiać wszelkie wątpliwości.

Naprawiam kodowanie [krzaki, chińskie znaki, polskie znaki] dowiedz się także czymże jest kodowanie znaków bo to podstawa.

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności