簡體   English   中英

如何使用戶使用PHP登錄一個月?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM