PHP Header用于页面跳转要留心及PHP 页面跳转的三种方式

PHP Header用于页面跳转要留心 的多个 问题总结

在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("...");

 

PHP 页面跳转的三种方式

第一种方式:header()

header()函数的主要功能是将HTTP协议标头(header)输出到浏览器。
语法:

void header ( string $string [, bool $replace = true [, int $http_response_code ]] )

可选参数replace指明是替换前一条类似标头还是添加一条相同类型的标头,默认为替换。
第二个可选参数http_response_code强制将HTTP相应代码设为指定值。 header函数中Location类型的标头是一种特殊的header调用,常用来实现页面跳转。注意:1.location和“:”号间不能有空格,否则不会跳转。

举例:

1

2

3

4

5

6

7

<html>

<?php

/* This will give an error. Note the output

 * above, which is before the header() call */

header('Location: http://www.example.com/');

exit;

?>

  

注意:

  • header执行前不能有任何输出
  • location和:之间不能有空格
  • header后的php代码还会执行,所以需要注意使用exit;
 

第二种方式:meta标签

Meta标签是HTML中负责提供文档元信息的标签,在PHP程序中使用该标签,也可以实现页面跳转。 若定义http-equiv为refresh,则打开该页面时将根据content规定的值在一定时间内跳转到相应页面。

1

2

3

meta http-equiv="refresh"

content="1;url=http://

www.baidu.com">

  

第三种方式:javascript

通过使用windows.location.href=‘url’; 是页面自动跳转到新的地址

1

2

3

4

5

6

7

< ?php 

$url "http://www.baidu.com"

echo "< script language='javascript'

type='text/javascript'>"; 

echo "window.location.href='$url'"

echo "< /script>"

?>

<script type="text/javascript">

  setTimeout("window.location.href='helloworld.php'",3000);

</script>

实例:

 

 

1  :

echo '<html><head><Script Language="JavaScript">alert("您还没有登录,请登录");</Script></head></html>' . "<meta http-equiv=\"refresh\" content=\"0;url=/login.html\">";

2:

echo '<html><head><Script Language="JavaScript">alert("您没有做任何修改");window.history.go(-1);</Script></head></html>';

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值