关于PHP Cannot modify header information - headers already sent by 报错

本人一名PHP小萌新 在学习过程中出现了小问题,但是已经解决。希望能帮到刚学习php的小伙伴们。

代码如下:

<?php
if(isset($_POST['userSubmit'])){
     if(
         isset($_POST['userName']) &&
         $_POST['userName'] == "AJEST" &&
         isset($_POST['userPass']) &&
         $_POST['userPass'] == "123456"

     ){
         if(setcookie("name","AJEST",time()+36002430,'/'))
         {
            echo "登录成功,<a href='./index.php'>返回首页</a>";
        }else{
             echo"设置cookie错误";
         }
     }else{
         echo "用户名或密码错误,<a href='./login.php'>请重新登录</a>";

出现报错:



Warning: Cannot modify header information - headers already sent by...

如果能保证代码无错误的话 基本就是php.ini文件没有修改

默认情况下,php buffer是开启的,而且该buffer默认值是4096,即4kb。你可以通过在php.ini配置文件中找到output_buffering配置.当echo,print等输出用户数据的时候,输出数据都会写入到php output_buffering中,直到output_buffering写满,会将这些数据通过tcp传送给浏览器显示。你也可以通过ob_start()手动激活php output_buffering机制,使得即便输出超过了4kb数据,也不真的把数据交给tcp传给浏览器,因为ob_start()将php buffer空间设置到了足够大。只有直到脚本结束,或者调用ob_end_flush函数,才会把数据发送给客户端浏览器。

所以建议把

把output_buffering的

Default Value : Off 设置为 On

大概率就能解决

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值