per stabilire una connessione con il database,ed ottenere quindi tutte le funzioni di phpBB in una pagina esterna abbiamo bisogno del seguente codice:
Codice: Seleziona tutto
<?php
/**
*
* @package phpBB3
* @version $Id$
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
/**
*/
/**
* @ignore
*/
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './forum/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
diventerebbe cosi':
Codice: Seleziona tutto
<?php
/**
*
* @package phpBB3
* @version $Id$
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
/**
*/
/**
* @ignore
*/
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
if ($user->data['user_id'] == ANONYMOUS)
{
login_box('', $user->lang['LOGIN']);
}
Ora,il discorso cambierebbe se la pagina personalizzata si troverebbe "al di fuori della cartella forum",cioe':
http://tuodominio/tuapagina.php
quindi la parte per la connessione al database rimarebbe invariata,cambierebbe soltanto il codice per mantenere la sessione dell'utente attiva:
Codice: Seleziona tutto
<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './forum/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('common');
if($user->data['is_registered'])
{
//User is already logged in
}
else
{
$username = request_var('username', '', true);
$password = request_var('password', '', true);
$autologin = (!empty($_POST['autologin'])) ? true : false;
$result = $auth->login($username, $password, $autologin);
if ($result['status'] == LOGIN_SUCCESS)
{
//User was successfully logged into phpBB
$redirect = request_var('redirect', "{$phpbb_root_path}index.$phpEx");
// append/replace SID
$redirect = reapply_sid($redirect);
meta_refresh(0, $redirect);
trigger_error('You have been successfully logged in');
}
else
{
//User's login failed
}
}
Qui si dovra' prestare attenzione alla path dove risiede il phpBB rispetto alla pagina personalizzata se essa e' collocata al di fuori della directory:
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './forum/';