не может вывести переменную сеанса в ответе json - PullRequest
0 голосов
/ 14 февраля 2020

Это, вероятно, действительно просто, но для меня сейчас не очевидно, почему это не работает.

Я устанавливаю переменную сеанса для индекса. 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.
                }
            })

1 Ответ

2 голосов
/ 14 февраля 2020

Вам просто нужно убедиться, что сессия запущена для каждого сценария.

session_start();
$response['message'] = $_SESSION['csrf_token'];
$response['message'] = $_POST['token'];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...