当前位置:首页 > 知道中心 > PHP > 文章

PHP网站打开白屏

发表于:2013-08-27| 次阅读| 作者:藕码网
TAG:
摘要:PHP网站打开白屏
output_buffering=Off时,PHP的标题(Header)信息必须写在主体信息之前。Header信息(来自 header() 或 SetCookie() 函数)并不会立即发送,它会被保存到一个列表中。样就可以允许你修改标题信息,包括缺省的标题(例如 Content-Type 标题)。但是,一旦脚本发送了任何非标题的输出(例如,使用HTML代码块或 print() 调用),那么PHP就必须先发送所有的标题,然后再送出空行,终止 HTTP header,而在此之后才会继续发送主体数据。从这时开始,任何添加或修改标题信息的试图都是不允许的,会不生效并会发送错误消息。
output_buffering=On时,在脚本发送输出时,PHP并不发送HTTP header。相反,它将此输出通过管道(pipe)输入到动态增加的缓存中。你仍然可以修改,添加标题行,或者设置cookie,因为标题实际上并没有发送。最简单的情况是,当脚本终止时,PHP将自动发送HTTP header到浏览器,然后再发送输出缓冲中的内容。
本例中,旧服务器的php.ini中output_buffering=On,由于默认php.ini中output_buffering=Off,新服务器上没有开。dedecms的后台会首先判断用户有没有登录,没有的话就使用header("Location:login.php")跳转到登录界面,接着执行exit()结束。但该跳转函数不生效,没有跳转到指定页面,接着到了下面的exit(),结束脚本,因此没有向浏览器发送任何内容,导致空白。
将php.ini中的output_buffering改为On,重启程序web服务即可。


注:本站部分信息可能源于互联网分享,如有侵权,请告知,我们将及时删除!

推荐文章