>백엔드 개발 >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으로 문의하세요.