PHP session_start(): Cannot start session when headers already sent in

方法一

大多数帖子的解决方法是

将php.ini中的session.auto_start改为1,重启nginx

在日常开发中,php.ini配置session.auto_start=0;是默认关闭会话,如果想开启会话需要调用session_start();
而session.auto_start 开启就自动完成了session_start();
当session.auto_start = 1 时,执行 session_start() 将产生新的 session_id
其优点在于,任何时候都不会因忘记执行 session_start() 或 session_start() 在程序里的位置不对,而导致错误;
缺点在于,如果你使用的是第三方代码,则必须删去其中的全部 session_start() 。否则将不能得到正确的结果。
上段摘自 PHP session_start(): Cannot start session when headers already sent in 出错 - 简书 (jianshu.com)
 

方法二

代码中搜索出 

session_start()
将其改为
if (!headers_sent() && session_id() == '') session_start();

 

posted @ 2021-05-10 16:25  九鹤  阅读(1613)  评论(0编辑  收藏  举报