php页面跳转

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

项目需求 javascript

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

解决思路1: html

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

具体实现方法:
浏览器

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

checklogin.php session

代码以下: ide

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
函数

代码以下: post

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

相关文章
相关标签/搜索