2016-04-25 37 views
1

您好我有一个PHP文件,该文件是空的代码的唯一行有会话在空白页面上启动会导致错误;在session_start():不能发送会话缓存限制器

<?php session_start(); ?> 

没有HTML标记或任何PHP代码,除了上面的代码。

在本地主机上它不会触发一个错误,但是当它在服务器上,我访问该页面,一个新的生产线被印在上面写着

[25-APR-2016 05错误日志:43:34 UTC] PHP Warning:session_start():无法发送会话缓存限制器 - 已在第1行的/path/to/file.php中发送(在path/to/file.php:1处开始输出)的头文件

服务器正在运行Apache和PHP 5.6如果这是相关的,我也尝试删除.htacces文件,以防万一这是什么导致问题,但仍然没有运气。

任何人都可以指出我在正确的方向,看看有什么可能导致问题?谢谢!

+0

你直接访问这个PHP文件?是否有一个包含PHP脚本的地方,在输出任何内容后调用'session_start'? –

+0

是的。我正在访问页面,如“domain.com/file.php”。有一个包含在不同页面上的session_start(),但不在当前页面 –

+0

我假设它在第1行(上面没有空格)。我发现这个(从http://serverfault.com/questions/618316/warning-session-start-cannot-send-session-cache-limiter-headers-already-sent)谁似乎从来没有得到一个经过验证的答案。也许尝试将代码分成三行:1. <?php' 2.'session_start();'3.'?>' –

回答

1

问题:有时在你的代码文件中有不可见的字符。

解决方案: 所以干脆现在如果想使这里修正这个错误是快速的方法来做到这一点: 我相信你必须使用某种形式的代码编辑器只是简单的保存与编码你的PHP文件作为“带有BOM的UTF-8”,然后将保存的文件上传到您的网站,然后访问您的文件,您将没有任何问题。

截图为了更好的指导: enter image description here

参考网址:

How to fix "Headers already sent" error in PHP

如果不解决您的问题,所以再使用此解决方案:

  1. 确保有绝对没有空格前<?php
  2. ob_start()之前,而不是之后把它放到session_start()
  3. 如果失败,尝试注释掉session_start()为您 之一包括可能已经开始了会议,就像这样:/** session_start(); **/
+0

哇,谢谢!这解决了我的问题。这是我第一次读到这个问题,这个问题具体叫什么,以便我可以更多地研究它?用编码保存解决了我的问题精确 –

+0

@JustinMercado:答案已更新,以供参考URL&欢迎您。没有问题..不要犹豫在寻求更多的帮助,如果你觉得需要..! –

相关问题