![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 1.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam, chciałbym wysłać na inną stronę uzupełniony formularz, problem mam w tym, że aby dokonać jakiś operacji na wysłanych danych na tą stronę trzeba być na niej zalogowanym, i mam pytanie czy istnieje jakieś sposób na dokonać takiego zabiegu, jakoś się za pomocą php zalogować czy coś.
Pozdrawiam |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
słowo klucz: cURL
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 1.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki, temat do zamknięcia.
Mam problem, chce się zalogować do ryushare ( hosting plików ), z strony logowania wysyłane za 4 zmienne op, redirect, login i password, z czego dwie pierwsze jako ukryte formy. W sumie skrypt "działa" gdy przesyłam nieprawidłowe dane loginu i hasła to otrzymuje stronę z komunikatem o nie poprawnych lognie lub haśle, ale kiedy wysyłam poprawne dane to jako feedback nic nie otrzymuje, biała karta, nawet funkcje związane z blędami nic nie przekazują, i mam pytanie czy coś robię żle czy może serwer blokuje jakoś korzystanie z tej metody logowania. Pozdrawaim
Ten post edytował c4ld3ra 19.09.2012, 11:46:50 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Zapewne po poprawnym zalogowaniu strona serwuje pustą stronę, a w nagłówkach odpowiedzi jest przekierowanie.
1. Sprawdź jakie nagłówki HTTP są zawracane: curl_setopt($c, CURL_HEADER, true);. 2. Skonfiguruj cURL-a tak, by automatycznie podążał za przekierowaniami: curl_setopt($c, CURLOPT_FOLLOWLOCATION, true); Swoją drogą do budowana zwartości POSTFIELDS powinieneś użyć http_build_query - obecnie Twój kod nie będzie działał we wszystkich przypadkach (np. hasło zawierające znak "&"). |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 1.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Coś nie działa ten CURLOPT_FOLLOWLOCATION
Kod PHP Error Message Warning: curl_setopt() [function.curl-setopt]: CURLOPT_FOLLOWLOCATION cannot be activated when safe_mode is enabled or an open_basedir is set in /home/a8236701/public_html/test.php on line 19 Free Web Hosting HTTP/1.1 302 Found Status: 302 Moved Set-Cookie: aff=3734; domain=.ryushare.com; path=/; expires=Fri, 19-Oct-2012 11:06:16 GMT Set-Cookie: login=c4ld3ra; domain=.ryushare.com; path=/; expires=Mon, 18-Mar-2013 11:06:16 GMT Set-Cookie: xfss=atah4zvai0gmy4zo; domain=.ryushare.com; path=/; expires=Fri, 19-Oct-2012 11:06:16 GMT Date: Wed, 19 Sep 2012 11:06:16 GMT Location: http://ryushare.com/ Connection: close Transfer-Encoding: chunked Server: Ryushare Webserver Znalazłem w sieci funkcjie umożliwiającą automatyczne przekierowania, po jej zastosowaniu nadal brak oczekiwanego efektu.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat [...] CURLOPT_FOLLOWLOCATION cannot be activated when safe_mode is enabled or an open_basedir is set [...] W odpowiedzi dostałeś nagłówek informujący o statusie (302 Found) oraz nagłówek Location informujący o adresie na jaki powinieneś się przenieść (Location: http://ryushare.com/). CURL_FOLLOWLOCATION zrobiłoby to automatycznie, ale skoro nie możesz z tego skorzystać powinieneś samodzielnie wykonać jeszcze raz żądanie do strony głównej ryushare.com. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 1.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli dobrze zrozumiałem przekaz to sugerujesz powtórne wywołanie funkcji curl_exec, wtedy owszem pokazuje mi się ciało strony ale bez zalogowanego użytkownika.
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Ponieważ, żeby kolejne żądanie było powiązane z daną sesją musisz przesłać odpowiednie ciasteczka, a konkretniej to zawierające identyfikator sesji. Podtrzymywanie sesji przy użyciu cURL-a.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
-------------------- Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 1.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Zaczyna działać
![]() |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Chyba każda przeglądarka posiada teraz wbudowane "narzędzia deweloperskie" (Firefox w postaci dodatku Firebug). Zobacz sobie jakie dane przesyła przeglądarka w momencie wysłania formularza - chodzi wyłącznie o obecność pewnych pól i ewentualnie ich wartość, nic więcej.
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 1.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Zainstalowałem ten firebug pod chrome ale w okienku Network widzę jedynie jakie dokumenty zostały przesłane a nie jakie dane w zapytaniu.
Doszukałem się takiego sposobu link, ale na ryushare te submity nie mają pola name wiec odpada ![]() |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Chrome ma wbudowane narzędzia deweloperskie (F12 - chyba w każdej przeglądarce, nie tylko Chrome), a tam zakładkę Network, w której jest wszystko czego Ci potrzeba.
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 1.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
No i masz. Pierwszy element - żądanie typu POST. Kliknij i zobacz jakie dane są w nim przesyłane.
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 1.12.2009 Ostrzeżenie: (0%) ![]() ![]() |
Strona przesyla takie dane:
![]() ja zaś to robię w ten sposób :
jako wynik otrzymuję stronę z zalogowanym użytkownikiem ale z brakiem oczekiwanego efektu zrobienia kopii pliku do innego katalogu. |
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
1. Najpierw wykonaj zwykłe żądanie typu GET do strony z formularzem, by utworzyć sesję. Być może mają jakieś zabezpieczenie przed bezpośrednim wysłaniem formularza.
2. Poza COOKIEFILE powinieneś też ustawić COOKIEJAR. 3. "to_folder_copy", nie "to-folder_copy". 4. Do utworzenia ciągu ze zmiennymi skorzystaj z http_build_query. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 12.07.2025 - 10:57 |