Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]CURL - przestał działać
casperii
post 22.07.2017, 10:40:43
Post #1





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

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


Panowie przestał mi działać kod, zastanawiam się, czy hosting z którego odpalam php , mógł się "wkurzyć" i coś mi zablokować, bo stwierdzili, że curl zżera im duże zasoby serwera :|

o to kod:

  1. $username = 'user';
  2. $password = 'haslo';
  3.  
  4. $loginUrl = 'adres strony';
  5. $headers = array(
  6. 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; pl; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16',
  7. 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  8. 'Accept-Language: pl,en-us;q=0.7,en;q=0.3',
  9. 'Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7'
  10. );
  11. $cookie_file = './cookies/cookies.txt';
  12.  
  13. $ch = curl_init();
  14. curl_setopt($ch, CURLOPT_URL, $loginUrl);
  15. curl_setopt($ch, CURLOPT_HEADER, true);
  16. curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
  17. curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
  18. curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  19. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  20. curl_setopt($ch, CURLOPT_POST, true);
  21. curl_setopt($ch, CURLOPT_POSTFIELDS, 'username='.$username.'&password='.$password);
  22. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  23.  
  24. echo curl_exec($ch);


powyższe pokazuje pustą stronę, bezpośredni link działa.

jak zakomentuje:

  1. curl_setopt($ch, CURLOPT_POST, true);
  2. curl_setopt($ch, CURLOPT_POSTFIELDS, 'username='.$username.'&password='.$password);


to wyświetla formularz logowania.

Ten post edytował casperii 22.07.2017, 10:45:04
Go to the top of the page
+Quote Post
nospor
post 22.07.2017, 12:28:29
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Tyle czasu na forum to juz moglbys ogarniac ze "przestal dzialac" to z reguly nam nic nie mowi.
CIezko napisac jak dzialal wczesniej a jak dziala teraz? Co sie dzialo wczesniej a co sie dzieje teraz?

Z twojego haotycznego opisu na chwile obecna wnioskuje, ze stronka na ktora wysylasz dane, cos zmienila u siebie i w momencie gdy wyslesz poprawne dane formularza to ona przekierowuje gdzies indziej i temu teraz nie widzisz juz formularza bo przeciez dane wyslales.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
casperii
post 22.07.2017, 12:42:39
Post #3





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

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


@nospor strona nic nie zmieniła, podałem wyżej kod jak wyglądał wcześniej , który działał.

Metodą prób i błędów doszedłem do czegoś takiego:

  1. $username = 'user';
  2. $password = 'haslo';
  3.  
  4. $loginUrl = 'adres strony';
  5. $headers = array(
  6. 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; pl; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16',
  7. 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  8. 'Accept-Language: pl,en-us;q=0.7,en;q=0.3',
  9. 'Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7'
  10. );
  11. $cookie_file = './cookies/cookies.txt';
  12.  
  13. $ch = curl_init();
  14. curl_setopt($ch, CURLOPT_URL, $loginUrl);
  15. curl_setopt($ch, CURLOPT_HEADER, true);
  16. curl_setopt($ch, CURLOPT_POST, true);
  17. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  18. curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  19. //curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  20. curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
  21. curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
  22. curl_setopt($ch, CURLOPT_POSTFIELDS, 'username='.$username.'&password='.$password);
  23.  
  24. $store = curl_exec($ch);
  25. echo $store;


wyświetla mi:

HTTP/1.1 302 Found Date: Sat, 22 Jul 2017 11:38:33 GMT Server: Apache 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 Status: 302 Location: https://adresstrony.pl/token=5cf15dw751e5a2f97022b7b7f99ead Content-Length: 0 Content-Type: text/html; charset=UTF-8

Natomiast odkomentowanie
  1. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

zwraca mi pustą stronę. Dziwne to , że printowanie pokazało Location https , skoro ja podałem w urlu http. Chociaż logować się można przez http i https.
Go to the top of the page
+Quote Post
nospor
post 22.07.2017, 12:44:53
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Na stronie masz przekierowanie z http na https.
Jesli to nie ty jestes autorem strony na ktore robisz curl, to nie jestes wstanie stwierdzic czy cos zmienili czy nie tongue.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
casperii
post 22.07.2017, 21:55:20
Post #5





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

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


Problem rozwiązany, wystarczyło dodać.:

  1. curl_setopt($ch, CURLOPT_AUTOREFERER, true);
  2. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120);
  3. curl_setopt($ch, CURLOPT_TIMEOUT, 120);
  4. curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
  5. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);
  6. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);


@nospor a czy CURL jest mocno obciążający serwer?
Na chwilę obecną pobieram w pętli 20 podstron co 10 minut.
Czy jest jakaś komenda zwalniająca zasoby serwera po wykonanym curlu ? coś w stylu disconnect ?
Go to the top of the page
+Quote Post
Neutral
post 23.07.2017, 13:06:03
Post #6





Grupa: Zarejestrowani
Postów: 286
Pomógł: 46
Dołączył: 10.01.2016

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


Chodzi ci o: curl_close, curl_pause, curl_reset?

Ten post edytował Neutral 23.07.2017, 13:10:46
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 5.07.2025 - 08:34