Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: cURL i logowanie na IPB
Forum PHP.pl > Forum > PHP
pablo114
Witam,

Tworze skrypt do logowania na różne skrypty forum (phpBB, vBulletin, IPB) i napotkałem problem przy właśnie wspomnianym IPB. Wydaje się, że stosuje dobrą metodę i dane trafiają do skryptu natomiast i tak po przesłaniu danych zwraca mi błąd o treści:
Cytat
[#10193] We encountered a problem processing your login request


Jeśli chodzi o moje metody to tak:

Ustawienia cURLa
  1. $curl = curl_init();
  2. curl_setopt($curl, CURLOPT_URL, $addr);
  3. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  4. curl_setopt($curl, CURLOPT_COOKIESESSION, 1);
  5. curl_setopt($curl, CURLOPT_COOKIEFILE, 'includes/cookies.txt');
  6. curl_setopt($curl, CURLOPT_COOKIEJAR, 'includes/cookies.txt');
  7. curl_setopt($curl, CURLOPT_HEADER, $head);
  8. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
  9. curl_setopt($curl, CURLOPT_REFERER, $ref);
  10. curl_setopt($curl, CURLOPT_USERAGENT, 'User-Agent: Mozilla/5.0 (Windows NT 6.0; rv:6.0.1) Gecko/20100101 Firefox/6.0.1');
  11. curl_setopt($curl, CURLOPT_POST, 1);
  12. if(!empty($args))
  13. curl_setopt($curl, CURLOPT_POSTFIELDS, $postData);
  14. $output = curl_exec($curl);
  15. curl_close($curl);


Jeśli chodzi o dane które wysyłam to:
  1. 'auth_key='. $result[0] .'&referer=http://mypage.com/ipb/index.php&ips_username='. $login .'&ips_password='. $password .'&rememberMe=1'

Zmienne $login i $password zawierają oczywiście dane użytkownika a tablica $result[0] to token bezpieczeństwa pobierany poprzez preg_match().

A i nie wiem dlaczego ale cURL nie zapisuje mi ciasteczek. Plik na pewno istnieje.

Czegoś mi brakuje? Sprawdzając dane nagłówka w Firefoxowym Live HTTP Headers widze, że przesyłane jest tylko te 5 pól. Wersja IPB to 3.2.0.

Z góry dzięki za pomoc.
Fifi209
przy cookiejar i cookiefile

dirname(__FILE__).'sciezka'
pablo114
Dzięki z tym, moje przeoczenie. No ale dalej sie zalogować nie da..
amii
Co zwraca $output ?
pablo114
Cytat
Co zwraca $output ?


Strone logowania IPB z komunikatem o błędzie wyżej przedstawionym:
Cytat
[#10193] We encountered a problem processing your login request
lobopol
Prosta sprawa ipb ma zabezpieczenie przed cssrf pod postacią tokena w formularzu (pole auth_key) musisz je najpierw pobrać i na tej samej sesji je wysłać razem z danymi do logowania.
pablo114
Doskonale o tym wiem. Tak jak napisałem w pierwszej wiadomości, tablica $result zawiera właśnie ten token który jest przesyłany z polem auth_key. No i wyskakuje tamten errorek wciąż.

EDIT: Mój błąd przy preg_matchu - przesyłałem nie ten token... zamiast ipb.vars['secure_hash'] wysylalem ipb.vars['session_id']. Dzięki za pomoc.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.