PHP Header用于页面跳转时的几个注意事项


Posted in PHP onOctober 21, 2016

前言

本文介绍的是在PHP中用header("location:test.php")进行跳转要注意以下几点,有助于解决一些新手经常遇到的问题

一、location和“:”号间不能有空格,否则会出错。

二、在用header前不能有任何的输出。

三、header后的PHP代码还会被执行。

下面是和asp中重定向response.redirect的比较:

例1:

response.redirect "../test.asp"
header("location:../test.php");

两者区别:

asp的redirect函数可以在向客户发送头文件后起作用.


<html><head></head><body>
<%response.redirect "../test.asp"%>
</body></html>

查是php中下例代码会报错:

<html><head></head><body>
<?
header("location:../test.php");
?>
</body></html>

只能这样:

<?
header("location:../test.php");
?>
<html><head></head><body>...</body></html>

即header函数之前不能向客户发送任何数据.

例2:

asp中

<html><head></head><body>
<%
response.redirect "../a.asp"
response.redirect "../b.asp"
%>
</body></html>

结果是重定向a.asp文件.

php呢?

<?
header("location:../a.php");
header("location:../b.php");
?>
<html><head></head><body></body></html>

我们发现它重定向b.php.

原来在asp中执行redirect后不会再执行后面的代码.

而php在执行header后,继续执行下面的代码.

在这方面上php中的header重定向不如asp中的重定向.有时我们要重定向后,不能执行后面的代码:

一般地我们用

if(...)
header("...");
else
{
...
}

但是我们可以简单的用下面的方法:

if(...)
{ header("...");exit();}

还要注意的是,如果是用Unicode(UTF-8)编码时也会出现问题,需要调整缓存设置.

<[email=%@]%@LANGUAGE="VBSCRIPT[/email]" CODEPAGE="936"%>
<%if Request.ServerVariables("SERVER_NAME")="s.3water.com" then
response.redirect "news/index.htm"
else%>
<%end if%>
<script>
var url = location.href;
if(url.indexOf('http://www.devdao.com/')!=-1)location.href='/index/index.htm';
if(url.indexOf('http://www.knowsky.com/')!=-1)location.href='/index1/index.htm';
if(url.indexOf('http://www.google.com/')!=-1)location.href='/cn/index.asp';
if(url.indexOf('http://www.baidu.com/')!=-1)location.href='/cn/index.asp';
</script>

总结

以上就是这篇文章的全部内容了,希望能对大家的学习或者工作带来一定的帮助,如果有疑问大家可以留言交流。

PHP 相关文章推荐
在PHP中执行系统外部命令
Oct 09 PHP
php中$this-&amp;gt;含义分析
Nov 29 PHP
php radio 单选框获取与保持值的实现代码
May 15 PHP
Drupal 添加模块出现莫名其妙的错误的解决方法(往往出现在模块较多时)
Apr 18 PHP
php使用curl出现Expect:100-continue解决方法
Mar 03 PHP
PHP使用mysql_fetch_row查询获得数据行列表的方法
Mar 18 PHP
PHP程序员的技术成长规划
Mar 25 PHP
php+jQuery递归调用POST循环请求示例
Oct 14 PHP
php 输出json及显示json中的中文汉字详解及实例
Nov 09 PHP
yii gridview实现时间段筛选功能
Aug 15 PHP
PHP实现可精确验证身份证号码的工具类示例
May 31 PHP
ThinkPHP5.1框架页面跳转及修改跳转页面模版示例
May 06 PHP
phpcms中的评论样式修改方法
Oct 21 #PHP
PHP+jquery+CSS制作头像登录窗(仿QQ登陆)
Oct 20 #PHP
PHP中的多种加密技术及代码示例解析
Oct 20 #PHP
php rmdir使用递归函数删除非空目录实例详解
Oct 20 #PHP
PHPCMS V9 添加二级导航的思路详解
Oct 20 #PHP
php实现登陆模块功能示例
Oct 20 #PHP
php实现文章置顶功能的方法
Oct 20 #PHP
You might like
php数组一对一替换实现代码
2012/08/31 PHP
PHP一致性hash分布式算法封装类定义与用法示例
2018/08/04 PHP
php时间戳转换代码详解
2019/08/04 PHP
JQuery 前台切换网站的样式实现
2009/06/22 Javascript
Mootools 1.2教程 函数
2009/09/15 Javascript
js数组的操作详解
2013/03/27 Javascript
jQuery中after的两种用法实例
2013/07/03 Javascript
JavaScript学习笔记之DOM基础 2.4
2015/08/14 Javascript
浅谈JavaScript中的string拥有方法的原因
2015/08/28 Javascript
jQuery实现的鼠标经过时变宽的效果(附demo源码)
2016/04/28 Javascript
easyui validatebox验证
2016/04/29 Javascript
json与jsonp知识小结(推荐)
2016/08/16 Javascript
正则表达式基本语法及表单验证操作详解【基于JS】
2017/04/07 Javascript
js es6系列教程 - 基于new.target属性与es5改造es6的类语法
2017/09/02 Javascript
Three.js入门之hello world以及如何绘制线
2017/09/25 Javascript
vue bus全局事件中心简单Demo详解
2018/02/26 Javascript
javascript异步编程的六种方式总结
2019/05/17 Javascript
Python获取系统默认字符编码的方法
2015/06/04 Python
python 字典中取值的两种方法小结
2018/08/02 Python
Python3显示当前时间、计算时间差及时间加减法示例代码
2019/09/07 Python
pytorch加载语音类自定义数据集的方法教程
2020/11/10 Python
CSS3的RGBA中关于整数和百分比值的转换
2015/08/04 HTML / CSS
大学生村官典型材料
2014/01/12 职场文书
大龄毕业生求职别忘职业规划
2014/03/11 职场文书
房屋继承公证书
2014/04/10 职场文书
政协调研汇报材料
2014/08/15 职场文书
群众路线教育实践活动民主生活会个人检查对照思想汇报
2014/10/04 职场文书
医院领导班子查摆问题对照检查材料思想汇报
2014/10/08 职场文书
因家庭原因离职的辞职信范文
2015/05/12 职场文书
入党积极分子考察意见
2015/06/02 职场文书
公司出差管理制度范本
2015/08/05 职场文书
干部作风纪律整顿心得体会
2016/01/23 职场文书
2019入党申请书格式和范文
2019/06/25 职场文书
Nginx使用X-Accel-Redirect实现静态文件下载的统计、鉴权、防盗链、限速等
2021/04/04 Servers
详解redis分布式锁的这些坑
2021/05/19 Redis
深入理解CSS 中 transform matrix矩阵变换问题
2021/08/30 HTML / CSS