Php 包含文件-会话错误

Php 包含文件-会话错误,php,session,header,include,comments,Php,Session,Header,Include,Comments,对于一个小评论小部件。 我正在尝试将该小部件包含到wish的任何.php文件中,这对于用户来说是最实际的方式,只需: <?php include "comments.php"; ?> 我试图在小部件中创建一个管理员登录面板,让登录的管理员删除帖子(以及更多其他选项) 问题在于:我现在必须开始使用$\u会话,以防止管理员在每次更改/页面刷新时都必须反复登录。 但是,使用小部件中的会话,我只能看到标题和会话警告…olready started……等等 这不是一个强迫用户在页面顶部输

对于一个小评论小部件。 我正在尝试将该小部件包含到wish的任何.php文件中,这对于用户来说是最实际的方式,只需:

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

我试图在小部件中创建一个管理员登录面板,让登录的管理员删除帖子(以及更多其他选项)

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

这不是一个强迫用户在页面顶部输入“会话开始”的选项,我想让事情简单一些。只需php-
包含
小部件

我还可以继续尝试php会话,还是应该尝试其他方法?
提前感谢您的建议。

好吧,根据您提供给我们的信息,这就是您的问题所在:PHP会话使用一个特殊的cookie,它以头的形式发送。因此,您必须执行会话_start();在将任何其他内容发送到浏览器之前,它可以在标题中设置cookie。因此,很不幸,看起来您必须在其包含的小部件之外启动会话


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

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

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

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

php_标志session.auto_启动时间
我还建议在include中引用您网站的根路径,这样您就可以在任何页面上使用该注释include语句,而不必向路径添加一堆“../../../../”

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


如果您得到一个
会话已启动
错误,这意味着您可能在多个位置启动会话。不,这是我在整个项目中的第一个会话。这是一个通常可以在任何辉绿岩上浏览的响应。但是还有更多的建议:在会话开始之前的ob_start()建议,甚至还有更高级/复杂的事情。至少对最终用户来说是这样。我仍然相信有一个更简单、平庸的解决方案。解决了。(平面文件)使用会话几乎不可能实现这一点。不是小部件样式。我创建了一个获取访问者IP的temp.php文件。如果用户尝试登录并输入正确的“用户名”和“密码”,则IP会立即写入temp.php文件。所以下一次用户(管理员)尝试登录时,或者在重新加载页面时,面板就在那里等着他。除非单击“注销”。现在,当小部件在comments delete刷新时,我只是制作了一个jQuery cookie,告诉管理面板在单击后始终保持打开状态。除非点击了“注销”。这个想法是一个“独立”的评论小部件。这样做的目的是让事情变得简单。对于最终用户来说,最简单的事情就是将小部件复制到服务器(root或posts/blog文件夹),然后,在任何时候,只要在任何帖子之后将include脚本粘贴到文件中即可。这是一个有趣的建议。由于我是PHP新手(一周),我将对该解决方案进行更多的研究。我会让你知道结果的!非常感谢大家的建议!Jason,我想在最后保持客户端站点不变。只有两条规则。将软件包上传到服务器,并在任何需要的地方加入评论系统。仍然在寻找答案。。。谢谢