php页面跳转

一 PHP用户登录后跳转回上一访问页面的实现思路及代码

项目需求

访问网站页面时,有的页面需要授权才能访问,这时候就会要求用户登录,跳转到登录页面login.php,怎么实现登录后返回到刚才访问的页面。

解决思路1:

在跳转到登录页面之前要将当前访问页面的url保存到cookie里面,登录验证授权通过后,从cookie中取出这个url值,跳转到该url指定的页面。

具体实现方法:

在提示用户登录的同时,在session或者cookie中记录下请求页面的URL;登录验证成功后在跳转回该URL。

checklogin.php

代码如下:

session_start();
if (!isset ($_SESSION['login_ok']))
{
echo "<script language=javascript>alert ('要访问的页面需要先登录。');</script>";
$_SESSION['userurl'] = $_SERVER['REQUEST_URI'];
echo '<script language=javascript>window.location.href="login.php"</script>';
}

login.php

代码如下:

session_start();
//此处省略了账号密码验证代码,验证OK再执行下面代码
if (isset ($_SESSION['userurl']))
{
//会话中有要跳转的页面
$url = $_SESSION['userurl'];
}
else
{
//没有要跳转的页面,则转到首页
$url = "home.php";
}
//0.5s后跳转
echo "<meta http-equiv="refresh" content="0.5;url=$url">";

解决思路2:

除了存成cookie的形式,相信大家也看到了很多大型网站直接采用GET的形式获得,DZ的登陆机制就是这样。

这种思路具体是这样的:

在跳转到登录页面前要将访客访问的页面的url作为参数传递过去,登录验证后,授予访问权限之后跳转到该url指定的页面。

比如登录前的url为:http://www.xxx.com/member/authpage.html 当访客访问时,点击无权限,跳转到登录页面的地址就为login.php?redirect_url=http://www.xxx.com/member/authpage.html,这样在登录时就可以用GET方式获取该参数 http://www.xxx.com/member/authpage.html,登录验证成功后跳转到authpage.html 这个页面就可以了。


二 应用跳转的实例

1. 一行URL跳转代码   
 <? $url=$_GET["url"]; header("Location:"."http://".$url);?>     <?php $url = $_GET['url'];     Header("Location:$url"); ?>

    如保存为aaa.php,可以实现aaa.php?url=www.baidu.com跳转到百度的效果

   

2. 当用户访问zhuce.php时,判断一个cookie是否存在,如果存在就跳转到register.php,如果不存在则创建cookie然后跳转到zhuce.html   
 if($_COOKIE["u_type"]){        header('location:register.php');}else{    setcookie('u_type','1','86400*360');//设置cookie长期有效    header('location:zhuce.html');}




三 页面跳转的实现方法

1. header()函数

header()函数是PHP中进行页面跳转的一种十分简单的方法。header()函数的主要功能是将HTTP协议标头(header)输出到浏览器。

header()函数的定义如下:

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

可选参数replace指明是替换前一条类似标头还是添加一条相同类型的标头,默认为替换。

第二个可选参数http_response_code强制将HTTP相应代码设为指定值。 header函数中Location类型的标头是一种特殊的header调用,常用来实现页面跳转。

注意:

1.location和“:”号间不能有空格,否则不会跳转。

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

3.header后的PHP代码还会被执行。例如,将浏览器重定向到冠威博客

< ?php//重定向浏览器header("Location: http://www.guanwei.org");//确保重定向后,后续代码不会被执行exit;?>


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

若设置content="秒数;url=网址",则定义了经过多长时间后页面跳转到指定的网址。例如,使用meta标签实现疫苗后页面自动跳转到冠威博客。

< meta http-equiv="refresh" content="1;url=http://www.guanwei.org">

例如,以下程序meta.php实现在该页面中停留一秒后页面自动跳转到www.guanwei.org。

< ?php$url = "http://www.guanwei.org"; ?>< html>< head>< meta http-equiv="refresh" content="1; url=< ?php echo $url; ?>">< /head>< body>页面只停留一秒……< /body>< /html>


3. JavaScript(常用、推荐)

例如,此代码可以放在程序中的任何合法位置。

< ?php$url = "http://www.guanwei.org";echo "<script language='javascript' type='text/javascript'>";echo "window.location.href='$url'";echo "</script>";?>


来自:http://www.guanwei.org/post/PHPnotes/04/php-redirect-methods.html

         http://hi.baidu.com/rj52077/item/ee2bdfd111b9bdce1a72b4a7

        http://www.4u4v.net/php-user-login-to-jump-back-on-the-realization-of-ideas-and-an-access-code-to-the-page.html

你可能感兴趣的:(php页面跳转)