Я использую точный код, взятый отсюда: 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, и я работаю над этой проблемой уже третий день =(.
Буду признателен за любую помощь или подсказку в этом. Спасибо!
clear cookies of your firefox(not all, just the domain you are working on)
, а затем перейдите на страницу. ДАЛЕЕuse private browsing for testing purpose
- person Karan Thakkar   schedule 12.12.2014