![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 278 Pomógł: 3 Dołączył: 28.06.2008 Skąd: PL Ostrzeżenie: (0%) ![]() ![]() |
witam
zrobiłem logowanie na serwer i potrzebje id sesji i nr id sesji sie przsyła a nr nie plik z ciastkami wygląda tak Kod # Netscape HTTP Cookie File # http://curlm.haxx.se/rfc/cookie_spec.html # This file was generated by libcurl! Edit at your own risk. strona.pl FALSE / FALSE 0 PHPSESSID 1bccacc0ffa0fe8a3123c5dd3f131640 strona.pl FALSE / FALSE 0 wunr 14312222 sesja jest bo sprawdzałem w ciastkach po odpaleni tego skryptu, ale nr niema co jest nie tak? próbowałem juz chyba wszystkiego. pomoże ktoś, bo szukałem już na forum i na googl'u itp i nic nie wiem dlaczego wsyłane jest tylko pierwsze -------------------- |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
A pokaż tego cURL'a jak to robisz, opisz dokładniej algorytm postępowania, błędy co i jak, bo teraz to ciężko coś z tego wywnioskować.
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 278 Pomógł: 3 Dołączył: 28.06.2008 Skąd: PL Ostrzeżenie: (0%) ![]() ![]() |
ogólnie to mam tak sprawdzałem najpierw co wysyła za pomocą live http headrea
i ja mam tak:
no i jak wejde na stronę mojastrona to che zobaczyć jakie sa ciastka i sa tylko id sesji a drugiego nr nie ma -------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Tak sobie patrzę na ten kod i kilku rzeczy nie rozumiem. Po co robisz POST, skoro później przechodzisz na link podając to samo w GET a tego wcześniejszego nie wywołujesz, bo curl_exec masz dopiero na końcu.
Trzeba by ustawić dane do przesłania POST'em, adres, następnie curl_exec, dopiero potem przejść na stronę main, i tam zobaczyć co się wydarzyło. Do tego mogą się przydać funkcje, które pokażą błędy, albo nawet sobie zrobić zrzut zwróconych nagłówków (curl_getinfo). -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 278 Pomógł: 3 Dołączył: 28.06.2008 Skąd: PL Ostrzeżenie: (0%) ![]() ![]() |
Mam tak ale dalej mi to nic nie zmienia. A $info zwraca array. Powinienem zrezygnowac z post? i dac tylko od drugiego linku?
obecnie mam tak
-------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Tak o zrezygnować z POST nie powinieneś jeśli nie wiesz czy jest potrzebne. Przede wszystkim musisz prześledzić kolejność działań na stronie. cURL jest imitacją przeglądarki, może wejść na stronę wysłać formularz, przejść na inną podstronę. Musisz wiedzieć dokładnie co po czym ma następować.
Przykładowo, jeśli masz tą stronę http://mojastrona.pl/login/proxy_login.php, na niej formularz, w którego pola wpisujesz login i hasło, to używasz tego POST'a. Jeśli natomiast podawanie loginu masz w http://mojastrona.pl/logw.php?USR=kubek&pass=haslowmd5 to ten POST wydaje się niepotrzebny. Trudno wymyślać co gdzie powinno być jeśli się nie wie jaka to strona ![]() Może formularz logowania powinieneś wypełnić na http://mojastrona.pl/login.php?start=1&ref=&wid=, tam podać dane takie jak login i hasło, wysłać POST'em. Kolejność działania w skrócie jest taka: 1. Inicjujesz cURL'a - $ch = curl_init(); 2. Ustawiasz opcje (zwracanie nagłówków, treści, ciasteczka, etc) 3. Ustawiasz adres url pod który skrypt ma przejść i wykonujesz te przejście $wynik = curl_exec(); 4. Jeśli jest formularz, to ustawiasz dane POST i tak samo przechodzisz przy pomocy curl_exec. Teraz, po każdym takim przejściu możesz zobaczyć jaki wynik powstał, robiąc zwykłe print_r($wynik). Widzisz wtedy co za strona została pobrana. Po tym możesz diagnozować co się zdarzyło, czy logowanie udane, czy nie, czy poprawna strona, bo może otrzymałeś błąd 401. Do samych nagłówków tak jak pisałem wcześniej, skoro $info zwróciło Ci array, to zrób print_r($info) a nie echo $info, to zobaczysz wszystkie nagłówki. Odnośnie Twojego kodu ustawienia curl_setopt robisz raz, nie ustawiasz ciasteczek po każdym wykonaniu. Bo to są ustawienia dla danej 'sesji' cURL'a, więc są już ustawione dopóki nie usuniesz $ch. -------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 278 Pomógł: 3 Dołączył: 28.06.2008 Skąd: PL Ostrzeżenie: (0%) ![]() ![]() |
Już to rozwiązałem innym sposobem. Dzięki za odpowiedzi.
Ten post edytował kubek15 27.03.2010, 17:57:07 -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 17.06.2025 - 14:19 |