What role does session management play in conjunction with setting cookies in PHP, and how can they be effectively integrated for user authentication purposes?
Session management is crucial for maintaining user authentication in PHP applications. By using sessions to store user data securely on the server, we can prevent sensitive information from being exposed in cookies. To integrate session management with setting cookies for user authentication, we can store a unique session ID in a cookie on the user's browser and use that ID to retrieve user data from the server.
<?php
// Start the session
session_start();
// Set a session variable for user authentication
$_SESSION['user_id'] = 123;
// Generate a unique session ID and store it in a cookie
$session_id = session_id();
setcookie('session_id', $session_id, time() + 3600, '/');
// Retrieve user data using the session ID
if(isset($_COOKIE['session_id'])) {
session_id($_COOKIE['session_id']);
session_start();
$user_id = $_SESSION['user_id'];
echo "User ID: " . $user_id;
} else {
echo "User not authenticated";
}
?>