Skocz do zawartości


- - - - -

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


  • Proszę się zalogować aby odpowiedzieć
4 odpowiedzi na ten temat

#1 Spanner

Spanner

    PHP & IP.Board Developer

  • Administrator
  • 5437 postów
  • Płeć:Mężczyzna
  • Skąd:KrK
  • Wersja:IP.Board 3.3.x

Napisany 30 wrzesień 2009 - 07:32

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;
}

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

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ł

#2 oliwiak82

oliwiak82

    IP.Board Newbie

  • Użytkownicy
  • Pip
  • 1 postów
  • Wersja:IP.Board 3.0.x

Napisany 29 listopad 2009 - 21:13

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.

Edytowany przez oliwiak82, 29 listopad 2009 - 21:14.


#3 Spanner

Spanner

    PHP & IP.Board Developer

  • Administrator
  • 5437 postów
  • Płeć:Mężczyzna
  • Skąd:KrK
  • Wersja:IP.Board 3.3.x

Napisany 30 listopad 2009 - 05:40

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ć

#4 grzecho1993

grzecho1993

    IP.Board Newbie

  • Użytkownicy
  • Pip
  • 4 postów
  • Wersja:IP.Board 3.0.x

Napisany 08 luty 2010 - 07:03

Witam jestem nowy i nie wiem jak ten skrypt zainstalować mam strone ze skryptem DataLife Engine

#5 Spanner

Spanner

    PHP & IP.Board Developer

  • Administrator
  • 5437 postów
  • Płeć:Mężczyzna
  • Skąd:KrK
  • Wersja:IP.Board 3.3.x

Napisany 08 luty 2010 - 10:13

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


Integracja aplikacji z BBCodem , Integracja Wordpress i IPB , Rejestracja: Jeden adres e-mail, a kilku użytkowników , [IP.Board 3.1.x] Odznaczenie użytkowników z ostrzeżeniem , logowanie szyfrowane


1 użytkowników czyta ten temat

0 użytkowników, 1 gości, 0 anonimowych użytkowników