header("Location:")作为php的转向语句。其实在使用中,他有几点需要注意的地方。
1、要求header前没有任何输出
但是很多时候在header前我们已经输出了好多东西了,但是此时如果再次header的话,显然是出错的,在这里我们启用了一个ob的概念,这个东东的意思是在服务器端先存储有关输出,等待适当的时机再输出,而不是像现在这样运行一句,输出一句,发现header语句就只能报错了。
具体的语句有: ob_start(); ob_end_clean();ob_flush();.........
2、在header("Location:")后要及时exit
否则他是会继续执行的,虽然在浏览器端你看不到相应的数据出现,但是如果你进行抓包分析的话,你就会看到下面的语句也是在执行的。而且被输送到了浏览器客户端,只不过是没有被浏览器执行为html而已(浏览器执行了header进行了转向操作)。
所以,标准的使用方法是:
ob_start();
........
if ( something ){
ob_end_clean();
header("Location: yourlocation");
exit;
else{
..........
ob_flush(); //可省略
}
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
相关文章
修改PHP上传文件大小限制的方法2019-11-16
Html调用PHP以及PHP 输出的写法2015-10-29
PHP UploadFile()无法上传图片的原因2014-04-10
Apmserv session错误及进不了后台的解决办法2013-12-20
php 等于不等于 一个感叹号两个等于号2013-12-06
php生成.url快捷方式2013-11-29
Access导入MySql的PHP程序2013-09-04
Fatal error: session_start() 错误的解决办法2013-08-26
php中html模板生成后顶部空白的解决方案2013-08-19
PHP定时执行任务的实现2013-05-07