public function checkSession($hash)
    {
        $ip = $this->getIp();
        $block_status = $this->isBlocked();

        if ($block_status == "block") {
            $return['message'] = $this->__lang("user_blocked");
            return false;
        }

        if (strlen($hash) != self::HASH_LENGTH) {
            return false;
        }

        // INET_NTOA(ip)
        $query = "SELECT id, uid, expiredate, ip, agent, cookie_crc FROM {$this->config->table_sessions} WHERE hash = :hash";
        $query_prepared = $this->dbh->prepare($query);
        $query_params = [
            'hash' => $hash
        ];
        $query_prepared->execute($query_params);

        if ($query_prepared->rowCount() == 0) {
            return false;
        }

        $row = $query_prepared->fetch(\PDO::FETCH_ASSOC);

        $uid = $row['uid'];
        $expiredate = strtotime($row['expiredate']);
        $currentdate = strtotime(date("Y-m-d H:i:s"));
        $db_ip = $row['ip'];
        $db_cookie = $row['cookie_crc'];

        if ($currentdate > $expiredate) {
            $this->deleteSession($hash);

            return false;
        }

        if ($ip != $db_ip) {
            return false;
        }

        if ($db_cookie == sha1($hash . $this->config->site_key)) {
            if ($expiredate - $currentdate < strtotime($this->config->cookie_renew) - $currentdate) {
                $this->deleteSession($hash);
                $this->addSession($uid, false);
            }
            return true;
        }

        return false;
    }
public function checkSession($hash)
    {
        $ip = $this->getIp();
        $block_status = $this->isBlocked();

        if ($block_status == "block") {
            $return['message'] = $this->__lang("user_blocked");
            return false;
        }

        if (strlen($hash) != self::HASH_LENGTH) {
            return false;
        }

        // INET_NTOA(ip)
        $query = "SELECT id, uid, expiredate, ip, agent, cookie_crc FROM {$this->config->table_sessions} WHERE hash = :hash";
        $query_prepared = $this->dbh->prepare($query);
        $query_params = [
            'hash' => $hash
        ];
        $query_prepared->execute($query_params);

        if ($query_prepared->rowCount() == 0) {
            return false;
        }

        $row = $query_prepared->fetch(\PDO::FETCH_ASSOC);

        $uid = $row['uid'];
        $expiredate = strtotime($row['expiredate']);
        $currentdate = strtotime(date("Y-m-d H:i:s"));
        $db_ip = $row['ip'];
        $db_cookie = $row['cookie_crc'];

        if ($currentdate > $expiredate) {
            $this->deleteSession($hash);

            return false;
        }

        if ($ip != $db_ip) {
            return false;
        }

        if ($db_cookie == sha1($hash . $this->config->site_key)) {
            if ($expiredate - $currentdate < strtotime($this->config->cookie_renew) - $currentdate) {
                $this->deleteSession($hash);
                $this->addSession($uid, false);
            }
            return true;
        }

        return false;
    }
public function checkSession ( $ hash ) { $ ip = $ this -> getIp ( ) ; $ block_status = $ this -> isBlocked ( ) ; if ( $ block_status == "block" ) { $ return [ 'message' ] = $ this -> __lang ( "user_blocked" ) ; return false ; } if ( strlen ( $ hash ) != self :: HASH_LENGTH ) { return false ; } // INET_NTOA(ip) $ query = "SELECT id, uid, expiredate, ip, agent, cookie_crc FROM {$this->config->table_sessions} WHERE hash = :hash" ; $ query_prepared = $ this -> dbh -> prepare ( $ query ) ; $ query_params = [ 'hash' => $ hash ] ; $ query_prepared -> execute ( $ query_params ) ; if ( $ query_prepared -> rowCount ( ) == 0 ) { return false ; } $ row = $ query_prepared -> fetch ( \ PDO :: FETCH_ASSOC ) ; $ uid = $ row [ 'uid' ] ; $ expiredate = strtotime ( $ row [ 'expiredate' ] ) ; $ currentdate = strtotime ( date ( "Y-m-d H:i:s" ) ) ; $ db_ip = $ row [ 'ip' ] ; $ db_cookie = $ row [ 'cookie_crc' ] ; if ( $ currentdate > $ expiredate ) { $ this -> deleteSession ( $ hash ) ; return false ; } if ( $ ip != $ db_ip ) { return false ; } if ( $ db_cookie == sha1 ( $ hash . $ this -> config -> site_key ) ) { if ( $ expiredate - $ currentdate < strtotime ( $ this -> config -> cookie_renew ) - $ currentdate ) { $ this -> deleteSession ( $ hash ) ; $ this -> addSession ( $ uid , false ) ; } return true ; } return false ; }
Function to check if a session is valid
@param string $hash
@return boolean
Function to check if a session is valid