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

相關文章
相關標籤/搜索