What are the best practices for handling session variables in PHP to ensure security and functionality?
To ensure security and functionality when handling session variables in PHP, it is important to properly sanitize and validate user input, use HTTPS to encrypt data transmission, regenerate session IDs to prevent session fixation attacks, and set appropriate session configuration settings.
// Start the session
session_start();
// Regenerate session ID to prevent session fixation attacks
session_regenerate_id(true);
// Set session configuration settings
ini_set('session.cookie_httponly', 1);
ini_set('session.use_only_cookies', 1);
ini_set('session.cookie_secure', 1); // Use HTTPS only
// Sanitize and validate user input before storing in session variables
$_SESSION['username'] = filter_var($_POST['username'], FILTER_SANITIZE_STRING);