Я использую точный код, как это здесь: https://ellislab.com/codeigniter/user-guide/libraries/form_validation.html
Все это прекрасно работает, когда csrf_protection в конфигурационном файле имеет значение false. Но когда я устанавливаю значение true и отправляю форму, я получаю сообщение об ошибке:
An Error Was Encountered
The action you have requested is not allowed.
Я пытался запустить код на Chrome 39 и IE 8. Он работает на обоих. Но на Firefox 34 это не так.
Значит, что-то не так с Firefox 34? Я гуглил об этом, но ничего не нашел.
Затем я запустил еще несколько тестов того, что происходит с csrf_hash. я кладу log_message('info', $this->security->get_csrf_hash());
в контроллере. И я обнаружил, что когда я обновляю (запускаю) контроллер в Chrome и IE, csrf_hash не изменяется, он изменяется только тогда, когда я отправляю форму и сообщение отправляется обратно в контроллер. В Firefox csrf_hash меняется каждый раз, когда запускается контроллер.
В файле журнала, когда я отправляю свою форму в fireofx, последний журнал
[DEBUG - 2014-12-10 12:45:50 --> Input Class Initialized]
,
следующий должен быть
[DEBUG - 2014-12-10 12:45:50 --> CRSF cookie Set]
но это никогда не доходило до этого. Поэтому я предполагаю, что при отправке формы в firefox cookie crsf не хотят быть установленными. Почему в Firefox, а не в IE и Chrome?
Я новичок в Codeigniter, и я работаю над этой проблемой уже третий день = (.
Буду признателен за любую помощь или подсказку с этим. Спасибо!
Задача ещё не решена.
Других решений пока нет …