首页 > 开发 > 综合 > 正文

header("Location:")应该注意的几个问题

2024-07-21 02:04:12
字体:
来源:转载
供稿:网友

    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();  //可省略

}

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表