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查询搜索引擎排名位置的代码
Jan 05 PHP
检测png图片是否完整的php代码
Sep 06 PHP
基于Zookeeper的使用详解
May 02 PHP
php htmlspecialchars()与shtmlspecialchars()函数的深入分析
Jun 05 PHP
php仿QQ验证码的实例分析
Jul 01 PHP
使用PHP导出Redis数据到另一个Redis中的代码
Mar 12 PHP
php程序员应具有的7种能力小结
Nov 27 PHP
PHP+MySQL修改记录的方法
Jan 21 PHP
PHP基于回溯算法解决n皇后问题的方法示例
Nov 07 PHP
Laravel 类和接口注入相关的代码
Oct 15 PHP
PHP开发api接口安全验证操作实例详解
Mar 26 PHP
PHP安全之register_globals的on和off的区别
Jul 23 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动态创建Web站点的方法
2011/08/14 PHP
php利用cookie实现自动登录的方法
2014/12/10 PHP
php强制用户转向www域名的方法
2015/06/19 PHP
php连接oracle数据库的方法(测试成功)
2016/05/26 PHP
如何修改yii2.0自带的user表为其它的表
2017/08/01 PHP
原生Js实现元素渐隐/渐现(原理为修改元素的css透明度)
2013/06/24 Javascript
各浏览器对document.getElementById等方法的实现差异解析
2013/12/05 Javascript
js实现全国省份城市级联下拉菜单效果代码
2015/09/07 Javascript
JS实现的论坛Ajax打分效果完整实例
2015/10/31 Javascript
Javascript模仿淘宝信用评价实例(附源码)
2015/11/26 Javascript
基于javascript编写简单日历
2016/05/02 Javascript
20分钟成功编写bootstrap响应式页面 就这么简单
2016/05/12 Javascript
node.js入门教程之querystring模块的使用方法
2017/02/27 Javascript
详解微信第三方小程序代开发
2017/06/23 Javascript
vue forEach循环数组拿到自己想要的数据方法
2018/09/21 Javascript
vue使用v-if v-show页面闪烁,div闪现的解决方法
2018/10/12 Javascript
jquery获取input输入框中的值
2019/11/13 jQuery
VuePress 中如何增加用户登录功能
2019/11/29 Javascript
vue实现网络图片瀑布流 + 下拉刷新 + 上拉加载更多(步骤详解)
2020/01/14 Javascript
基于Web Audio API实现音频可视化效果
2020/06/12 Javascript
JavaScript实现动态生成表格
2020/08/02 Javascript
原生jQuery实现只显示年份下拉框
2020/12/24 jQuery
Python转码问题的解决方法
2008/10/07 Python
浅谈python中频繁的print到底能浪费多长时间
2020/02/21 Python
Pyspark获取并处理RDD数据代码实例
2020/03/27 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
2020/05/22 Python
在pycharm中关掉ipython console/PyDev操作
2020/06/09 Python
html5配合css3实现带提示文字的输入框(摆脱js)
2013/03/08 HTML / CSS
利用HTML5 Canvas制作一个简单的打飞机游戏
2015/05/11 HTML / CSS
实例讲解利用HTML5 Canvas API操作图形旋转的方法
2016/03/22 HTML / CSS
大学新生军训个人的自我评价
2013/10/03 职场文书
祖国在我心中演讲稿
2014/01/15 职场文书
社区安全生产月活动总结
2014/07/05 职场文书
社团活动总结格式
2014/08/29 职场文书
MySQL系列之十 MySQL事务隔离实现并发控制
2021/07/02 MySQL
带你了解Java中的ForkJoin
2022/04/28 Java/Android