Это, вероятно, действительно просто, но для меня сейчас не очевидно, почему это не работает.
Я устанавливаю переменную сеанса для индекса. php файл, помещаю значение в скрытое поле формы, а затем отправляю форму через jQuery и ajax. Все остальные данные формы есть, а скрытое входное значение - там. Но если я просто пытаюсь отобразить фактическую переменную сеанса, я ничего не получу, например:
$response['message'] = $_SESSION['csrf_token']; // no output
$response['message'] = $_POST['token']; // outputs the session variable value stored in the hidden field
По индексу. php
<?php
session_start();
$_SESSION['csrf_token'] = uniqid('', true);
?>
<input type="hidden" name="token" value="<?php echo $_SESSION['csrf_token']; ?>">
jQuery:
var form = $('#testForm').serialize();
$.ajax({
url: 'test',
type: 'POST',
dataType: 'json',
data: form,
beforeSend: function() {
// loading spinner etc.
}
})