Jump to content
Spanner

[IP.Board 3.0.x] Logowanie użytkownika (Integracja ze stroną)

Recommended Posts

Jeśli chciałbyś połączyć logowanie na swojej stronie z logowaniem na forum IP.Board 3.0.x będziesz potrzebować mały skrypcik :) poniżej przedstawiam jego kod:


//-----------------------------------------
// Zmień ścieżkę do forum
//-----------------------------------------
$forum_path = './';

/**
* Zmieniamy katalog
*/
chdir( $forum_path );

/**
* Pobieramy podstawowe pliki
*/
define( 'IPB_THIS_SCRIPT', 'public' );
require_once( $forum_path . 'initdata.php' );

/**
* Rejestr IP.Board
*/
require_once( IPS_ROOT_PATH . 'sources/base/ipsRegistry.php' );
require_once( IPS_ROOT_PATH . 'sources/base/ipsController.php' );
$ipbRegistry = ipsRegistry::instance();
$ipbRegistry->init();

/**
* Handler logowania
*/
require_once( IPS_ROOT_PATH . 'sources/handlers/han_login.php' );
$login = new han_login( $ipbRegistry );
$login->init();

//-----------------------------------------
// Możesz przekazać albo $username albo $email_address i hasło.
//
// Upewnij się, że przekazujesz pusty parametr
// (username lub email_address) w zależności
// od tego, którego parametru nie będziesz używać.
//-----------------------------------------

if( $login->loginAuthenticate( $username, $email_address, $password ) )
{
print "Zalogowano";
exit;
}
else
{
print "Błąd logowania: " . $login->return_code;
exit;
}[/php]

Jeśli dodatkowo chciałbyś, aby IP.Board utworzyło odpowiednie cookie i zapisało dane zamień ostatnią instrukcję if .. else na:

[php]if( $login->loginAuthenticate( $username, $email_address, $password ) )
{
print "Zalogowano";
IPSCookie::set( "member_id" , $login->member_data['member_id'] , 1 );
IPSCookie::set( "pass_hash" , $login->member_data['member_login_key'], 1, 10 );
exit;
}
else
{
print "Błąd logowania: " . $login->return_code;
exit;
}

Dzięki wykorzystaniu handlera forum, możliwa jest obsługa blokowania konta i innych.

UWAGA: Jeśli forum ma inne kodowanie znaków niż strona, należy pamiętać, że mogą występować problemy ze znakami specjalnymi

Źródło: Invision Guru

Zabrania się kopiowania i rozpowszechniania artykułu w szczególności na innych forach bez zgody autora

Ten post został wypromowany na artykuł

Share this post


Link to post
Share on other sites

Witam,

Testowalem ten skrypt i dziala, jednakze problem polega na tym ze gdy loguje sie na strone przez ten skrypt to zeby przegladac forum trzeba znowu sie logowac. Jak to powiazaclogowac sie tylko raz do obydwu (storona + forum)? I czy jesli beda inne domeny to czy to tez bedzie dzialac? np: strona.pl forum.strona.pl . Jak sadze to ma zwiazek z cookies ale nie jestem zbytnio w temacie.

Edited by oliwiak82

Share this post


Link to post
Share on other sites

może być taka domena. Jeśli natomiast chodzi o pamiętanie to sprawdzałeś ten fragment na końcu tutka z zapisem Cookie? w cookie musisz zapisać ID sesji, żeby rozpoznawało Twoją obecność. Ale to powinieneś zapisać na stronie, bo bez tego, jak przejdziesz na jakąś podstronę to nie będzie działać

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

W celu świadczenie usług przez nasz Serwis na najwyższym poziomie, w ramach Serwisu wykorzystujemy pliki Cookies (tzw. ciasteczka). Korzystając ze stron Serwisu IPSBEYOND.PL bez zmiany ustawień przeglądarki będą one zapisane w pamięci urządzenia. Jeżeli nie dokonacie Państwo zmiany ustawień przeglądarki internetowej to wyrażacie zgodę na zapisywanie plików Cookies.