为什么这个PHP include不能工作?


Why is this PHP include not working?

我正在尝试创建一个注销链接,该链接包含在授权区域中。

授权区域如下:

<?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>

得到以下错误:

注意:未定义变量:Session…

致命错误:在非对象上调用成员函数logout()

谁能解释一下我错过了什么?谢谢你的帮助。

尝试将global $Session;设置在logoutlink.php文件的顶部

我注意到您使用的是$Session,而不是$_Session。

如果$Session是用户在initialize.php中定义的变量,那么,试着把

require_once '../../includes/initialize.php';