php中header前有输出 不报warning提示
迷茫
迷茫 2017-04-10 14:23:17
[PHP讨论组]

header前或者session_start()等前面不能有输出吧,否则会报warning级别的错误,但是为什么没有报。
版本:5.3.5
用的wamp

    <?php
        echo 'hello world';
        header('location:http://www.google.com');
        

直接跳走了,改成session_start()也没有报
错误级别 php.ini 设置的是error_reporting = E_ALL | E_STRICT

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(2)
大家讲道理

看看phpinfo(),是不是把output_buffering打开了。如果是的话就没问题。

大家讲道理

确认到底有没有warning提示:

  • 看网页上有没有打印,你已经看了,没有
  • 看error log里有没有,xampp/wamp默认的设置是比较注重安全的(而不是默认注重开发易用性的),不会把报错信息直接显示在网页上

如果都看过了,还是找不到warning记录,检查为什么没有显示也没有记入日志(假设会产生warning):
打印phpinfo()确认你的运行环境加载的是哪个php.ini文件,定位好php.ini文件后

  • 检查error_reporting设置(你已经检查了,但不确定是不是使用了别的ini文件)
  • 检查display_error设置
  • 检查error_log设置

如果上述检查都没问题(ini文件配置了要求记warning,你却没在日志文件中找到),则说明当前环境配置不会产生warning,那就按楼上felix021说的去看看output buffer设置吧

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号