Неверный токен CSRF. Попробуйте повторно отправить форму
Я получаю это сообщение об ошибке каждый раз, когда я пытаюсь отправить форму:
Символ CSRF недействителен. Повторите отправку формы
ОТВЕТЫ
Ответ 1
Вам нужно добавить _token в вашу форму i.e
Или просто добавьте << form_rest(form) >> перед закрывающим тегом формы.
Это отображает все поля, которые еще не были отображены для данного форма. Это хорошая идея всегда иметь это где-то внутри вашей формы так как это сделает скрытые поля для вас и сделает все поля, которые вы забыли чтобы сделать более очевидным (поскольку он отобразит поле для вас).
Ответ 2
Также вы можете увидеть это сообщение об ошибке, если в вашей форме много элементов.
Эта опция в php.ini вызывает проблему
Проблема в том, что поле _token пропускает запрос PUT (GET), поэтому вам нужно увеличить значение.
Также это касается больших файлов. Увеличение
Ответ 3
Это происходит потому, что формы по умолчанию содержат защиту CSRF, которая в некоторых случаях не нужна.
Вы можете отключить эту защиту CSRF в своем классе формы в методе getDefaultOptions следующим образом:
Если вы не хотите отключать защиту CSRF, вам необходимо отобразить поле защиты CSRF в вашей форме. Это можно сделать, используя << form_rest(form) >> в вашем файле вида, например:
<< form_rest(form) >> отображает все поля, которые вы не ввели вручную.
Ответ 4
Перед тегом поставьте:
Он автоматически вставляет другие важные (скрытые) входы.
Ответ 5
В дополнение к предложениям других вы можете получить ошибки токена CSRF, если ваша память сеанса не работает.
В недавнем случае мой коллега изменил «session_prefix» на значение, в котором было пробел.
Это сломало хранилище сеансов, что, в свою очередь, означало, что моя форма не могла получить токен CSRF из сеанса.
Ответ 6
У меня была эта проблема со странным поведением: очистка кеша браузера не исправила его, но очистка файлов cookie (то есть файлов cookie сеанса PHP) решила проблему.
Это нужно сделать после того, как вы проверили все другие ответы, включая проверку того, что у вас есть токен в поле ввода скрытой формы.
Ответ 7
У меня была эта ошибка в последнее время. Оказывается, мои настройки cookie были неправильными в config.yml. Добавление настроек cookie_path и cookie_domain в framework.session исправлено.
Ответ 8
Недавно я столкнулся с той же проблемой, и мой случай был чем-то, о чем здесь еще не говорилось:
Возможно, что-то не так с сеансом при использовании Apache и localhost в качестве домена. Если кто-то может уточнить комментарии, я был бы рад отредактировать этот ответ, чтобы включить больше деталей.
Ответ 9
Если вы не хотите использовать form_row или form_rest и хотите получить доступ к значению _token в шаблоне ветки. Используйте следующее:
Ответ 10
В моем случае у меня возникла проблема с аннотацией maxSize в сущности, поэтому я увеличил ее с 2048 по 2004 год.
надеюсь, что этот ответ поможет!
Ответ 11
Очевидно, что решение состоит в том, чтобы удалить дополнительный закрывающий тег и, возможно, выпить еще немного кофе.
Ответ 12
Я столкнулся с подобной проблемой. Убедившись, что поле токена действительно отображено (см. Принятый ответ), я проверил свои куки. В моем браузере Chrome было 2 (!) Файла cookie для этого домена, по-видимому, потому что я запускал приложение в том же домене, что и другое приложение, но с другим портом (т.е. Mydomain.com установил исходный файл cookie во время работы приложения с ошибками). на mydomain.com:123) Теперь, видимо, Chrome отправил неправильный файл cookie, поэтому защита CSRF не смогла связать токен с правильным сеансом.
Исправление: очистите все куки для данного домена, убедитесь, что вы не запускаете несколько приложений в одном домене с разными портами.
Ответ 13
У меня была та же ошибка, но в моем случае проблема заключалась в том, что мое приложение использовало несколько доменов первого уровня, в то время как cookie использовал один. Удаление cookie_domain: «.%domain%» из framework.session в config.yml приводило к тому, что cookie по умолчанию использовался для любого домена, на котором была форма, и это config.yml проблему.
Ответ 14
Это кажется проблемой при использовании bootstrap, если вы не передаете форму <