header("Location:login.php")

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

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

  但是很多时候在header前我们已经输出了好多东西了,此时如果再次header的话,显然是出错的,在这里我们启用了一个ob的概念,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(); //可省略

  要想在header前有输出的话,可以修改php.ini文件

  output_handler =mb_output_handler

  或 output_handler =on

  Output Control 函数可以让你自由控制脚本中数据的输出。它非常地有用,特别是对于:当你想在数据已经输出后,再输出文件头的情况。输出控制函数不对使用 header() 或 setcookie(), 发送的文件头信息产生影响,只对那些类似于 echo() 和 PHP 代码的数据块有作用。

  一、 相关函数简介:

  1、Flush:刷新缓冲区的内容,输出。

  函数格式:flush()

  说明:这个函数经常使用,效率很高。

  2、ob_start :打开输出缓冲区

  函数格式:void ob_start(void)

  说明:当缓冲区激活时,所有来自PHP程序的非文件头信息均不会发送,而是保存在内部缓冲区。为了输出缓冲区的内容,可以使用ob_end_flush()或flush()输出缓冲区的内容。

  3 、ob_get_contents :返回内部缓冲区的内容。

  使用方法:string ob_get_contents(void)

  说明:这个函数会返回当前缓冲区中的内容,如果输出缓冲区没有激活,则返回 FALSE 。

  4、ob_get_length:返回内部缓冲区的长度。

  使用方法:int ob_get_length(void)

  说明:这个函数会返回当前缓冲区中的长度;和ob_get_contents一样,如果输出缓冲区没有激活。则返回 FALSE。

  5、ob_end_flush :发送内部缓冲区的内容到浏览器,并且关闭输出缓冲区。

  使用方法:void ob_end_flush(void)

  说明:这个函数发送输出缓冲区的内容(如果有的话)。

  6、ob_end_clean:删除内部缓冲区的内容,并且关闭内部缓冲区

  使用方法:void ob_end_clean(void)

  说明:这个函数不会输出内部缓冲区的内容而是把它删除!

  7、ob_implicit_flush:打开或关闭绝对刷新

  使用方法:void ob_implicit_flush ([int flag])

  说明:使用过Perl的人都知道$|=x的意义,这个字符串可以打开/关闭缓冲区,而ob_implicit_flush函数也和那个一样,默认为关闭缓冲区,打开绝对输出后,每个脚本输出都直接发送到浏览器,不再需要调用 flush()

  ob_start() 开始输出缓冲, 这时PHP停止输出, 在这以后的输出都被转到一个内部的缓冲里.

  ob_get_contents() 这个函数返回内部缓冲的内容. 这就等于把这些输出都变成了字符串.

  ob_get_ length() 返回内部缓冲的长度.

  ob_end_flush() 结束输出缓冲, 并输出缓冲里的内容. 在这以后的输出都是正常输出.

  ob_end_clean() 结束输出缓冲, 并扔掉缓冲里的内容.

  举个例子, var_dump()函数输出一个变量的结构和内容, 这在调试的时候很有用.

  但如果变量的内容里有 < , > 等HTML的特殊字符, 输出到网页里就看不见了. 怎么办呢?

  用输出缓冲函数能很容易的解决这个问题.

  ob_start();

  var_dump($var);

  $out = ob_get_contents();

  ob_end_clean();

  这时var_dump()的输出已经存在 $out 里了. 你可以现在就输出:

  echo '</pre>' . htmlspecialchars($out) . '</pre>' ;

  或者等到将来, 再或者把这个字符串送到模板(Template)里再输出.

时间: 2024-09-17 12:09:36

header("Location:login.php")的相关文章

网页制作应掌握技术:随心所欲定制页面"弹出窗口"

弹出窗口|网页|页面 常泡在网上的朋友对"弹出窗口"一定不会陌生,像新浪.163等网站,一进入首页立刻就会弹出一个窗口,里面通常是一些告示信息,或者FLASH广告等等.其实这样的效果很容易实现,大家随我一起动手吧! 不加修饰的弹出窗口 将下面这段代码插入你的页面中,在页面加载时就会自动弹出一个窗口,并打开Google搜索引擎,是不是很简单啊! 将代码放置在〈!-XXX --〉中间是为了兼容较低版本浏览器的需要,在低版本的浏览器中标签内的内容将被视作注视. 打开的页面使用绝对路径(htt

The path "/usr/bin/gcc" is not valid path to the gcc binary

安装 VMWare tools 时出现"The path "/usr/bin/gcc" is not valid path to the gcc binary" 环境:Vmware 8.0+RedHat 9.0 问题:安装 VMWare tools 时询问GCC安装位置,出现"The path "/usr/bin/gcc" is not valid path to the gcc binary".查询是否安装了GCC,显示确实

Windows 8.1系统怎么设置"睡眠唤醒密码"?

在微软Win7之前的系统中都能让用户设定在电脑睡眠后重新唤醒电脑需要输入密码才能登陆系统,而Win8.1系统也不例外,只不过这样的设置与此前的系统不太一样,下面我们来分享下在Win8.1系统下如何设置睡眠唤醒密码的图文教程. 1.惯例我们需要调出Charms超级按钮(快捷键Win+C)进入到电脑设置或者使用快捷键Win+I直接调处设置面板; Win8.1技巧:睡眠唤醒密码设置图文教程 Win8.1技巧:睡眠唤醒密码设置图文教程 2.进入到电脑设置页面,在左侧的导航栏中找到"账户"选项;

Win8.1系统设置"睡眠唤醒密码"的有效办法

  在win8.1系统中设置了系统休眠状态之后,因为安全性的问题,也可以设置"睡眠唤醒的密码"这样就不怕担心电脑被别人随时的开启啦!但是新版的win8.1系统并不是像win7.win8系统的设置一样的.所以今天我们一起来看看要怎么设置吧! 1.惯例我们需要调出Charms超级按钮(快捷键Win+C)进入到电脑设置或者使用快捷键Win+I直接调处设置面板; 2.进入到电脑设置页面,在左侧的导航栏中找到"账户"选项; 3.在账户窗口,选择"登陆选项"

"虚假医药广告"竞价排名 百度再遭劫

央视新闻频道播出的<新闻30分><每周质量报告>再度曝光了百度等为假药网站提供推广便利.谋取暴利.报道称假药网站销售推广的关键环节是百度竞价排名. 假医药网站利用百度竞价排名公然售假再次被央视曝光,让百度又一次站在舆论的风口浪尖,早在2008年11月,百度就因"利"字当头,审核不力,导致虚假广告四处泛滥,被央视连续曝光后,才紧急推出百度凤巢,加大对医药类广告的稽查力度,旨在平息社会舆论压力.在近两年的风平浪静后,再次故伎重演,难免让人怀疑百度是否迫于盈利压力,&

腾讯阿里打车软件较劲"烧钱" 冰城乘客的哥"坐"享实惠

2月19日讯 "嘀嘀打车"和"快的打车"软件补贴大战上演不到一个月时间,补贴金额已起落多次.18日,分别背靠腾讯和阿里巴巴的"嘀嘀打车"和"快的打车"都宣布了全新的补贴政策."嘀嘀"宣布于18日早间将补贴额度调高到12-20元之间,而"快的"则宣称"永远比同行多1元",从18日15时开始,用"快的"叫车并用支付宝付款每单最少给乘客减免13元,每天2

国家计算机病毒中心发现"木马下载器"新变种

国家计算机病毒应急处理中心7日发布信息说,通过对互联网的监测发现,近期出现"木马下载器"(Trojan_Downloader)新变种,提醒用户小心谨防.该变种运行后,会自我复制到受感染操作系统中指定的文件目录下,并将其重新命名后保存.随之,变种会在受感染操作系统的后台检索系统相关注册表项,在计算机用户不知情的情况下,秘密截获操作系统中各项资源信息, 例如:防火墙.浏览器IE默认首页.防病毒软件.系统版本.网卡物理地址(MAC地址).IP地址和系统软件等. 然后,变种会将截获到的系统信息

iPhone 6成转折点 背离乔布斯"最优秀产品"理念

硅谷网讯 据国外媒体报道,外界普遍预计苹果将于9月9日公布两款iPhone,分别配置4.7英寸和5.5英寸显示屏.同时发布两款iPhone标志着苹果背离了乔布斯时代专注于"只生产最优秀产品"的理念,转向更成熟的产品多元化策略.这是否足以夺回iPhone去年流失的市场份额还有待观察,但市场研究公司IDC的最新数据表明,iPhone正在"收复失地". 科技博客网站Re/code报道称,苹果将在9月9日举行的新产品发布会上公布两款iPhone 6,它们配置更大尺寸的显示屏

预测"轻博客"的命途

第一篇章:绪论 继门户网站.BBS.网络社区.个人博客.SNS.微博之后,"轻博客"成为了2011年互联网发展的热门趋势.这种新兴的网络服务,和微博.博客一样,都致力于为用户提供生成内容.表达自己的平台."轻博客"既具有博客的表达力和专业性,又具有微博的简单便捷和社交传播能力. 本文更是从国内外微博的发展史.轻博客概念简介.国内外著名轻博客提供商等多个角度来对比叙述,由"微博"的发展史来预测"轻博客"这一新兴网络事物的命途.(