Vista la confusione dei post in inglese su questo argomento mi ero ripromesso di fare un breve tutorial su come si implementare il sistema di login del noto forum PHPBB3 con il vostro sito personale.
Iniziamo subito creando il file config.php che dovrà essere incluso in ogni pagina che necessità di un controllo sull'identità dell'utente.
config.php
<?php
/** Inizializzazione sessione PHPBB3 */
define('IN_PHPBB', true);
define('ROOT_PATH', "cartella/del/forum"); //Scrivete l'indirizzo della cartella in cui è contenuto il forum
if (!defined('IN_PHPBB') || !defined('ROOT_PATH')) {
exit();
}
$phpEx = "php";
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : ROOT_PATH . '/';
include($phpbb_root_path . 'common.' . $phpEx);
$user->session_begin();
$auth->acl($user->data);
$user->setup();
/* Fine della gestione sessioni */
?>
A questo punto abbiamo accesso ai dati dell'utente, per cui, per controllare se l'utente è loggato o no ci basta un semplice if:
if ($user->data['user_id'] == ANONYMOUS) //Se NON è loggato...
{
echo "Devi effettuare il login!";
}
else // Invece se è loggato
{
echo "Benvenuto ".$user->data['username']."!" ;
}
Creiamoci quindi la pagina con il form in html per effettuare il login.
login.php
<form action="ucp.php?mode=login" method="post">
<label>Username</label><br />
<input type="text" name="username" value="" /><br /><br />
<label>Password</label><br />
<input type="password" name="password" /><br /><br />
<label>Ricordami:</label>
<input type="checkbox" id="autologin" name="autologin" /><br /><br />
<input type="submit" value="Invia" />
</form>
Abbiamo indirizzato l'action del form alla pagina ucp.php che contiene il codice php per il login e il logout dell'utente. Vediamo come deve essere fatta.
ucp.php
<?php
if (!isset($_GET['mode']))
header("Location: index.php");
else
$mode = $_GET['mode'];
include_once 'config.php'; //Inclusione del file config.php
switch ($mode)
{
case "login": //Codice per effettuare il login
$username = $_POST['username'];
$password = $_POST['password'];
$remember = (isset($_POST['autologin'])) ? true : false; //Se è stata selezionata la casella dall'autologin allora $remembar è true altrimenti è false e non verrà considerato nel login
$auth->login($username, $password, $remember, 1, 0); //login
header("Location: index.php"); //redirect verso l'homepage
break;
case "logout": //Codice per effettuare il logout
$user->session_kill(); //Ditrugge le vecchie sessioni
$user->session_begin();
header("Location: index.php"); //redirect verso l'homepage
break;
}
?>
dal codice della pagina ucp.php si può dedurre infine che per effettuare il logut dell'utente basta creare un link così:
<a href="ucp.php?mode=logout">LOGOUT</a>
Tutto qui
Spero di essere stato utile.. ciao!