What potential pitfalls should be avoided when using session variables in PHP for language selection?

When using session variables in PHP for language selection, it is important to avoid relying solely on user input to set the language. This can lead to security vulnerabilities such as injection attacks. Instead, it is recommended to validate and sanitize the language selection before setting it in the session variable.

<?php
session_start();

$languages = ['en', 'es', 'fr']; // List of supported languages

if(isset($_POST['language']) && in_array($_POST['language'], $languages)) {
    $_SESSION['language'] = $_POST['language'];
} else {
    // Default language if no valid selection is made
    $_SESSION['language'] = 'en';
}
?>