• 技术文章 >php教程 >php手册

    无须修改php.ini等配置文件,修复session

    2016-06-06 19:56:47原创323

    首先,不废话,把解决方案写下来 因此解决方案就是把头输出删除。 具体来说,不用修改任何php.ini,也不用写ob_start() 等来缓存header,直接在session_start前调用一句 ob_end_clean() 即可了。 原创人:surance#gmail.com(请把#替换为@) 后面是解决步骤

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

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

    具体来说,不用修改任何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的输出

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:在windows上搭建php oauth支持 下一篇:php生成验证码图片
    千万级数据并发解决方案

    相关文章推荐

    • XMLHTTP刷新远程数据的PHP JS代码演示(支持中文)• 完美解决令人抓狂的zend studio 7代码提示(content Assist)速度慢的问题• PHP+XML 制作简单的留言本 图文教程• PHP获取网卡地址的代码• PHP常用代码
    1/1

    PHP中文网