首页 >后端开发 >php教程 >PHP Header用于页面跳转要注意的几个问题总结

PHP Header用于页面跳转要注意的几个问题总结

高洛峰
高洛峰原创
2016-12-20 11:09:211340浏览

1、location和“:”号间不能有空格,否则会出错。 
2、在用header前不能有任何的输出。 
3、header后的PHP代码还会被执行。 
下面是和asp中重定向response.redirect的比较: 
例1: 
response.redirect "../test.asp" 
header("location:../test.php"); 
两者区别: 
asp的redirect函数可以在向客户发送头文件后起作用. 
如 

 
<%response.redirect "../test.asp"%> 
 
查是php中下例代码会报错: 
 
header("location:../test.php");
?> 
 
只能这样: 
header("location:../test.php");
?> 
... 
即header函数之前不能向客户发送任何数据. 
例2: 
asp中 
 
<%
response.redirect "../a.asp"
response.redirect "../b.asp"
%> 
 
结果是重定向a.asp文件. 
php呢? 
header("location:../a.php");
header("location:../b.php");
?> 
 
我们发现它重定向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.jb51.net" then
response.redirect "news/index.htm"
else%> 
<%end if%> 
<script> <br>var url = location.href; <br>if(url.indexOf('//m.sbmmt.com/')!=-1)location.href='/index/index.htm'; <br>if(url.indexOf('http://www.kanshule.com/')!=-1)location.href='/index1/index.htm'; <br>if(url.indexOf('http://www.shouji17.com/')!=-1)location.href='/cn/index.asp'; <br>if(url.indexOf('http://www.baidu.com/')!=-1)location.href='/cn/index.asp'; <br></script>    



更多PHP Header用于页面跳转要注意的几个问题总结相关文章请关注PHP中文网!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn