如何在不重定向到另一个页面的情况下进行外部phpbb登录?

时间:2012-07-13 11:13:20

标签: phpbb3

可以使用以下代码进行外部登录

<form action="./phpBB3/ucp.php?mode=login" method="post">
 <h3><a href="./phpBB3/ucp.php?mode=login">Login</a>&nbsp; &bull; &nbsp; <a href="./phpBB3/ucp.php?mode=register">Register</a></h3>
 <fieldset>
    <label for="username">Username:</label>&nbsp;
    <input type="text" name="username" id="username" size="10" title="Username" />
    <label for="password">Password:</label>&nbsp;
    <input type="password" name="password" id="password" size="10" title="Password" />
    <input type="submit" name="login" value="Login" />
 </fieldset>
</form>

但这将使你在论坛索引上结束。

如果你添加

<input type="hidden" name="redirect" value="./somefile.html" />

你可以让它重定向回到你开始的页面,但是你仍然会不必要地转到另一个页面而只是回来并丢失了你在该页面上所做的一切。

有没有人知道如何制作一个让您无需离开页面即可登录的系统?也许有iframe的东西?

1 个答案:

答案 0 :(得分:2)

这可能会迟到,但这可行:

<?php
define('IN_PHPBB', true);
$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['is_registered'])
{
    //User is already logged in
    }
else
{                    
$result = $auth->login($username, $password, '', 1, 0);

print_r($result);
if ($result['status'] == LOGIN_SUCCESS)
{
    echo '//User was successfully logged into phpBB';
}
else
{
    echo '//Users login failed';
}
}
?>

在上面的代码中,将$username$password更改为您的登录内容,运行它并查看,我已经在最新的phpbb版本上测试了它,并且它可以正常工作。

不要忘记将根路径和内容更改为您的规范。