• 注册
  • 关于作者
    个人说明:他太懒了,什么都没有写
    关注 0 粉丝 0 喜欢 0 内容 238
    雅安
    聊天 送礼
    • 查看作者
    • header(“Location:”)应该注意的几个问题

          header("Location:")作为php的转向语句。其实在使用中,他有几点需要注意的地方。

      1、要求header前没有任何输出

          但是很多时候在header前我们已经输出了好多东西了,但是此时如果再次header的话,显然是出错的,在这里我们启用了一个ob的概念,这个东东的意思是在服务器端先存储有关输出,等待适当的时机再输出,而不是像现在这样运行一句,输出一句,发现header语句就只能报错了。

          具体的语句有: ob_start(); ob_end_clean();ob_flush();.........

       

      2、在header("Location:")后要及时exit

          否则他是会继续执行的,虽然在浏览器端你看不到相应的数据出现,但是如果你进行抓包分析的话,你就会看到下面的语句也是在执行的。而且被输送到了浏览器客户端,只不过是没有被浏览器执行为html而已(浏览器执行了header进行了转向操作)。

       

      所以,标准的使用方法是

      MyISAM、INNODB类型表碎片优化

      数据库开发

      ob_start();

      ........

      if ( something ){

           ob_end_clean();

           header("Location: yourlocation");

           exit;

      else{

           ..........

           ob_flush();  //可省略

      }

      MyISAM、INNODB类型表碎片优化

      数据库开发

    • 0
    • 0
    • 0
    • 45
    • 单栏布局 侧栏位置: