What best practices should be followed when storing user data in PHP sessions for retrieval across multiple pages?

When storing user data in PHP sessions for retrieval across multiple pages, it is important to properly sanitize and validate the data to prevent security vulnerabilities. Additionally, sensitive data should be encrypted before storing it in the session to protect user privacy. Finally, make sure to unset or destroy the session data once it is no longer needed to prevent unauthorized access.

// Start the session
session_start();

// Sanitize and validate user data
$userData = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);

// Encrypt sensitive data before storing in session
$_SESSION['user_data'] = openssl_encrypt(json_encode($userData), 'AES-256-CBC', 'secret_key', 0, '16charIV');

// Unset or destroy session data when no longer needed
unset($_SESSION['user_data']);