我正在运行XAMPP,这是一个基本的LAMP设置,但对于Windows。 我已经使用了多年,现在没有任何麻烦,突然之间,所有使用PHP会话的网站页面现在都会给出这样的错误…
警告:session_start()[function.session-start]:无法发送会话caching限制器 – 在C:\ webserver \ htdocs中已经发送的头文件(输出开始于C:\ webserver \ htdocs \ friendproject2 \ labs \ 2.php:1) \第3行\ friendproject2 \ labs \ 2.php
我意识到,这通常发生在2件事中的1件。
现在我的问题是不同的。 在今晚之前,我有数百个使用会话的文件,没有一个显示任何这些错误。 这不只是一个文件,我忽略了用户错误,这只是开始影响我所有的文件。 我今天晚上还没有对我的电脑做任何改变,或者最近我还记得。
什么可能导致这个? 这让我疯狂,似乎没有人知道为什么开始发生。 我认为这一定是服务器相关的
我甚至可以创build一个文件,并把它放到我的服务器networking的任何文件夹,并成为一个简单的文件,像这样bvelow,它仍然会给我上面显示的错误….
<?PHP session_start(); $_SESSION['test'] = 'test value'; echo $_SESSION['test']; ?>
检查您的所有文件是否以UTF-8编码保存。 UTF-8编码文件可能包含BOM(字节顺序标记)来区分大端/小端字节顺序。 PHP不理解BOM,当它在文件的开头碰到时,它假定它正在处理数据并将其发送出去 – 到那时修改头文件为时已晚。
解决scheme将确保您将文件保存为ANSI – configuration您的IDE /编辑器
希望能帮助到你。
编辑:
如果是这样的话,你可能有很多文件需要转换。 你可以尝试使用这个bash shell代码,使用iconv来为你做(改编自: https : //stackoverflow.com/questions/1182037/osx-change-file-encoding-iconv-recursive )
for files in /mydisk/myfolder/*.php do iconv -f UTF-8 -t ISO-8859-1 "$files" "${files%.php}" done