![]() |
![]() ![]() |
![]() |
![]()
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.
Ten post edytował KuKa 4.11.2011, 10:43:57 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Sprawdzałeś czy pliki z COOKIE się tworzą?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 24.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Tak, tworzą się. Prawa plików są poprawne.
"I zauważyłem że nawet się zaloguję, lecz jak wchodzę na drugi url to już jestem wylogowany." - tylko raz tak udało mi się zalogować, teraz znowu nie mogę :/ Ten post edytował KuKa 4.11.2011, 11:20:03 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
czy na serwerze masz ustawiony "OPEN BASEDIR"? Bo spotkałem się z problemem takim, że jak jest włączony to nie działa w CURL'u FOLLOWLOCATION - a może być wymagane przez serwer na który się logujesz?
W razie co możesz łatwo i szybko sprawdzić czy to działa tworząc skrypt w którym dajesz przekierowanie na drugi z jakąś treścią. Zobacz co Ci curl zwróci - treść 1szego czy drugiego skryptu... Ogólnie kod jest ok - błędów nie widzę zresztą pisałeś, że to działa na localu :/ hmmm... Ten post edytował Sephirus 4.11.2011, 11:53:40 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 24.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
czy na serwerze masz ustawiony "OPEN BASEDIR"? Bo spotkałem się z problemem takim, że jak jest włączony to nie działa w CURL'u FOLLOWLOCATION - a może być wymagane przez serwer na który się logujesz? W razie co możesz łatwo i szybko sprawdzić czy to działa tworząc skrypt w którym dajesz przekierowanie na drugi z jakąś treścią. Zobacz co Ci curl zwróci - treść 1szego czy drugiego skryptu... sprawdziłem i działa z przekierowaniem :/ Jest możliwość aby serwer do którego się próbuje połączyć, blokował takie połączanie z curla? Bo już nie wiem co jest źle, w czym tkwi problem. |
|
|
![]()
Post
#6
|
|
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 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 24.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nie ma możliwości zapamiętania logowania.
Nagłówki z localhosta:
Z serwera:
Ten post edytował KuKa 4.11.2011, 14:22:37 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Jak widać coś tu jest... Tylko nie za bardzo wiem o co może tu chodzić :| Ale ok załóżmy, że to sprawdzimy - jak: odpal na serwerze skrypt jeszcze raz z nagłówkami żebyś miał identyfikator sesji ( Set-Cookie: ec_sessid=29e8fcc915a86abff019e8ba4f422052; ) Skopiuj go, i odpal skrypt już bez opcji logowania (bezpośrednio do strony) i zamiast COOKIE_FILE i COOKIE_JAR : 'CURLOPT_COOKIE', 'ec_sessid=[to wyciągnięte id]&session_start=1&ip_checked=1' I zobacz co Ci curl zwróci. Najlepiej zrób tak żeby mieć wszystkie opcje możliwe czyli: (wszędzie dajesz to id sesji) 1. z session_start bez ip_checked 2. bezz session_start z ip_checked 3. bez jednego i drugiego I sprawdź czy w którymś przypadku loguje (IMG:style_emoticons/default/wink.gif) jak tak daj znac |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 24.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nic nie pomaga.
Zrobiłem też tak: zalogowałem się normalnie do hurtowni i połączyłem się curlem wysyłając numer cookisa jaki serwer podał mi podczas logowania i też mi pokazuję że jestem niezalogowany. A normalnie jak poruszając się po stronie jestem zalogowany. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
No to może faktycznie serwer w jakimś stopniu blokuje twojego dedyka...
Ostatnia myśl jaka mi przychodzi do głowy to zabezpieczenie przed multilogowaniem - to znaczy, że może mają systemik, który nie pozwala się zalogować z jakiegoś IP jeżeli jest aktualnie zalogowany ktoś z innego... hmmm. (IMG:style_emoticons/default/sad.gif) |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 24.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Też myślałem o multilogowaniem lecz jakby takie coś mieli, nie mógłbym się zalogować na localhoscie.
Coś pokombinuje jeszcze. Dzięki za pomoc. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Ścieżkę do plików cookie podaj pełną ;]
możesz spróbować np. dirname(__FILE__).'/cookie.txt' |
|
|
![]() ![]() |
![]() |
Aktualny czas: 27.08.2025 - 03:45 |