PHP登陸后跳轉(zhuǎn)到登陸前頁(yè)面實(shí)現(xiàn)思路及代碼
更新時(shí)間:2014年01月17日 15:39:59 作者:
PHP登陸后跳轉(zhuǎn)到登陸前頁(yè)面,利用$_SERVER全局變量可以實(shí)現(xiàn)這個(gè)功能,下面有個(gè)不錯(cuò)的示例,希望對(duì)大家有所幫助
最近手上一個(gè)小項(xiàng)目讓我接觸到PHP編程,簡(jiǎn)單的登陸功能已經(jīng)OK??墒窃趯?shí)際使用的時(shí)候發(fā)現(xiàn)一個(gè)問(wèn)題:用戶A發(fā)送一個(gè)鏈接給用戶B,B打開(kāi)時(shí)頁(yè)面提示登陸,可是登陸成功后,卻跳轉(zhuǎn)到了首頁(yè),而并不是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)求頁(yè)面的URL;登錄驗(yàn)證成功后在跳轉(zhuǎn)回該URL。
checklogin.php
session_start();
if (!isset ($_SESSION['login_ok']))
{
echo "<script language=javascript>alert ('要訪問(wèn)的頁(yè)面需要先登錄。');</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)的頁(yè)面
$url = $_SESSION['userurl'];
}
else
{
//沒(méi)有要跳轉(zhuǎn)的頁(yè)面,則轉(zhuǎn)到首頁(yè)
$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)求頁(yè)面的URL;登錄驗(yàn)證成功后在跳轉(zhuǎn)回該URL。
checklogin.php
復(fù)制代碼 代碼如下:
session_start();
if (!isset ($_SESSION['login_ok']))
{
echo "<script language=javascript>alert ('要訪問(wèn)的頁(yè)面需要先登錄。');</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)的頁(yè)面
$url = $_SESSION['userurl'];
}
else
{
//沒(méi)有要跳轉(zhuǎn)的頁(yè)面,則轉(zhuǎn)到首頁(yè)
$url = "home.php";
}
//0.5s后跳轉(zhuǎn)
echo "<meta http-equiv=\"refresh\" content=\"0.5;url=$url\">";
相關(guān)文章
比較discuz和ecshop的截取字符串函數(shù)php版
網(wǎng)上看到一篇文章 discuz和ecshop截取字符串的兩個(gè)函數(shù),比較了一下兩個(gè)版本的函數(shù),都各有局限,只能在特定的前提下使用,但是學(xué)習(xí)一下有利于拓寬思路,了解PHP的擴(kuò)展功能2012-09-09
PHP call_user_func和call_user_func_array函數(shù)的簡(jiǎn)單理解與應(yīng)用分析
這篇文章主要介紹了PHP call_user_func和call_user_func_array函數(shù)的簡(jiǎn)單理解與應(yīng)用,結(jié)合實(shí)例形式分析了PHP call_user_func和call_user_func_array函數(shù)的基本功能、用法及操作注意事項(xiàng),需要的朋友可以參考下2019-11-11
PHP二維數(shù)組實(shí)現(xiàn)去除重復(fù)項(xiàng)的方法【保留各個(gè)鍵值】
這篇文章主要介紹了PHP二維數(shù)組實(shí)現(xiàn)去除重復(fù)項(xiàng)的方法,結(jié)合實(shí)例形式分析了php保留各個(gè)鍵值的情況下去除重復(fù)項(xiàng)的相關(guān)操作技巧,需要的朋友可以參考下2017-12-12
深入理解用mysql_fetch_row()以數(shù)組的形式返回查詢結(jié)果
本篇文章是對(duì)使用mysql_fetch_row()以數(shù)組的形式返回查詢結(jié)果進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06

