警告:session_start():无法发送会话缓存限制器 - 已发送的标头

时间:2016-02-17 07:38:14

标签: php session-cookies

我收到的错误很常见。

  

警告:session_start():无法发送会话cookie - 已经在/home/sabarspinmatic/public_html/testing/index.php中发送的输出(/home/sabarspinmatic/public_html/testing/index.php:1中的输出)在第1行

但奇怪的是,我只有一个只有1行session_start()的php文件。

PHP代码是:

<? session_start() ?>

有谁知道我为什么会收到此错误。我检查了源代码及其显示<br />。我不知道它显示这个标签的原因。

检查错误的网址是:http://www.sabarspinmatic.com/testing/

//第2部分 我只使用单个文件index.php而不使用.htaccess而只使用l行代码。我尝试将php放在标签的开头,但它不起作用。

5 个答案:

答案 0 :(得分:1)

首先,我建议您使用正确的起始标记<?php,只是为了代码可读性和可移植性 - 并非所有Web服务器都配置为支持较短版本<?

然后确保在<?php session_start() ...之前甚至没有空格。另外一些编辑器(如Windows Notepad)倾向于在文件的最开头插入一些不可见的垃圾 - 所以我建议你以HEXADECIMAL模式打开文件,看看<?php ...之前是否真的没有字符。例如,可能存在不可见的UTF-8 BOM字符。

最后但并非最不重要的是,在命令末尾使用分号; - 无论它是代码块中的唯一命令,它只是一种最佳实践。

答案 1 :(得分:0)

首先,短标签为deprecated by php

使用

<?php   ?>

无处不在

<?  ?>

这也是你的整个页面吗?在文件的第一个文本之前是否有空格或行

答案 2 :(得分:0)

我有两个原因导致上述问题的出现。 1)可能在包含文件中已经编写了session_start()。 2)可能是你在代码中间使用了session_start()标记。它应该写在第一行。

答案 3 :(得分:0)

根据我的经验,删除代码中的所有空格可以解决问题。特别是如果您之前有空白区域

这会导致错误:

..whitespace..<?php

删除空格可以解决问题

答案 4 :(得分:0)

我遇到了同样的问题......这是因为文件开头的字节顺序标记(BOM)EFBBBF。使用任何十六进制编辑器从文件中删除这些字符,它应该可以工作。