ホームページ >バックエンド開発 >PHPチュートリアル >php中header前有输出 不报warning提示

php中header前有输出 不报warning提示

WBOY
WBOYオリジナル
2016-06-06 20:51:071149ブラウズ

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

回复内容:

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

看看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设置吧

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。