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文件下载类
Dec 06 PHP
php面向对象全攻略 (八)重载新的方法
Sep 30 PHP
PHP技术开发技巧分享
Mar 23 PHP
php 面向对象的一个例子
Apr 12 PHP
php Smarty初体验二 获取配置信息
Aug 08 PHP
修改apache配置文件去除thinkphp url中的index.php
Jan 17 PHP
php 数组元素快速去重
May 05 PHP
微信公众号开发之获取位置信息php代码
Jun 13 PHP
PHP PDOStatement::setFetchMode讲解
Feb 03 PHP
Laravel框架自定义公共函数的引入操作示例
Apr 16 PHP
PHP观察者模式实例分析【对比JS观察者模式】
May 22 PHP
Laravel5.1 框架数据库操作DB运行原生SQL的方法分析
Jan 07 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生成静态页
2006/11/25 PHP
利用curl抓取远程页面内容的示例代码
2013/07/23 PHP
PHP微框架Dispatch简介
2014/06/12 PHP
学习PHP Cookie处理函数
2016/08/09 PHP
php使用gd2绘制基本图形示例(直线、圆、正方形)
2017/02/15 PHP
通过PHP设置BugFree获取邮箱通知
2019/04/25 PHP
通过PHP实现获取访问用户IP
2020/05/09 PHP
javascript插入样式实现代码
2012/02/22 Javascript
javascript强大的日期函数代码分享
2013/09/04 Javascript
验证控件与Button的OnClientClick事件详细解析
2013/12/04 Javascript
jquery 实现两Select 标签项互调示例代码
2014/09/25 Javascript
jQuery实现字符串按指定长度加入特定内容的方法
2015/03/11 Javascript
基于javascript实现listbox左右移动
2016/01/29 Javascript
Jquery判断form表单数据是否变化
2016/03/30 Javascript
基于BootStrap Metronic开发框架经验小结【二】列表分页处理和插件JSTree的使用
2016/05/12 Javascript
详解js的六大数据类型
2016/12/27 Javascript
完美解决mui框架off-canvas侧滑超出部分隐藏无法滚动的问题
2018/01/25 Javascript
webpack4 处理CSS的方法示例
2018/09/03 Javascript
浅谈vue后台管理系统权限控制思考与实践
2018/12/19 Javascript
ES6基础之解构赋值(destructuring assignment)
2019/02/21 Javascript
Python中利用原始套接字进行网络编程的示例
2015/05/04 Python
python实现AES加密与解密
2019/03/28 Python
python 中如何获取列表的索引
2019/07/02 Python
解决django中ModelForm多表单组合的问题
2019/07/18 Python
Python Socketserver实现FTP文件上传下载代码实例
2020/03/27 Python
PyCharm Ctrl+Shift+F 失灵的简单有效解决操作
2021/01/15 Python
HTML5页面音视频在微信和app下自动播放的实现方法
2016/10/20 HTML / CSS
苹果美国官方商城:Apple美国
2016/08/24 全球购物
机电一体化专业应届生求职信
2013/11/27 职场文书
超市业务员岗位职责
2013/12/05 职场文书
集体婚礼证婚词
2014/01/13 职场文书
财务部岗位职责范本
2015/04/14 职场文书
建立共青团委员会的请示
2019/04/02 职场文书
MySQL库表名大小写的选择
2021/06/05 MySQL
MySQL系列之三 基础篇
2021/07/02 MySQL
Go语言实现一个简单的并发聊天室的项目实战
2022/03/18 Golang