一直在試圖弄清楚爲什麼這不起作用。由於所用設備上的會話存在問題,因此使用Cookie製作低安全性登錄系統。設置的cookie可以獨立運行,但是在腳本中沒有正確設置,或者在auth腳本中沒有正確讀取。另外,在設置cookie之後,它不在瀏覽器中。想法?
登錄
<?php
//If passwords match, a cookie is created
if ($pw = $hashedpw) {
$memberID = "1221"; //Pulled from DB
setcookie('MDADMIN_SESS_ID',$memberID,'0','', '.somewhere.com');
header('Location: http://somewhere.com/secure_page.php');
}
?>
驗證
<?php
//Verify that cookie is present
$cookie = $_COOKIE['MDADMIN_SESS_ID'];
if(!isset($cookie)) {
header("Location: http://somewhere.com/failed.php");
exit();
}
?>
的過程如下:登錄表 - >登錄腳本 - >安全網頁(如果密碼匹配) - >驗證腳本檢查(通過包含) - >如果cookie不存在,則重定向至失敗登錄。運行時,即使登錄腳本正確指向安全頁面(成功登錄),它也始終默認爲不存在該cookie。
考慮到您已經在瀏覽器上工作了,請嘗試給cookie更長的過期時間。 0應該在瀏覽器會話結束時關閉,但可能會在下一頁之前刪除它(作爲某種安全措施)。使用`time()+ 3600`或其他東西,看看是否有幫助。 – 2011-01-06 15:52:59
不是一個壞主意,謝謝!嘗試處理舊版Blackberry瀏覽器,這是此頁面的唯一預期用戶代理。 – NightMICU 2011-01-06 16:13:06