我正在尝试创建一个包含在授权区域中的注销链接。
授权区域如下所示:
<?php require_once '../../includes/initialize.php';
if(!$Session->is_logged_in()) { redirect_to('login.php'); }
$user = $User->find_by_id($Session->user_id);
?>
<!-------------- START OF LOGOUT LINK -------------->
<?php
if (isset($_GET['logout']))
{
$Session->logout($user);
$Logger->logout($user);
redirect_to('login.php');
}
?>
<p style="float: right;"><a href="?logout=true">Logout</a></p>
<!-------------- END OF LOGOUT LINK -------------->
<p>Welcome <?php echo $user->first_name; ?>, you are now logged into the admin area.</p>
上面的代码工作正常!
但是当我更改它以便注销链接是一个包含时,我收到错误。这就是我在我的包含文件logoutlink.php中添加的内容:
<?php
if (isset($_GET['logout']))
{
$Session->logout($user);
$Logger->logout($user);
redirect_to('login.php');
}
?>
<p style="float: right;"><a href="?logout=true">Logout</a></p>
然后我将其包含在我的授权区域中:
<?php require_once '../../includes/initialize.php';
if(!$Session->is_logged_in()) { redirect_to('login.php'); }
$user = $User->find_by_id($Session->user_id);
?>
<!-------------- START OF LOGOUT LINK -------------->
<?php include '../../includes/logoutlink.php'; ?>
<!-------------- END OF LOGOUT LINK -------------->
<p>Welcome <?php echo $user->first_name; ?>, you are now logged into the admin area.</p>
我收到以下错误:
注意:未定义的变量:会话......
&安培;
致命错误:在...中的非对象上调用成员函数logout()
有人可以解释我错过了什么吗?在此先感谢您的帮助。
答案 0 :(得分:1)
我注意到你正在使用$ Session,而不是$ _Session。
如果$ Session是initialize.php中的用户定义变量,那么,尝试添加
require_once '../../includes/initialize.php';
答案 1 :(得分:1)
尝试在global $Session;
文件的顶部设置logoutlink.php
。