У меня возникает эта странная проблема со свежей установкой Symfony 3.0.1. Я создал новый CRUD-контроллер с формой PostType, который содержит URL-адрес и заголовок. Ничего особенного.
Форма отображается как ожидалось. Он содержит как поле моего поля, так и поле заголовка. Внутри формы также отображается скрытое поле ввода _token.
При отправке этой формы я все время получаю следующую ошибку:
Неверный токен CSRF. Повторите отправку формы.
Таким образом, токен добавляется в форму, он содержит значение, у меня есть постоянное значение cookie сессии PHP, это просто, что этот токен недействителен.
Я искал другие ответы, но подобные вопросы вызваны отсутствием входного сигнала.
Эта проблема также встречается в Symfony 3.0.2 / 3.0.3.
В моем случае это было то, что папка var/sessions/
не была доступна для записи. По умолчанию используется var / session, который устанавливается в config.yml.
session: # http://symfony.com/doc/current/reference/configuration/framework.html#handler-id handler_id: session.handler.native_file save_path: "%kernel.root_dir%/../var/sessions/%kernel.environment%"
Удостоверьтесь, что у вас есть var/ folders
доступный для записи.
chmod 775 -R var/sessions/ chmod 775 -R var/log/ chmod 775 -R var/cache/
У меня была аналогичная проблема с Symfony 3.2
Неверный токен CSRF. Повторите отправку формы.
Через несколько часов мы, наконец, обнаружили, что проблема связана с session.cookie_secure (https):
Наша производственная среда использует https, заставляя файлы cookie быть закреплены за https. В среде dev используется http. После перемещения dev с HTTP на HTTPS проблема была исправлена.
Кажется, это ошибка в версии symfony> 3.0, <3.0.3.
Как отметил @yellowmen, изменение параметра framework.session.save_path
в config.yml
устраняет проблему.
Ошибка также присутствует в версии 3.0.4. save_path: ~
работал для меня.
Я использую Symfony 3.2.1, и он работает на одной машине, но не на другой. Не знаю, почему.
@Shrihari его ответ привел меня к следующему решению.
В моем проекте также есть cookie_secure: true
. Я обновил config_dev.yml
и добавил cookie_secure: false
в файл.
framework: session: cookie_secure: false
Это сработало для меня.