为什么这个PHP包含不起作用?

时间:2012-01-01 22:19:06

标签: php include

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

授权区域如下所示:

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

有人可以解释我错过了什么吗?在此先感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

我注意到你正在使用$ Session,而不是$ _Session。

如果$ Session是initialize.php中的用户定义变量,那么,尝试添加

require_once '../../includes/initialize.php';
在你的logoutlink.php

答案 1 :(得分:1)

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