header函数使用注意
来源:互联网 发布:node v6.11.1 x64.msi 编辑:程序博客网 时间:2024/05/19 16:03
header
应该注意的几个问题
header("Location:")
作为php的转向语句。其实在使用中,他有几点需要注意的地方。
要求header前没有任何输出
但是很多时候在header前我们已经输出了好多东西了,此时如果再次header的话,显然是出错的,在这里我们启用了一个ob的概念,ob的意思是在服务器端先存储有关输出,等待适当的时机再输出,而不是像现在这样运行一句,输出一句,发现header语句就只能报错了。
具体的语句有: ob_start(); ob_end_clean();ob_flush();.........
所以,标准的使用方法是:
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 代码的数据块有作用。
在header(“Location:”)后要及时exit
否则他是会继续执行的,虽然在浏览器端你看不到相应的数据出现,但是如果你进行抓包分析的话,你就会看到下面的语句也是在执行的。而且被输送到了浏览器客户端,只不过是没有被浏览器执行为html而已(浏览器执行了header进行了转向操作)。
下面这段是实际工作中写程序遇到的BUG,header后,没有结束掉程序,后果很严重:
public function getCode(){ $cur_pageurl = GetCurrentpageURL(); $thisurl = $cur_pageurl; //======debug=================== $write_str_code .= 'thisurl='.$thisurl.PHP_EOL; $write_str_code .= 'cur_pageurl='.$cur_pageurl.PHP_EOL; //======debug=================== $code_url = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid='.$this->appid.'&redirect_uri='.urlencode($thisurl).'&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect'; $write_str_code .= 'code_url='.$code_url.PHP_EOL; if (empty($_GET['code'])) { $write_str_code .= '执行跳转'.PHP_EOL; //Header("Location: $code_url"); header("Location:$code_url"); exit;//此处不能省略 } $code = empty($_GET['code']) ? '': $_GET['code']; $write_str_code .= 'code='.$code.PHP_EOL; write2file(date('Y-m-d H:i:s').'|getCode|获取code监控|data='.$write_str_code,'log','getCode'); return $code;}//=========//....此处省略通过code获取openid的代码
上面这段代码的意思 获取微信公众号的code,用于获取用户的openid,但是一开始时程序没有在header之后,exit,这样就将导致程序继续执行,在获取openid的时候一直提示code missing,所以切记在header后要exit
- header函数使用注意
- 使用header()函数需要注意的问题
- 关于header()函数的使用
- php header()函数使用详解
- PHP header函数使用教程
- PHP header函数使用大全
- TRIM函数使用注意
- malloc函数使用注意
- select函数使用注意
- 使用split函数注意
- strip_tags()函数使用注意
- php中header函数的使用
- 分享PHP header函数使用教程
- PHP header() 函数及其常见使用
- php使用header函数实现文件下载
- header函数
- header函数
- header() 函数
- 带外数据
- 算法学习-最大连续子数组
- 动态添加控件
- tomcat8 在Centos7 安装之后通过IP+manager访问出现403问题
- MFC AfxGetMainWnd()
- header函数使用注意
- 设计模式收藏了
- java poi读取excel表格数据
- MediaPlayer播放音乐
- C++ ofstream和ifstream详细用法
- 开发Webservice
- 什么是机器学习
- Unity UGUI 代码改变遮挡层级
- Java反射机制总结一