如何避免在会话开始时出错[重复]
Posted
技术标签:
【中文标题】如何避免在会话开始时出错[重复]【英文标题】:how to avoid getting error on session start [duplicate] 【发布时间】:2017-09-25 02:51:06 【问题描述】:<?php
if(session_id() == '' || !isset($_SESSION))
session_start();
?>
我的所有页面中都有这行代码......它位于我脚本的最顶部......但不幸的是,我的一个脚本出现错误,但其他页面没有出错。 ..我试图搜索它,但他们说它需要在 html 之前的脚本顶部.. 正是我所做的......但我不知道为什么我的一个页面上出现错误..我当我开始将其上传到我的 cpanel 服务器时发现此错误.. 但在我的本地服务器上它完全正常工作.. 这是我收到的警告消息.. 当我试图在我的一个脚本上删除它时,它给了我错误消息,我的页面运行不正常
警告: session_start():无法发送会话缓存限制器 - 标头已发送
【问题讨论】:
将session_start()
放在顶部。检查是否设置了会话变量。
或者这个,Check if PHP session has already started。
造成这种情况的典型原因是<?php
标记之前的任何空格。注意zero-width space
ohhhh 我现在看到了...这是因为声明
@LionSmith 确定 :)
很高兴它有帮助
【参考方案1】:
按照the comment made by OP@sup>
发帖如果您在调用 session_start()
之前有输出,则会发生这种情况。最典型的罪魁祸首是<?php
标记前的空格(或任何字符)(还要注意zero-width space 字符)。
【讨论】:
【参考方案2】:session_start() 函数需要是第一个
<?php
session_start();
if(session_id() == '' || !isset($_SESSION))
?>
【讨论】:
“session_start() 函数必须是第一个” 不是。 OP 正在检查会话是否在启动之前尚未启动。在session_start()
之前有一个if()
条件是可以的,只要在它之前没有发送任何标题。
我试过了,但没有任何反应,我仍然收到错误消息...在我的服务器上...以上是关于如何避免在会话开始时出错[重复]的主要内容,如果未能解决你的问题,请参考以下文章