对于一个小的评论小部件。我正在尝试将这个小部件按需要将包含到任何.php文件中--对于用户来说,这是最实用的方式,只需:
<?php include "comments.php"; ?>我正在尝试在小部件中创建一个admin-login-panel,以提供日志管理员来删除这些帖子(以及更多其他选项)。
问题是:我现在必须开始使用$_SESSION,以防止管理员不得不在每次更改/页面刷新时反复登录。但是,使用小部件内部的会话,我只能看到头和会话警告...olready started... ....and等等。
不是强迫用户将顶级“会话_开始”放到页面中的选项,我想保持简单。只需php-include小部件。
我还可以继续使用php会话吗?还是应该尝试其他的方法?谢谢您的建议。
发布于 2011-01-26 00:35:31
好的,根据您给我们的信息,这就是您的问题所在: PHP会话使用了一个特殊的cookie,该cookie是在头文件中发送的。因此,您必须在发送给浏览器的任何其他内容之前执行一个session_start();这样它就可以在标题中设置cookie。因此,不幸的是,您将不得不在其包括一个小部件之外启动一个会话。
为什么在小部件之外启动会话不是一个选项?您对其他PHP页面没有控制权吗?
发布于 2011-01-26 00:39:39
可以将您的站点配置为在每个页面上自动启动会话。
您通常可以通过如下所示的.htaccess文件修改目录的PHP配置值来实现这一点:
<IfModule mod_php5.c>
php_flag session.auto_start on
</IfModule>此外,我建议在include中引用您网站的根路径,这样您就可以在任何页面上使用该注释include语句,而不必向路径中添加一堆‘./.././.’。
<?php
include($_SERVER['DOCUMENT_ROOT'] . "/header.php");
?>https://stackoverflow.com/questions/4800383
复制相似问题