我们在1、location和“:”号间不能有空格,否则会出错。
2、在用header前不能有任何的输出。
3、PHP中用header后的PHP代码还会被执行。
下面是和asp中重定向response.redirect的比较:
例1:
response.redirect "../test.asp"
header("location:../test.php");
两者区别:
asp的redirect函数可以在向客户发送头文件后起作用.
如
1 2 3 4 5 6 7 8 9 | <ol class = "dp-xml" >
<li class = "alt" ><span><strong><font color= "#006699" ><span class = "tag" ><span class = "tag-name" >html</span><span class = "tag" >></span><span class = "tag" ><span class = "tag-name" >head</span><span class = "tag" >></span><span class = "tag" ></span><span class = "tag-name" >head</span><span class = "tag" >></span><span class = "tag" ><span class = "tag-name" >body</span><span class = "tag" >></span></span></span></span></font></strong><span> </span></span></li>
<li class = "" >
<span></span><span class = "tag" ><strong><font color= "#006699" ></font></strong></span><span>%response.redirect "../test.asp" %</span><span class = "tag" ><strong><font color= "#006699" >></font></strong></span><span> </span>
</li>
<li class = "alt" >
<span></span><strong><font color= "#006699" ><span class = "tag" ></span><span class = "tag-name" >body</span><span class = "tag" >></span><span class = "tag" ></span><span class = "tag-name" >html</span><span class = "tag" >></span></font></strong><span> </span>
</li>
</ol>
|
Copy after login
查是PHP中用header中下例代码会报错:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <ol class = "dp-xml" >
<li class = "alt" ><span><strong><font color= "#006699" ><span class = "tag" ><span class = "tag-name" >html</span><span class = "tag" >></span><span class = "tag" ><span class = "tag-name" >head</span><span class = "tag" >></span><span class = "tag" ></span><span class = "tag-name" >head</span><span class = "tag" >></span><span class = "tag" ><span class = "tag-name" >body</span><span class = "tag" >></span></span></span></span></font></strong><span> </span></span></li>
<li class = "" >
<span></span><span class = "tag" ><strong><font color= "#006699" ></font></strong></span><span> </span>
</li>
<li class = "alt" >
<span></span><span class = "tag-name" ><strong><font color= "#006699" >header</font></strong></span><span>( "location:../test.php" ); </span>
</li>
<li class = "" >
<span></span><span class = "tag" ><strong><font color= "#006699" >?></font></strong></span><span> </span>
</li>
<li class = "alt" >
<span></span><strong><font color= "#006699" ><span class = "tag" ></span><span class = "tag-name" >body</span><span class = "tag" >></span><span class = "tag" ></span><span class = "tag-name" >html</span><span class = "tag" >></span></font></strong><span> </span>
</li>
</ol>
|
Copy after login
只能这样:
1 2 3 4 5 6 7 8 9 10 11 12 | <ol class = "dp-xml" >
<li class = "alt" ><span><span class = "tag" ><strong><font color= "#006699" ></font></strong></span><span> </span></span></li>
<li class = "" >
<span></span><span class = "tag-name" ><strong><font color= "#006699" >header</font></strong></span><span>( "location:../test.php" ); </span>
</li>
<li class = "alt" >
<span></span><span class = "tag" ><strong><font color= "#006699" >?></font></strong></span><span> </span>
</li>
<li class = "" >
<span></span><strong><font color= "#006699" ><span class = "tag" ><span class = "tag-name" >html</span><span class = "tag" >></span><span class = "tag" ><span class = "tag-name" >head</span><span class = "tag" >></span><span class = "tag" ></span><span class = "tag-name" >head</span><span class = "tag" >></span><span class = "tag" ><span class = "tag-name" >body</span><span class = "tag" >></span></span></span></span></font></strong><span>...</span><strong><font color= "#006699" ><span class = "tag" ></span><span class = "tag-name" >body</span><span class = "tag" >></span><span class = "tag" ></span><span class = "tag-name" >html</span><span class = "tag" >></span></font></strong><span> </span>
</li>
</ol>
|
Copy after login
即PHP中用header函数之前不能向客户发送任何数据.
例2:
asp中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <ol class = "dp-xml" >
<li class = "alt" ><span><strong><font color= "#006699" ><span class = "tag" ><span class = "tag-name" >html</span><span class = "tag" >></span><span class = "tag" ><span class = "tag-name" >head</span><span class = "tag" >></span><span class = "tag" ></span><span class = "tag-name" >head</span><span class = "tag" >></span><span class = "tag" ><span class = "tag-name" >body</span><span class = "tag" >></span></span></span></span></font></strong><span> </span></span></li>
<li class = "" >
<span></span><span class = "tag" ><strong><font color= "#006699" ></font></strong></span><span>% </span>
</li>
<li class = "alt" ><span>response.redirect "../a.asp" </span></li>
<li class = "" ><span>response.redirect "../b.asp" </span></li>
<li class = "alt" >
<span>%</span><span class = "tag" ><strong><font color= "#006699" >></font></strong></span><span> </span>
</li>
<li class = "" >
<span></span><strong><font color= "#006699" ><span class = "tag" ></span><span class = "tag-name" >body</span><span class = "tag" >></span><span class = "tag" ></span><span class = "tag-name" >html</span><span class = "tag" >></span></font></strong><span> </span>
</li>
</ol>
|
Copy after login
结果是重定向a.asp文件.
php呢?
1 2 3 4 5 6 7 8 9 10 11 12 13 | <ol class = "dp-xml" >
<li class = "alt" ><span><span class = "tag" ><strong><font color= "#006699" ></font></strong></span><span> </span></span></li>
<li class = "" >
<span></span><span class = "tag-name" ><strong><font color= "#006699" >header</font></strong></span><span>( "location:../a.php" ); </span>
</li>
<li class = "alt" ><span>header( "location:../b.php" ); </span></li>
<li class = "" >
<span></span><span class = "tag" ><strong><font color= "#006699" >?></font></strong></span><span> </span>
</li>
<li class = "alt" >
<span></span><strong><font color= "#006699" ><span class = "tag" ><span class = "tag-name" >html</span><span class = "tag" >></span><span class = "tag" ><span class = "tag-name" >head</span><span class = "tag" >></span><span class = "tag" ></span><span class = "tag-name" >head</span><span class = "tag" >></span><span class = "tag" ><span class = "tag-name" >body</span><span class = "tag" >></span><span class = "tag" ></span><span class = "tag-name" >body</span><span class = "tag" >></span><span class = "tag" ></span><span class = "tag-name" >html</span><span class = "tag" >></span></span></span></span></font></strong><span> </span>
</li>
</ol>
|
Copy after login
我们发现它重定向b.php.
原来在asp中执行redirect后不会再执行后面的代码.
而php在执行header后,继续执行下面的代码.
在这方面上php中的header重定向不如asp中的重定向.有时我们要重定向后,不能执行后面的代码:
一般地我们用
1 2 3 4 5 6 7 8 | <ol class = "dp-xml" >
<li class = "alt" ><span><span> if (...) </span></span></li>
<li class = "" ><span>header( "..." ); </span></li>
<li class = "alt" ><span> else </span></li>
<li class = "" ><span>{ </span></li>
<li class = "alt" ><span>... </span></li>
<li class = "" ><span>} </span></li>
</ol>
|
Copy after login
但是我们可以简单的用下面的方法:
1 2 3 4 | <ol class = "dp-xml" >
<li class = "alt" ><span><span> if (...) </span></span></li>
<li class = "" ><span>{ header( "..." ); exit ();} </span></li>
</ol>
|
Copy after login
PHP中用header还要注意的是,如果是用Unicode(UTF-8)编码时也会出现问题,需要调整缓存设置.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | <ol class = "dp-xml" >
<li class = "alt" ><span><span class = "tag" ><strong><font color= "#006699" ></font></strong></span><span>[</span><span class = "attribute" ><font color= "#ff0000" >email</font></span><span>=%@]%@</span><span class = "attribute" ><font color= "#ff0000" >LANGUAGE</font></span><span>=</span><span class = "attribute-value" ><font color= "#0000ff" > "VBSCRIPT[/email]" </font></span><span> </span><span class = "attribute" ><font color= "#ff0000" >CODEPAGE</font></span><span>=</span><span class = "attribute-value" ><font color= "#0000ff" > "936" </font></span><span>%</span><span class = "tag" ><strong><font color= "#006699" >></font></strong></span><span> </span></span></li>
<li class = "" >
<span></span><span class = "tag" ><strong><font color= "#006699" ></font></strong></span><span>% if Request.ServerVariables( "SERVER_NAME" )= "s.jb51.net" then </span>
</li>
<li class = "alt" ><span>response.redirect "news/index.htm" </span></li>
<li class = "" >
<span> else %</span><span class = "tag" ><strong><font color= "#006699" >></font></strong></span><span> </span>
</li>
<li class = "alt" >
<span></span><span class = "tag" ><strong><font color= "#006699" ></font></strong></span><span>% end if %</span><span class = "tag" ><strong><font color= "#006699" >></font></strong></span><span> </span>
</li>
<li class = "" >
<span></span><strong><font color= "#006699" ><span class = "tag" ><span class = "tag-name" >script</span><span class = "tag" >></span></span></font></strong><span> </span>
</li>
<li class = "alt" >
<span> var </span><span class = "attribute" ><font color= "#ff0000" >url</font></span><span> = </span><span class = "attribute-value" ><font color= "#0000ff" >location</font></span><span>.href; </span>
</li>
<li class = "" >
<span> if (url.indexOf( 'http://www.jb51.net/' )!=-1)</span><span class = "attribute" ><font color= "#ff0000" >location.href</font></span><span>=</span><span class = "attribute-value" ><font color= "#0000ff" > '/index/index.htm' </font></span><span>; </span>
</li>
<li class = "alt" >
<span> if (url.indexOf( 'http://www.kanshule.com/' )!=-1)</span><span class = "attribute" ><font color= "#ff0000" >location.href</font></span><span>=</span><span class = "attribute-value" ><font color= "#0000ff" > '/index1/index.htm' </font></span><span>; </span>
</li>
<li class = "" >
<span> if (url.indexOf( 'http://www.shouji17.com/' )!=-1)</span><span class = "attribute" ><font color= "#ff0000" >location.href</font></span><span>=</span><span class = "attribute-value" ><font color= "#0000ff" > '/cn/index.asp' </font></span><span>; </span>
</li>
<li class = "alt" >
<span> if (url.indexOf( 'http://www.baidu.com/' )!=-1)</span><span class = "attribute" ><font color= "#ff0000" >location.href</font></span><span>=</span><span class = "attribute-value" ><font color= "#0000ff" > '/cn/index.asp' </font></span><span>; </span>
</li>
<li class = "" >
<span></span><strong><font color= "#006699" ><span class = "tag" ></span><span class = "tag-name" >script</span><span class = "tag" >></span></font></strong><span> </span>
</li>
</ol>
|
Copy after login