Integrare sistema login phpbb3 nei nostri siti

Phpbb3 è senza dubbio il piu’ usato, sicuro, diffuso, potente  e sicuro php forum script del momento ( In gergo: Bulletin Board ) .

Per piccoli sviluppatori e webmaster una bella cosa che si potrebbe fare e’  integrare il sistema permessi/account del phpbb3 con semplici pagine del propio sito.

In questo articolo vorrei spiegarvi, in modo semplice e basilare, come fare ciò.

Per prima cosa installate normalmente il phpbb3 in una sottocartella del vostro sito(Es. Forums)

Ora passiamo ai codici.

In teoria: dobbiamo includere il file common.php del phpbb3, dopodichè possiamo sfruttare le semplici ed intuitive classi  user e auth.

Nella pratica:

Obbligatoriamente, dobbiamo inserire all’inizio di tutte le pagine in cui vogliamo sfruttare i sistemi di permessi/account e le classi del phpbb3 questo codice:

<?php

define(‘IN_PHPBB’, true);
$phpbb_root_path = ‘./forum/’;

//Se la cartella relativa in cui risiede il phpbb3 è diversa da “forum”, modificate questa variabile

$phpEx = substr(strrchr(__FILE__, ‘.’), 1);
include($phpbb_root_path . ‘common.’ . $phpEx);
$user->session_begin();
$auth->acl($user->data);
$user->setup();

?>

Bene,

ora possiamo sfruttare tutte le classi e il sistema di permessi!

Iniziamo parlando della classe user,

possiamo sapere se è un’utente è loggato in questo modo:

Controllare se un’utente è loggato e in caso contrario mostrare il login form.

<?php

if ($user->data[‘is_registered’]){

echo “Ciao, sei un’utente loggato nel forum phpbb3!”;

} else {

?>

<form method=”post” action=”forum/ucp.php?mode=login”>
<label for=”username”>Username: </label> <input type=”text” name=”username” id=”username” size=”40″ /><br /><br />
<label for=”password”>Password: </label><input type=”password” name=”password” id=”password” size=”40″ /><br /><br />
<label for=”autologin”>Remember Me?: </label><input type=”checkbox” name=”autologin” id=”autologin”  /><br /><br />
<input type=”submit” value=”Log In” name=”login” />
<input type=”hidden” name=”redirect” value=”../index.php” />
</form>

<?php

} ?>

Controllare se l’utente è loggato e ricavare informazioni e dati profilo.

Saputo questo controllo basilare, dovete sapere che possiamo ricavare tutte le informazioni che vogliamo dall’utente:

Ad esempio:

if ($user->data[‘is_registered’]){ //Controlliamo se l’utente è registrato

$username=$user->data[‘username’];

echo “Ciao, “;

echo $username; //Mostra l’username

echo $user->data[‘user_posts’]; //Numero di posts nel forum

echo $user->data[‘user_lang’]; //Lingua utente

echo $user->data[‘user_email’]; //Email utente

echo $user->data[‘user_msnm’]; //Msn Messenger Utente

//e cosi’ via.

} else {

echo “NOn sei registrato, <a href=’forum/ucp.php?mode=register’>registrati</a>”;

}

Potete vedere la lista completa delle variabili utilizzabile per stampare relative informazioni dell’utente in questa pagina.

Controllare se un’utente e’ amministratore.

Si può fare in due modi:

Primo Modo:

<?php

if ($user->data[‘session_admin’]){

echo “Ciao,”;

echo $user->data[‘username’];

echo “Sei amministratore!”;

} else {

echo “Messaggio negativo!”;

}
?>

Secondo Modo(Credo piu’ sicuro)

<?php

if ($auth->acl_get(‘a_’)){

echo “Ciao,”;

echo $user->data[‘username’];

echo “Sei amministratore!”;

} else {

echo “Messaggio negativo!”;

}
?>

Controllare se un’utente e’ moderatore

Per controllare se un’utente è moderatore globale:

<?php

if  ($auth->acl_get(‘m_’)){

echo “Ciao, sei moderatore globale!!!”;

}

?>

Per controllare se un’utente è moderatore di un determinato forum:

<?php

$forum_id = 1; //Inserire qui l’id del forum,  ad esempio “1”

if ($auth->acl_get(‘m_’, $forum_id)){

echo “Ciao, sei moderatore del forum che ha l’id: $forum_id”;

}

?>

Un articolo a caso

Lascia un commento