Skocz do zawartości
Spanner

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

Polecane posty

Spanner    4247

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ł

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
oliwiak82    0

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.

Edytowano przez oliwiak82

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Spanner    4247

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ć

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Spanner    4247

Witam,

niestety nie znam DLE więc w sprawie zmiany sposobu logowania w tym skrypcie powinieneś zapytać na jakimś supporcie DLE

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość
Temat jest zablokowany i nie można w nim pisać.

  • Kto przegląda   0 użytkowników

    Brak zalogowanych użytkowników przeglądających tę stronę.

×

Ważne informacje

Kontynuując przeglądanie strony, wyrażasz zgodę na używanie przez nas plików cookies.