What are the advantages and disadvantages of using session variables versus cookies for user authentication in PHP scripts?

When it comes to user authentication in PHP scripts, session variables are generally considered more secure than cookies. Session variables store data on the server side, making it harder for malicious users to tamper with them. Cookies, on the other hand, store data on the client side and can be easily manipulated. However, session variables can be more resource-intensive as they require server storage for each active session, whereas cookies are stored on the client side and do not require server resources.

// Using session variables for user authentication
session_start();

$_SESSION['user_id'] = $user_id;
$_SESSION['username'] = $username;

// Check if user is authenticated
if(isset($_SESSION['user_id']) && isset($_SESSION['username'])) {
    // User is authenticated
} else {
    // User is not authenticated
}