2017-04-27 83 views
0
<?php 
if(session_id() == '' || !isset($_SESSION)) 
session_start(); 
?> 

我在我的所有网页中都有这行代码......它位于我的脚本的最顶端..但不幸的是,我的某个人遇到了一个错误脚本,但其他网页没有得到错误...我试图搜索它,但他们说,它需要在HTML之前的脚本的顶部..只是我做了...但我没有任何想法为什么即时消息得到错误在我的网页之一..我发现这个错误,当我开始上传到我的cPanel服务器..但在我的本地服务器上,它的完全工作..
这是警告消息,我得到了......当我试图删除这在我的脚本之一,这给了我的错误信息我的网页不能正常工作如何避免会话启动时出现错误

警告:在session_start():不能发送会话缓存限制器 - 头已经发出已

+1

将'session_start()'放置在顶部。检查会话变量是否设置。 – marmeladze

+0

或者这个,[检查PHP会话是否已经开始](http://stackoverflow.com/questions/6249707/check-if-php-session-has-already-started)。 – Qirel

+0

导致这种情况的典型原因是'<?php'标记之前的任何空格。请注意[零宽度空间](https://en.wikipedia.org/wiki/Zero-width_space) –

回答

0

发帖为asnwer按the comment made by OP

如果在调用session_start()之前有输出,就会发生这种情况。最典型的罪魁祸首是<?php标签之前的空间(或任何字符)(也请注意zero-width space字符)。

0

的session_start()函数必须是第一个

<?php 
session_start(); 
if(session_id() == '' || !isset($_SESSION)) 
?> 
+1

*“session_start()函数必须是第一个一个“*不是真的。 OP正在检查会话在启动之前尚未启动。在session_start()之前有一个'if()'条件,只要在它之前没有发送头部就可以。 –

+0

我尝试过但没有任何反应,但我得到了错误信息...在我的服务器上... –