prepare($sql); $stmt->bindValue(':username', $username, SQLITE3_TEXT); $result = $stmt->execute(); if (!$result) { return false; } $userData = $result->fetchArray(SQLITE3_ASSOC); if (!isset($userData['id'])) { return false; } $userId = $userData['id']; $main_currency = $userData['main_currency']; $adminQuery = "SELECT login_disabled FROM admin"; $adminResult = $db->query($adminQuery); $adminRow = $adminResult->fetchArray(SQLITE3_ASSOC); if ($adminRow['login_disabled'] == 1) { $sql = "SELECT * FROM login_tokens WHERE user_id = :userId"; $stmt = $db->prepare($sql); $stmt->bindParam(':userId', $userId, SQLITE3_TEXT); } else { $sql = "SELECT * FROM login_tokens WHERE user_id = :userId AND token = :token"; $stmt = $db->prepare($sql); $stmt->bindParam(':userId', $userId, SQLITE3_TEXT); $stmt->bindParam(':token', $token, SQLITE3_TEXT); } $result = $stmt->execute(); $row = $result->fetchArray(SQLITE3_ASSOC); if ($row == false) { return false; } session_regenerate_id(true); $_SESSION['username'] = $username; $_SESSION['token'] = $token; $_SESSION['loggedin'] = true; $_SESSION['main_currency'] = $main_currency; $_SESSION['userId'] = $userId; return $userData; } ?>