Maison >développement back-end >tutoriel php >PHP Header用于页面跳转要注意的几个问题总结

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

高洛峰
高洛峰original
2016-12-20 11:09:211338parcourir

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('http://www.php.cn/')!=-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中文网!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn