我的开发服务器有一个奇怪的问题。就在几个小时前,PHP会话刚刚完全退出工作。每个文件(数百个)都开始显示如下所示的错误,关于未写入的会话cookie。我无法弄清楚问题是什么,导致这种情况刚刚开始发生,在一切正常之前,我甚至没有做出任何改变。更糟糕的是,我无法让它发挥作用。我尝试了不同的浏览器,重启我的服务器,甚至重启我的电脑。什么都没有帮助,任何想法我能做什么?这真的很疯狂
请注意,在调用session_start()之前,我没有任何空格或任何打印到屏幕的内容
警告:session_start() [function.session-start]:无法发送 会话cookie - 已发送的标头 通过(输出开始于 C:\网络服务器\ htdocs中\ friendproject2 \实验室\ 2.PHP:1) 在 C:\网络服务器\ htdocs中\ friendproject2 \实验室\ 2.PHP 在第3行
警告:session_start() [function.session-start]:无法发送 会话缓存限制器 - 标头 已发送(输出开始于 C:\网络服务器\ htdocs中\ friendproject2 \实验室\ 2.PHP:1) 在 C:\网络服务器\ htdocs中\ friendproject2 \实验室\ 2.PHP 在第3行测试
正如我所提到的,这现在发生在我网站的每个文件上,甚至是简单的文件。我发布的错误来自一个简单的文件......
<?PHP
session_start();
$_SESSION['test'] = 'test';
echo
$_SESSION['test'];
?>
答案 0 :(得分:1)
C:\webserver\htdocs\friendproject2\labs\2.php
第1行的内容已经过时了。
此外,test
来自哪里?
似乎问题是文件编码,您应该始终使用 UTF-8无BOM 作为.php
文件的首选编码,代码编辑器,例如 {{ 3}} 让你轻松指定(UTF-8 Plain)。
您还应该阅读Joel Spolsky撰写的alt text http://i48.tinypic.com/ok4a4k.png。
答案 1 :(得分:0)
如果start_session()在包含文件中,请检查以确保在向页面输出任何内容之前包含该文件。这就是它说已经发送标题的原因。如果start_session()不是第一件事,我之前遇到过这个问题。
答案 2 :(得分:0)
在没有更改代码和多个页面受影响的情况下,我的第一个调用端口是检查webserver配置(或php.ini或.htaccess)是否添加了自动前置。
这会导致sberry2A的示例代码失败。如果sberry2A的代码有效,那么检查公共包含文件中的一些狡猾的字符。
下进行。