无须修改php.ini等配置文件,修复session_start错误的方式

首先,不废话,把解决方案写下来

因此解决方案就是把头输出删除。

具体来说,不用修改任何php.ini,也不用写ob_start() 等来缓存header,直接在session_start前调用一句

ob_end_clean()

即可了。

原创人:surance#gmail.com(请把#替换为@)

后面是解决步骤

从phpnow换到xampp后,出现了好多问题(phpnow的主要问题是无法安装zend_extention_ts,道行太浅,怎么也装不上。)。

花了很多时间解决这些问题,也学到很多东西。

这里来记录一下怎样解决session_start的问题。

明明已经没有写任何输出,还是会报headers already sent错误。

网上有人说修改配置文件,有的说修改

output_buffering = On

这样可以把头文件缓存暂不输出;有的说直接把session auto start设置成On,更有人用不着边际的把报错关闭。

其实头2种方法我试过,还是可以的。只是如果网页没有用session,默认开启不是亏了;另外,全部header缓存是否会有问题也难说。

那么,session_start前到底输出了哪些字符呢?可以在session_start前调用

var_dump( headers_list());

来查看一下。

我发现,主要是出现了 X-PoweredBy:  和Content-Type 2个输出。修改PHP.ini的expose_php = off可以关闭x-poweredBy,但是如何关闭输出content-type我就不知道了。

但是,我知道这2个都是没有用的。

因此解决方案就是把头输出删除。

具体来说,不用修改任何php.ini,也不用写ob_start() 等来缓存header,直接在session_start前调用一句

ob_end_clean()

即可了。

可以在php代码里面调用 ob_start()来缓存head的输出

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值