What are some best practices for handling user login sessions in PHP to ensure security and efficiency?

Issue: To ensure security and efficiency when handling user login sessions in PHP, it is important to use secure session handling techniques, such as using HTTPS, implementing CSRF protection, and properly validating user input.

// Start a secure session
session_start([
    'cookie_lifetime' => 86400, // Set session cookie lifetime to 1 day
    'cookie_secure' => true, // Only send cookies over HTTPS
    'cookie_httponly' => true, // Prevent access to cookies via JavaScript
]);

// Validate user input
$username = filter_input(INPUT_POST, 'username', FILTER_SANITIZE_STRING);
$password = filter_input(INPUT_POST, 'password', FILTER_SANITIZE_STRING);

// Implement CSRF protection
if ($_POST['token'] !== $_SESSION['token']) {
    // Handle CSRF attack
}

// Verify user credentials and set session variables
if ($username === 'admin' && $password === 'password') {
    $_SESSION['logged_in'] = true;
} else {
    // Handle incorrect credentials
}

// Regenerate session ID to prevent session fixation attacks
session_regenerate_id(true);