What best practices should be followed when handling session variables in PHP scripts?

When handling session variables in PHP scripts, it is important to follow best practices to ensure security and reliability. This includes properly initializing sessions, validating and sanitizing input data, and using session_regenerate_id() to prevent session fixation attacks.

// Start or resume a session
session_start();

// Validate and sanitize input data
$username = filter_input(INPUT_POST, 'username', FILTER_SANITIZE_STRING);
$password = filter_input(INPUT_POST, 'password', FILTER_SANITIZE_STRING);

// Verify credentials and set session variables
if($username === 'admin' && $password === 'password'){
    $_SESSION['logged_in'] = true;
    $_SESSION['username'] = $username;
    
    // Regenerate session ID to prevent session fixation attacks
    session_regenerate_id();
} else {
    echo 'Invalid credentials';
}