包含文件 - 会话错误

时间:2011-01-26 00:30:11

标签: php session header include comments

对于小评论小部件。 我正在尝试这个小部件包含到任何.php文件中,希望以最实用的方式为用户提供:

<?php include "comments.php"; ?>

我正在尝试在窗口小部件中创建 admin-login-panel ,以便让已登录的管理员删除帖子(以及更多其他选项)。

问题是:我现在开始使用$_SESSION,以防止管理员在每次更改/页面刷新时反复登录。 但是,使用窗口小部件中的会话,我只能看到标题和会话警告...olready started... ....等等。

不是强制用户在他的页面中放入'session_starts'的选项,我想保持简单。只需php - include小部件。

我可以继续尝试使用php会话,还是应该尝试别的? 提前感谢任何建议。

2 个答案:

答案 0 :(得分:1)

好的,根据您提供给我们的信息,您的问题是:PHP会话使用在标头中发送的特殊cookie。所以你必须执行session_start();在发送到浏览器的任何其他内容之前,它可以在标题中设置cookie。不幸的是,看起来你必须在他们的小部件之外开始一个会话。

为什么在窗口小部件之外启动会话不是一个选项?您是否无法控制其他PHP页面?

答案 1 :(得分:1)

可以将您的网站配置为在每个页面上自动启动会话。

通常可以通过.htaccess文件修改目录的PHP配置值来完成此操作:

<IfModule mod_php5.c>
  php_flag session.auto_start on
</IfModule>

另外,我建议在include中引用您网站的根路径,这样您就可以在任何页面上使用该注释include语句,而无需在路径中添加一堆'../../../'

<?php 
   include($_SERVER['DOCUMENT_ROOT'] . "/header.php"); 
?>