Mam pytanie odnośnie rejestracji na phpbb. Jak zalogować się na to forum automatycznie - poprzez logowanie na osobnym serwisie ? Osobny serwis stoi i Javie i javascripcie. Trochę się naszukałem, ale nie znalazłem idealnego rozwiązania. Dużym kłopotem jest to, że kompletnie się nie znam na php. Ktoś może coś polecić ? Tylko nie tutorial do php :], ale konkretny sposób rozwiązania tego problemu. Wolałbym od strony Javy.
Chodzi o sprzezenie bazy danych Twojego serwisu oraz bazy danych forum, prawda? Tak wiec, to, co musisz zrobic, to dodac do bazy danych (do tabeli phpbb3_users
) uzytkownika forum, wraz z hashowanym (MD5) haslem. Oraz co wazniejsze - musisz utworzyc cookies, ktory odpowiada cookies tworzonemu przez system phpBB. Szczegolow Ci nie podam - musisz jednak sprawdzic dane jakie phpBB wysyla do cookies oraz jego format. Znajomosc PHP nie bedzie tu potrzebna; znajac Jave bez problemu zorientujesz sie w PHP na tyle, zeby zrozumiec dzialanie, przynajmniej w podstawie.
Już przedstawiam aktualna koncepcję:
- piszę moda php, który po kliknięciu na link logowania w phpbb wysyła request do serwera mojej strony i sprawdza, czy użytkownik jest zalogowany
- jeśli jest, to pobiera z responsa login i hasło i loguje automatycznie
- jeśli nie jest, to przekierowuje na stronę logowania na moim serwisie
Poniższy kod może się przydać ?
<?php
$r = new HttpRequest('http://example.com/isLogged', HttpRequest::METH_POST);
$r->addPostFields(array('user' => 'mike', 'pass' => 's3c|r3t'));
try {
echo $r->send()->getBody();
} catch (HttpException $ex) {
echo $ex;
}
?>
JavaNinja napisał(a)
Już przedstawiam aktualna koncepcję:
- piszę moda php, który po kliknięciu na link logowania w phpbb wysyła request do serwera mojej strony i sprawdza, czy użytkownik jest zalogowany
- jeśli jest, to pobiera z responsa login i hasło i loguje automatycznie
- jeśli nie jest, to przekierowuje na stronę logowania na moim serwisie
Poniższy kod może się przydać ?
<?php
$r = new HttpRequest('http://example.com/isLogged', HttpRequest::METH_POST);
$r->addPostFields(array('user' => 'mike', 'pass' => 's3c|r3t'));
try {
echo $r->send()->getBody();
} catch (HttpException $ex) {
echo $ex;
}
?>
ZLITUJ SIĘ! Oryginalne phpBB3 ma oficjalne API zintegrowane z całym silnikiem forum.
http://wiki.phpbb.com/API
To jak puścić request do innego serwera (nie tego z forum) w celu pobrania loginu i hasła ? Podkreślam - nie znam php.
Masz dostęp do plików tego forum?
Mam dostęp. Staram się właśnie dowiedzieć czegoś na podstawie tego API.
No to dopisujesz sobie mały dodatkowy skrypcik api.php w którym byś zaimplementował dostęp do tego co chcesz (na podstawie przykładów w artykułach, to nie jest trudne) i odpalasz go jakąś klasą do HTTP z poziomu Javy.
Ale przecież chce, żeby autologowanie zostało uruchomione w momencie kliknięcia 'Login' w phpBB, więc jak mam to napisać w Javie ? Klikam loguj i mnie automatycznie loguje bez wpisywania danych (o ile byłem zalogowany na stronie mojego serwisu). Wg opisu w API trzeba stworzyć skrypt zgodnie z konwencją nazw, którą tam podają - przekopiować w odpowiednie miejsce i się wywoła zastępując domyślne logowanie.