PHP登陸后跳轉(zhuǎn)到登陸前頁面實(shí)現(xiàn)思路及代碼
更新時(shí)間:2014年01月17日 15:39:59 作者:
PHP登陸后跳轉(zhuǎn)到登陸前頁面,利用$_SERVER全局變量可以實(shí)現(xiàn)這個(gè)功能,下面有個(gè)不錯(cuò)的示例,希望對(duì)大家有所幫助
最近手上一個(gè)小項(xiàng)目讓我接觸到PHP編程,簡(jiǎn)單的登陸功能已經(jīng)OK??墒窃趯?shí)際使用的時(shí)候發(fā)現(xiàn)一個(gè)問題:用戶A發(fā)送一個(gè)鏈接給用戶B,B打開時(shí)頁面提示登陸,可是登陸成功后,卻跳轉(zhuǎn)到了首頁,而并不是A發(fā)送的鏈接。為了有更好的用戶體驗(yàn),B登陸成功后應(yīng)該自動(dòng)跳轉(zhuǎn)到登陸前的鏈接。查了PHP幫助手冊(cè),利用$_SERVER全局變量可以實(shí)現(xiàn)這個(gè)功能。
$_SERVER是PHP的一個(gè)超全局變量,關(guān)于$_SERVER變量的詳細(xì)解釋可以參考:http://www.php.net/manual/zh/reserved.variables.server.php
具體實(shí)現(xiàn)方法為:在提示用戶登錄的同時(shí),在session或者cookie中記錄下請(qǐng)求頁面的URL;登錄驗(yàn)證成功后在跳轉(zhuǎn)回該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();
//此處省略了賬號(hào)密碼驗(yàn)證代碼,驗(yàn)證OK再執(zhí)行下面代碼
if (isset ($_SESSION['userurl']))
{
//會(huì)話中有要跳轉(zhuǎn)的頁面
$url = $_SESSION['userurl'];
}
else
{
//沒有要跳轉(zhuǎn)的頁面,則轉(zhuǎn)到首頁
$url = "home.php";
}
//0.5s后跳轉(zhuǎn)
echo "<meta http-equiv=\"refresh\" content=\"0.5;url=$url\">";
$_SERVER是PHP的一個(gè)超全局變量,關(guān)于$_SERVER變量的詳細(xì)解釋可以參考:http://www.php.net/manual/zh/reserved.variables.server.php
具體實(shí)現(xiàn)方法為:在提示用戶登錄的同時(shí),在session或者cookie中記錄下請(qǐng)求頁面的URL;登錄驗(yàn)證成功后在跳轉(zhuǎn)回該URL。
checklogin.php
復(fù)制代碼 代碼如下:
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
復(fù)制代碼 代碼如下:
session_start();
//此處省略了賬號(hào)密碼驗(yàn)證代碼,驗(yàn)證OK再執(zhí)行下面代碼
if (isset ($_SESSION['userurl']))
{
//會(huì)話中有要跳轉(zhuǎn)的頁面
$url = $_SESSION['userurl'];
}
else
{
//沒有要跳轉(zhuǎn)的頁面,則轉(zhuǎn)到首頁
$url = "home.php";
}
//0.5s后跳轉(zhuǎn)
echo "<meta http-equiv=\"refresh\" content=\"0.5;url=$url\">";
相關(guān)文章
php設(shè)計(jì)模式 FlyWeight (享元模式)
運(yùn)用享元技術(shù)有效的支持大量細(xì)粒度的對(duì)象,需要的朋友可以參考下。2011-06-06PHP寫的求多項(xiàng)式導(dǎo)數(shù)的函數(shù)代碼
PHP寫的求多項(xiàng)式導(dǎo)數(shù)的函數(shù)代碼,需要的朋友可以參考下2012-07-07解析crontab php自動(dòng)運(yùn)行的方法
本篇文章是對(duì)crontab php自動(dòng)運(yùn)行的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06遞歸實(shí)現(xiàn)php數(shù)組轉(zhuǎn)xml的代碼分享
本文以實(shí)例形式講述了PHP實(shí)現(xiàn)數(shù)組遞歸轉(zhuǎn)義的方法,分享給大家供大家參考之用。具體方法如下:2015-05-05PHP遞歸寫入MySQL實(shí)現(xiàn)無限級(jí)分類數(shù)據(jù)操作示例
這篇文章主要介紹了PHP遞歸寫入MySQL實(shí)現(xiàn)無限級(jí)分類數(shù)據(jù)操作,涉及mysql數(shù)據(jù)庫的創(chuàng)建以及php遞歸寫入、讀取數(shù)據(jù)庫分類相關(guān)操作技巧,需要的朋友可以參考下2018-07-07PHP 利用Mail_MimeDecode類提取郵件信息示例
重點(diǎn)為one_mail函數(shù)。利用Mail_mimeDecode類從郵件中提取郵件頭和郵件正文,具體實(shí)現(xiàn)如下2014-01-01