Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Logowanie poprzez curl, Na localhost działa na dedyku już nie...
KuKa
post
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 24.03.2008

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


Hej, mam do napisania skrypt pobierający ceny z pewnej hurtowni.
Muszę się zalogować, przejść na konkretną podstronę i pobrać cenę.
I problem mam taki, że skrypt działa na localhoscie ale po przeniesieniu na serwer dedykowany logowanie już nie działa(przechodzę normalnie na podstrony lecz jestem nie zalogowany).
W czym może być problem?
Na serwerze jest curl i działa logowanie na inne strony.
Próbowałem także logować się korzystając z proxy lecz taka sama historia.

  1. $usecookie = 'cookie.txt';
  2.  
  3. $handle = curl_init();
  4.  
  5. curl_setopt($handle, CURLOPT_URL, "http://jakisurlDoZalogowania.pl");
  6.  
  7. curl_setopt($handle, CURLOPT_HEADER, 1);
  8. curl_setopt($handle, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.1; pl; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3");
  9. curl_setopt($handle, CURLOPT_REFERER, "http://jakisurl.pl" );
  10. curl_setopt($handle, CURLOPT_COOKIEJAR, $usecookie);
  11. curl_setopt($handle, CURLOPT_COOKIEFILE, $usecookie);
  12. curl_setopt($handle, CURLOPT_RETURNTRANSFER,1);
  13. curl_setopt($handle, CURLOPT_FOLLOWLOCATION,1);
  14. curl_setopt($handle, CURLOPT_POST,1);
  15. curl_setopt($handle, CURLOPT_POSTFIELDS,"dane do logowania");
  16.  
  17. if($result = curl_exec ($handle)){
  18. curl_setopt($handle, CURLOPT_POST,0);
  19. curl_setopt($handle, CURLOPT_COOKIEJAR, $usecookie);
  20. curl_setopt($handle, CURLOPT_COOKIEFILE, $usecookie);
  21. curl_setopt($handle, CURLOPT_URL, "konkrenty url");
  22. curl_setopt($handle, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.1; pl; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3");
  23. curl_setopt($handle, CURLOPT_REFERER, "http://jakisurlDoZalogowania.pl" );
  24. curl_setopt($handle,CURLOPT_RETURNTRANSFER,1);
  25. curl_setopt($handle,CURLOPT_FOLLOWLOCATION,1);
  26.  
  27. $result = curl_exec ($handle);
  28. echo $result;
  29. };


Ten post edytował KuKa 4.11.2011, 10:43:57
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Sephirus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


Jest możliwe, że serwer z którego robisz requesta jest zbanowany przez ten, na ktory chcesz się zalogować - ale wtedy objawiało by się to pustym ciągiem zwróconym przez curl'a, lub błędem typu timeout (ewentualnie jakieś 403)...

W tym przypadku nie sądzę by to było to - ale z drugiej strony też nie wiem co to może być :/ Jeżeli ten twój dedyk jest na OVH to mógł by być zbanowany ale tak jak pisałem wyżej...

Masz jeszcze jedną opcję - pośrednią ale warto spróbować:

Czy na tym serwerze, na którym się logujesz możliwe jest zapamiętywanie hasła albo coś takiego? Może ustawiają na stałe jakieś ciasteczko autoryzacji bez związku z sesją (często tak jest) wówczas wystarczyło by wywołać stronę CURL'em z ustawionym tylko takim ciasteczkiem i zobaczyć czy to coś da - ale to już bez podawania COOKIE_FILE i COOKIE_JAR do CURL - tylko zwykłe "CURLOPT_COOKIE" i wartość typu "auth=123456789abcdefghij"

Zobacz może tak się to da obejść.

Sprawdź też co w ogóle siedzi w tym pliku z ciastkami - możesz też spróbować olać w drugim zapytaniu (po zalogowaniu) nadpisywanie tego pliku z ciasteczkami (czyli bez COOKIE_JAR)...

DODATKOWO - w celu debugu możesz porównać nagłówki odpowiedzi uzyskiwane z tego serwera na który się logujesz na localu i dedyku - jak dasz CURLOPT_HEADER na 1 i CURLOPT_NOBODY na 1 to wyrzuci Ci same nagłówki - zobacz czym się różnią - może mają jakieś jeszcze inne zabezpieczenie i trzeba jeszcze coś pododawać do CURL'a - możesz nawet wrzuć kod nagłówków tutaj to zerknę

Ten post edytował Sephirus 4.11.2011, 12:41:53
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: 15.10.2025 - 08:34