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
$curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $addr); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_COOKIESESSION, 1); curl_setopt($curl, CURLOPT_COOKIEFILE, 'includes/cookies.txt'); curl_setopt($curl, CURLOPT_COOKIEJAR, 'includes/cookies.txt'); curl_setopt($curl, CURLOPT_HEADER, $head); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($curl, CURLOPT_REFERER, $ref); curl_setopt($curl, CURLOPT_USERAGENT, 'User-Agent: Mozilla/5.0 (Windows NT 6.0; rv:6.0.1) Gecko/20100101 Firefox/6.0.1'); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $postData); $output = curl_exec($curl); curl_close($curl);
Jeśli chodzi o dane które wysyłam to:
'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.