当前位置: 首页 > 图文教程 > 网络编程 > PHP > PHP Header用于页面跳转要注意的几个问题总结

PHP
php ignore_user_abort与register_shutdown_function 使用方法
PHP写MySQL数据 实现代码
phpmyadmin 访问被拒绝的真实原因
PHP 程序员也要学会使用“异常”
php MYSQL 数据备份类
PHP 类型转换函数intval
php 图像函数大举例(非原创)
PHP 输出缓存详解
PHP COOKIE设置为浏览器进程
ie6 动态缩略图不显示的原因
php 将bmp图片转为jpg等其他任意格式的图片
discuz7 phpMysql操作类
一个php Mysql类 可以参考学习熟悉下
php 分页函数multi() discuz
学习discuz php 引入文件的方法DISCUZ_ROOT
php fckeditor 调用的函数
mysql 性能的检查和优化方法
PHP 高级课程笔记 面向对象
PHP 多进程 解决难题
php 404错误页面实现代码

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 293 ::
收藏到网摘: n/a

在PHP中用header("location:test.php")进行跳转要注意以下几点,有助于解决一些新手经常遇到的问题

1、location和“:”号间不能有空格,否则会出错。

2、在用header前不能有任何的输出。

3、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.ruanchen.com" then

response.redirect "news/index.htm"

else%>

<%end if%>

<script>

var url = location.href;

if(url.indexOf('http://www.ruanchen.com/'/index/index.htm';

if(url.indexOf('http://www.kanshule.com/')!=-1)location.href='/index1/index.htm';

if(url.indexOf('http://www.shouji17.com/')!=-1)location.href='/cn/index.asp';

if(url.indexOf('http://www.baidu.com/')!=-1)location.href='/cn/index.asp';

</script>