【问题标题】: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() 放在顶部。检查是否设置了会话变量。
  • 造成这种情况的典型原因是&lt;?php 标记之前的任何空格。注意zero-width space
  • ohhhh 我现在看到了...这是因为声明
  • @LionSmith 确定 :) 很高兴它有帮助

标签: php session


【解决方案1】:

按照the comment made by OP@sup>

发帖

如果您在调用 session_start() 之前有输出,则会发生这种情况。最典型的罪魁祸首是&lt;?php 标记前的空格(或任何字符)(还要注意zero-width space 字符)。

【讨论】:

    【解决方案2】:

    session_start() 函数需要是第一个

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

    【讨论】:

    • “session_start() 函数必须是第一个” 不是。 OP 正在检查会话是否在启动之前尚未启动。在session_start() 之前有一个if() 条件是可以的,只要在它之前没有发送任何标题。
    • 我试过了,但没有任何反应,我仍然收到错误消息...在我的服务器上...
    猜你喜欢
    • 2015-03-12
    • 2021-08-23
    • 2010-11-17
    • 2013-01-15
    • 1970-01-01
    • 2020-08-13
    • 2010-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多