What are the potential drawbacks of using session variables to verify form submissions in PHP?

Using session variables to verify form submissions in PHP can potentially lead to security vulnerabilities such as session fixation attacks. To mitigate this risk, it is recommended to use CSRF tokens in addition to session variables to ensure that the form submission is legitimate.

// Generate CSRF token
$csrf_token = bin2hex(random_bytes(32));
$_SESSION['csrf_token'] = $csrf_token;

// Include CSRF token in form
<input type="hidden" name="csrf_token" value="<?php echo $csrf_token; ?>">

// Verify CSRF token on form submission
if(isset($_POST['submit'])) {
    if($_POST['csrf_token'] === $_SESSION['csrf_token']) {
        // Form submission is valid
    } else {
        // Invalid form submission
    }
}