最近手上一個小項目讓我接觸到PHP編程,簡單的登陸功能已經OK。可是在實際使用的時候發現一個問題:用戶A發送一個鏈接給用戶B,B打開時頁面提示登陸,可是登陸成功後,卻跳轉到了首頁,而並不是A發送的鏈接。為了有更好的用戶體驗,B登陸成功後應該自動跳轉到登陸前的鏈接。查了PHP幫助手冊,利用$_SERVER全局變量可以實現這個功能。
$_SERVER是PHP的一個超全局變量,關於$_SERVER變量的詳細解釋可以參考:http://www.php.net/manual/zh/reserved.variables.server.php
具體實現方法為:在提示用戶登錄的同時,在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\">";