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

session_start(): Cannot start session when headers already sent in <b>D:\web\www\baixiu-dev\functions.php

今天在写一个demo的时候,运行时出现一个很玄学的bug,就是上面那个,我也不知道为什么会出错。
但是在这里记录下解决方案:
具体为什么我也不知道~ 以后知道再来填坑吧~~~
先是打开配置php的配置文件(php.ini)
搜索session.auto_start,将其后面的0置为1,然后重启apache,就解决了!

玄学

在日常开发中,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() 。否则将不能得到正确的结果。
资料参考:
https://blog.csdn.net/xiedongze__/article/details/90751786
https://blog.csdn.net/forest_fire/article/details/81875526

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 马术
    幸运好一夫阅读 183评论 0 0
  • 2017年10月17日晚,我领悟到了人生又一绝望。我现在还在想如果我当时稍微带点脑子,就不会被骗2000。我就想说...
    闵猫大阅读 287评论 4 0

友情链接更多精彩内容