Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Nie można przekazać zmiennej?
Nagareteku
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 6.01.2014

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


To dopełnienie tego tematu.

Zachodziłem w głowę, co sprawia, że nie mogę się zalogować i odkryłem problem. Ale za nic nie mogę odnaleźć rozwiązania.

Taki kod pozwala mi się logować bez problemu:

  1. $curl = curl_init();
  2. curl_setopt($curl, CURLOPT_URL, "http://strona.com/login.html");
  3. curl_setopt($curl, CURLOPT_HEADER, 1);
  4. curl_setopt($curl, CURLOPT_POST, 1);
  5. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
  6. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  7. curl_setopt($curl, CURLOPT_COOKIESESSION, true);
  8. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false );
  9. curl_setopt($curl, CURLOPT_POSTFIELDS, "login=login&password=haslo");
  10. curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
  11. curl_setopt($curl, CURLOPT_COOKIEJAR, $_SERVER["DOCUMENT_ROOT"].'/panel/cookies/cookie.txt');
  12. curl_setopt($curl, CURLOPT_COOKIEFILE, $_SERVER["DOCUMENT_ROOT"].'/panel/cookies/cookie.txt');
  13. return curl_exec($curl);


ale już taki kod nie pozwala - strona zwraca komunikat, że cookies nie są włączone.

  1. $cookiefile = "cookie";
  2. $curl = curl_init();
  3. curl_setopt($curl, CURLOPT_URL, "http://strona.com/login.html");
  4. curl_setopt($curl, CURLOPT_HEADER, 1);
  5. curl_setopt($curl, CURLOPT_POST, 1);
  6. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
  7. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  8. curl_setopt($curl, CURLOPT_COOKIESESSION, true);
  9. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false );
  10. curl_setopt($curl, CURLOPT_POSTFIELDS, "login=login&password=haslo");
  11. curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
  12. curl_setopt($curl, CURLOPT_COOKIEJAR, $_SERVER["DOCUMENT_ROOT"].'/panel/cookies/'.$cookiefile.'.txt');
  13. curl_setopt($curl, CURLOPT_COOKIEFILE, $_SERVER["DOCUMENT_ROOT"].'/panel/cookies/'.$cookiefile.'.txt');
  14. return curl_exec($curl);


Ja potrzebuję by to działało w drugiej wersji, ale skoro cURL mi takie coś odrzuca to... co mam zrobić?
Dodam, że plik cookie.txt istnieje i w obu wersjach ciasteczko zapisuje się i można je odczytać. Ale nie działa. Bo nie.

Ja nie rozumiem, jak miałbym to rozwiązać.

Z góry dzięki za pomoc!

Ten post edytował Nagareteku 17.01.2014, 14:13:39
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Nagareteku
post
Post #2





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 6.01.2014

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


Tak, w końcu używam Notepada++, chociaż nie wiem, co to ma do rzeczy, skoro te dwa kody operują na tym samym pliku, dwa te kody zapisują dobrze, ale ten drugi jakoś działa tak, że z podaną zmienną, ciasteczka są "wyłączone".
Go to the top of the page
+Quote Post
sowiq
post
Post #3





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


Cytat(Nagareteku @ 17.01.2014, 16:29:50 ) *
ale ten drugi jakoś działa tak, że z podaną zmienną, ciasteczka są "wyłączone".

Nie ma takiej opcji. Te dwa kody są równoważne, a problem musi leżeć gdzie indziej.

Dla testu wykonaj poniższy scenariusz:
1. var_dump( $_SERVER["DOCUMENT_ROOT"] . '/panel/cookies/cookie.txt' );
2. Utwórz pusty plik z lokalizacją jak w 1.
3. Wykonaj pierwszą wersję skryptu kilka razy
4. Wykonaj 1. i 2., a w 3. punkcie uruchamiaj drugą wersję skryptu.

[edit]
Aha, jeszcze jedno, chyba najważniejsze. Kiedy używasz pliku COOKIEJAR, musisz wykonać curl_close, żeby wyzwolić zapis ciastek.

http://php.net/manual/en/function.curl-setopt.php

Cytat
CURLOPT_COOKIEJAR
The name of a file to save all internal cookies to when the handle is closed, e.g. after a call to curl_close.


Ten post edytował sowiq 17.01.2014, 16:40:09
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: 17.10.2025 - 11:57