如何给你的网页添加PHPBB的登录窗口?虽然很简单,但是确实有很多陷阱在里面。
国外用的最多的就是以下的代码
<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
require($phpbb_root_path . 'common.' . $phpEx);
require($phpbb_root_path . 'includes/functions_user.' . $phpEx);
require($phpbb_root_path . 'includes/functions_module.' . $phpEx);
//phpbb3 login, user session management
$returnAddress ='./index.php';
//including phpBB3 stuff
// Start phpbb3 session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('viewforum');
?>
<?php
if (!$user->data['is_registered']) {
echo '<form method="post" action="'.$phpbb_root_path.'/ucp.php?mode=login" class="headerspace">';
echo '<div id="login">';
echo ' <ul>';
echo ' <li><label for="username">Username:</label> <input type="text" name="username" id="username" title="Username" /> </li>';
echo ' <li><label for="password">Password:</label> <input type="password" name="password" id="password" title="Password" /></li>';
echo ' <li><label for="autologin">Remember Me:<input type="checkbox" name="autologin" id="autologin" /></label> </li>';
echo ' </ul>';
echo ' <input type="hidden" name="redirect" value="'.$returnAddress.'">';
echo '</div>';
echo ' <div id="submit">';
echo ' <input type="submit" class="button" id="sbutton" name="login" value="Login" />';
echo ' <input type="reset" class="button" id="rbutton" name="reset" value="Reset" />';
echo ' </div>';
echo ' </form>';
}
else{
redirect(append_sid("{$phpbb_root_path}index.$phpEx"));
}
?>
后来摸索了很久,原来根本就不用那么麻烦,直接把论坛生成的源文件中的FORM代码拷贝出来一样可以登录,最关键的也是最容易迷惑人的就是对你的提交按钮有个判断:<input type="submit" name="login" value="Login" /> ,即必须要有一个name="login" value="Login"的提交值。
写下此文,只望后人不要再绕弯路。