我會設置它,如果有人發送請求「註銷」它會自動帶他們到一個頁面,說「成功註銷」。如果客戶試圖按下後退按鈕或去限制區域,它會再次要求HTTP認證。PHP:HTTP基本 - 註銷
我到目前爲止是這樣的:
example.com/restricted/index.php:
<?php
session_start();
if(isset($_GET['logout']))
{
unset($_SESSION["login"]);
header("location: ../logout.php");
exit;
}
if (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW']) || !isset($_SESSION["login"]))
{
header("HTTP/1.0 401 Unauthorized");
header("WWW-authenticate: Basic realm=\"Tets\"");
header("Content-type: text/html");
$_SESSION["login"] = true;
// Print HTML that a password is required
exit;
}
?>
// The rest of the page is then displayed like normal
用戶成功訪問example.com/logout.php如果例子。 com/restricted/index.php?logout被訪問。當用戶嘗試返回時發生隨機事件時,有時它會要求HTTP認證兩次(???),有時它會一直要求循環(?)中的認證,有時它會讓我馬上回去,好像是我從未註銷。
我是新來的會議如何工作,但我的理解是這樣的:如果/當人被驗證,它存儲一個變量在它的會話稱爲登錄與值爲真...如果它獲得GET請求與註銷,然後它會刪除該會話變量,並返回到logout.php ...爲什麼當我點擊回索引它會讓我回到沒有要求身份驗證,當會議[登錄]應該沒有設置。
對此PHP代碼的任何改進表示讚賞。我知道我不應該使用HTTP Basic,而應該合併SQL,但是meh。這是一個臨時解決方案。
編輯:如果包含指令示例,我將接受MySQL解決方案。我沒有MySQL或PHP數據庫知識(還)
沒有會話,你最好的選擇就是改變基本的字符串。 – stillstanding 2010-08-16 04:50:33
僅僅是一個臨時的解決方案,不是很努力嗎? – 2010-08-16 04:54:48
@暫時的主要問題是什麼時候發送它。如何區分來自登錄用戶的呼叫和來自登出用戶的呼叫:) – 2010-08-16 04:56:54