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 相关文章推荐
PHPUnit PHP测试框架安装方法
Mar 23 PHP
如何用php获取程序执行的时间
Jun 09 PHP
一款简单实用的php操作mysql数据库类
Dec 08 PHP
windows下配置php5.5开发环境及开发扩展
Dec 25 PHP
php实现的简单日志写入函数
Mar 31 PHP
详解PHP对象的串行化与反串行化
Jan 24 PHP
详解PHP的Yii框架的运行机制及其路由功能
Mar 17 PHP
PHP中递归的实现实例详解
Nov 14 PHP
PHP性能测试工具xhprof安装与使用方法详解
Apr 29 PHP
swoole_process实现进程池的方法示例
Oct 29 PHP
laravel 根据不同组织加载不同视图的实现
Oct 14 PHP
ThinkPHP5框架中使用JWT的方法示例
Jun 03 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
解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法
2007/03/29 PHP
关于文本框的一些限制控制总结~~
2010/04/15 Javascript
JS实现适合于后台使用的动画折叠菜单效果
2015/09/21 Javascript
纯JS实现弹性导航条效果
2017/03/06 Javascript
微信小程序 中wx.chooseAddress(OBJECT)实例详解
2017/03/31 Javascript
vue 数组和对象不能直接赋值情况和解决方法(推荐)
2017/10/25 Javascript
360提示[高危]使用存在漏洞的JQuery版本的解决方法
2017/10/27 jQuery
JavaScript实现元素滚动条到达一定位置循环追加内容
2017/12/28 Javascript
vue服务端渲染缓存应用详解
2018/09/12 Javascript
JS无限级导航菜单实现方法
2019/01/05 Javascript
vue prop属性传值与传引用示例
2019/11/13 Javascript
js中addEventListener()与removeEventListener()用法案例分析
2020/03/02 Javascript
Vue 事件的$event参数=事件的值案例
2021/01/29 Vue.js
[58:09]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第三场 6.2
2018/06/03 DOTA
使用Python脚本对Linux服务器进行监控的教程
2015/04/02 Python
Python中join和split用法实例
2015/04/14 Python
微信 用脚本查看是否被微信好友删除
2016/10/28 Python
利用Python脚本生成sitemap.xml的实现方法
2017/01/31 Python
Python内置函数reversed()用法分析
2018/03/20 Python
python读取和保存视频文件
2018/04/16 Python
使用python绘制二元函数图像的实例
2019/02/12 Python
Python实现的银行系统模拟程序完整案例
2019/04/12 Python
Python两台电脑实现TCP通信的方法示例
2019/05/06 Python
pytest中文文档之编写断言
2019/09/12 Python
Python必须了解的35个关键词
2020/07/16 Python
Python引入多个模块及包的概念过程解析
2020/09/21 Python
CSS3标注引用的出处和来源的方法
2020/02/25 HTML / CSS
eBay澳大利亚站:eBay.com.au
2018/02/02 全球购物
Puma印度官网:德国运动品牌
2019/10/06 全球购物
大专应届生个人简历的自我评价
2013/10/15 职场文书
技术学校毕业生求职信分享
2013/12/02 职场文书
高中校园广播稿
2014/01/11 职场文书
四风问题党员个人整改措施
2014/10/27 职场文书
法人身份证明书
2015/06/18 职场文书
2016党风廉政建设心得体会范文
2016/01/25 职场文书
利用Pycharm连接服务器的全过程记录
2021/07/01 Python