[英]How to keep user logged in for one month in PHP?
我已經通過StackOverflow和其他論壇進行了全部搜索,但是還沒有找到使我的代碼正常工作的方法。 我為我的用戶設置了基本的登錄機制,並且工作正常。 但是,關閉瀏覽器后,用戶必須訪問該站點並重新登錄。我需要找到一種方法來使用戶保持登錄狀態一個月。
我研究了cookie並進行了為期兩天的實驗,但是當我退出瀏覽器並加載網站備份時,用戶始終注銷。 唯一有效的方法是使用ini_set來更改session.gc_maxlifetime和session.lifetime變量,但是出於某種奇怪的原因,無論我為這兩個變量分配了什么值,用戶都只能保持登錄狀態約4個小時。 那么,有人知道我在設置下面的cookie時是否做錯了什么,或者如何解決我的問題? 預先感謝您的回答,我不知所措。
//create cookie, set expiration to one month (in seconds)
setcookie("user",$username,time()+2592000);
echo $_COOKIE["user"];
session_start();
//Login Successful, begin session
$member = mysqli_fetch_assoc($result);
$_SESSION['SESS_MEMBER_ID'] = $member['id'];
$_SESSION['SESS_FIRST_NAME'] = $member['username'];
$_SESSION['SESS_LAST_NAME'] = $member['password'];
$_SESSION['table'] = $table;
session_write_close();
//header("location: search.php");
exit();
在登錄頁面中添加(會話):
$_SESSION['timeout'] = time();
和索引檢查:
session_start();
$timeout = 7200; //time in seconds
if(isset($_SESSION['timeout'])) {
$duracao = time() - (int) $_SESSION['timeout'];
if($duracao > $timeout) {
session_start();
session_destroy();
session_unset();
echo "<script type='text/javascript'>location.href='index.php'</script>";
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.