Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Curl - logowanie IPB
Forum PHP.pl > Forum > Przedszkole
Watt
Witam!

Chciałem napisać logowanie na IPB w curlu, ale coś nie chce działać. Czy mógłbym prosić o pomoc?

Kod
$Pass = 'pass';
$link = 'http://www.forum.com/';
$c = curl_init();
curl_setopt($c, CURLOPT_COOKIEJAR, $cookie_file);
curl_setopt($c, CURLOPT_COOKIEFILE, $cookie_file);
curl_setopt($c, CURLOPT_URL, 'http://www.forum.com/index.php?act=login&CODE=00');
curl_setopt($c, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12;");
curl_setopt($c, CURLOPT_POST, 1);
curl_setopt($c, CURLOPT_POSTFIELDS,
'UserName=Nick&PassWord='.$Pass.'&do=login&CookieDate=1');
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_getinfo($c);
$s = curl_exec($c);
curl_close($c);
echo "Poszlo?";
pitu
Najpierw musisz pobrać "auth_key", a następnie logując się wysłać go wraz z innymi danymi. Zainteresuj się dodatkiem do FF Live HTTP Headers.
Watt
Zamieniłem to na coś takiego i dalej nie śmiga (choc auth key pobiera)
Kod
$md5Pass = 'pass';
$link = 'http://www.forum.com/';
$c = curl_init();
curl_setopt($c, CURLOPT_COOKIEJAR, $cookie_file);
curl_setopt($c, CURLOPT_COOKIEFILE, $cookie_file);
curl_setopt($c, CURLOPT_URL, 'http://www.forum.com/index.php?app=core&module=global&section=login');
curl_setopt($c, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12;");
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_getinfo($c);
$s = curl_exec($c);
curl_close($c);

preg_match('/<input type=[\'"]hidden[\'"] name=[\'"]auth_key[\'"] value=[\'"](.*)[\'"] \/>/isU', $s,$auth_key);

//print_r($matches);
$md5Pass = 'pass';
$link = 'http://www.forum.com/';
$c = curl_init();
curl_setopt($c, CURLOPT_COOKIEJAR, $cookie_file);
curl_setopt($c, CURLOPT_COOKIEFILE, $cookie_file);
curl_setopt($c, CURLOPT_URL, 'http://www.forum.com/index.php?act=login&CODE=00');
curl_setopt($c, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12;");
curl_setopt($c, CURLOPT_POST, 1);
curl_setopt($c, CURLOPT_POSTFIELDS,
'auth_key='.$auth_key[1].'&UserName=Nick&PassWord='.$md5Pass.'&do=login&CookieDate=1');
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_getinfo($c);
$s = curl_exec($c);
curl_close($c);
echo $auth_key[1]."Poszlo?";


print_r($s);
pitu
Czy to jest na pewno dobry adres, na które mają być wysłane dane przy logowaniu?

  1. curl_setopt($c, CURLOPT_URL, 'http://www.forum.com/index.php?act=login&CODE=00');


Dodatkowo przeglądałem źródła dwóch for na IPB i nazwy pól login i hasło wyglądają tam inaczej.

  1. ips_username
  2. ips_password
Watt
O, wybacz sprawdzałem na róznych forach i nie zauważyłem. Dzięki!
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.