如何根据用户选择控制PHP会话到期?

时间:2016-12-25 16:28:03

标签: php session cookies

我有一个基本的PHP CRUD(PDO)框架,其中有一个登录表单,用于登录用户并设置默认cookie PHPSESSID,该会话到期时到期......

我对这个基本设置感到满意,但我想通过在登录表单上添加“保持登录状态”选项来扩展它。

我该如何解决这个问题?我是否配置PHPSESSID的到期日期,如果是,我是如何/在何处这样做,或者我是否创建了与PHPSESSID不同的新cookie?

供参考,这是我的用户类:

Help -> Check for Update...

谢谢!

编辑:

这么简单吗?

include('password.php');
class User extends Password{

private $_db;

function __construct($db){
    parent::__construct();

    $this->_db = $db;
}

private function get_user_hash($username){

    try {
        $stmt = $this->_db->prepare('SELECT password, username, userID FROM users WHERE username = :username ');
        $stmt->execute(array('username' => $username));

        return $stmt->fetch();

    } catch(PDOException $e) {
        echo $e->getMessage();
    }
}

public function login($username,$password){

    $row = $this->get_user_hash($username);

    if($this->password_verify($password,$row['password']) == 1){

        $_SESSION['loggedin'] = true;
        $_SESSION['username'] = $row['username'];
        $_SESSION['userID'] = $row['userID'];
        return true;
    }
}

public function logout(){
    session_destroy();
}

public function is_logged_in(){
    if(isset($_SESSION['loggedin']) && $_SESSION['loggedin'] == true){
        return true;
    }
}
}

0 个答案:

没有答案