当前位置:主页 > php教程 > PHP Header失效的原因分析及解决方法

关于PHP Header失效的原因分析及解决办法

发布:2020-01-22 16:24:54 142


本站精选了一篇PHP相关的编程文章,网友阎英达根据主题投稿了本篇教程内容,涉及到php、header、PHP Header失效的原因分析及解决方法相关内容,已被383网友关注,下面的电子资料对本篇知识点有更加详尽的解释。

PHP Header失效的原因分析及解决方法

在PHP中用header("location:test.php")进行跳转要注意以下几点:

1、location和“:”号间不能有空格,否则会出错。

2、在用header前不能有任何的输出,包括include的页面中标签“?>”后不能有空格!!

3、header后的PHP代码还会被执行。

续:

问题:header函数前输入内容

一般来说在header函数前不能输出html内容,类似的还有setcookie() 和 session 函数,这些函数需要在输出流中增加消息头部信息。如果在header()执行之前有echo等语句,当后面遇到header()时,就会报出 “Warning: Cannot modify header information – headers already sent by ….”错误。就是说在这些函数的前面不能有任何文字、空行、回车等,而且最好在header()函数后加上exit()函数。例如下面的错误写法,在 两个php代码段之间有一个空行:

//这里应该是一个空行

原因:

PHP脚本开始执行 时,它可以同时发送http消息头部(标题)信息和主体信息. http消息头部(来自 header() 或SetCookie() 函数)并不会立即发送,相反,它被保存到一个列表中. 这样就可以允许你修改标题信息,包括缺省的标题(例如Content-Type 标题).但是,一旦脚本发送了任何非标题的输出(例如,使用 HTML 或 print()调用),那么PHP就必须先发送完所有的Header,然后终止 HTTPheader.而后继续发送主体数据.从这时开始,任何添加或修改Header信息的试图都是不允许的,并会发送上述的错误消息之一。

解决方法:

修改php.ini打开缓存(output_buffering),将output_buffering=0修改成output_buffering=4096

或 者在程序中使用缓存函数ob_start(),ob_end_flush() 等。原理是:output_buffering被启用时,在脚本发送输出时,PHP并不发送HTTPheader。相反,它将此输出通过管道(pipe) 输入到动态增加的缓存中(只能在PHP4.0中使用,它具有中央化的输出机制)。你仍然可以修改/添加header,或者设置cookie,因为 header实际上并没有发送。当全部脚本终止时,PHP将自动发送HTTP header到浏览器,然后再发送输出缓冲中的内容。

以上这篇PHP Header失效的原因分析及解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。


参考资料

相关文章

  • PHP如何获取当前URL路径

    发布:2021-05-24

    下面小编就为大家带来一篇PHP获取当前URL路径的处理方法(适用于多条件筛选列表)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧


  • PHPExcel导入Excel表格到MySQL数据库的简单实例详解

    发布:2019-06-13

    下面小编就为大家带来一篇php通过PHPExcel导入Excel表格到MySQL数据库的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧


  • PHP7+Nginx的配置与安装详细步骤

    发布:2021-06-18

    本文分步骤,通过文字说明的形式给大家介绍PHP7+Nginx的配置与安装的相关知识,感兴趣的朋友参考下吧


  • 《PHP和MySQL Web开发》知识点总结(一)

    发布:2018-08-17

    前言 简要记录了PHP的标识符,变量,常量,作用域,操作符及变量的几个常用函数。 标识符 PHP中变量的标识符由$开头,后接字母,数字,下划线。 变量的标识符区分大小写。如 $var 与 $VAR 是不同的。 函数的标识符不区分大小写! 对 FOO() 与 foo() 进行的是等价的调用。 一个变量的名称可以和函数的名称相同,但是不建议这么做。 变量 PHP变量有以下几种数据类型: Integer (整数


  • ThinkPHP中session函数详解

    发布:2022-11-28

    给大家整理了关于ThinkPHP的教程,这篇文章主要为大家详细介绍了ThinkPHP中session函数,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


  • PHP判断数组是一维、二维或多维的实例

    发布:2020-05-25

    这篇文章主要介绍了PHP实现判断数组是一维、二维或几维的方法,涉及php递归操作及数组相关判定技巧,需要的朋友可以参考下


  • PHP异常和错误的日志记录用法

    发布:2019-11-02

    这篇文章主要介绍了PHP中错误与异常的日志记录用法,较为详细的分析了php中错误与异常的区别以及日志记录的相应使用技巧,需要的朋友可以参考下


  • php web环境和命令行环境下查找php.ini的方法分享

    发布:2020-01-18

    这篇文章主要介绍了php web环境和命令行环境下如何查找php.ini的位置,需要的朋友可以参考下


网友讨论