У меня есть форма с использованием CodeIgniter скобокCodeIgniter ошибка CSRF в форме представления
echo form_open('signup');
echo form_close();
и когда я представить его я получаю следующую ошибку
An Error Was Encountered
The action you have requested is not allowed.
НЕalways
но часто ...
, даже если скрытое поле ввода существует в форме:
<div style="display:none">
<input type="hidden" value="token name is here" name="csrf_token_name">
</div>
это также происходит по аналогичной форме() для входа в аккаунт
EDIT: HTML генерируется с помощью формы
<form accept-charset="utf-8" method="post" action="http://www.example.com/signup">
<div style="display:none">
<input type="hidden" value="93565fb5855d31af3d46bd655b11a4a6" name="csrf_token_name">
</div>
<input id="username" type="text" placeholder="Username" maxlength="20" value="" name="username">
<input id="email" type="text" placeholder="Email" value="" name="email">
<input id="password" type="password" placeholder="Password" value="" name="password">
<input id="submit" type="submit" value="Sign up" name="submit">
</form>
Пожалуйста, разместите код HTML, созданный для вашей формы. Благодарю. – fedeisas
@fedeisas обновленный пост – fxuser
Эта особая ошибка вызывается функцией csrf_show_error() в system/code/Security.php, когда токен CSRF в $ _COOKIE не соответствует вашему $ _POST ['csrf_token_name']. Здесь есть много вещей, которые могут вызывать проблемы: a) Вы делаете запрос AJAX, который может менять токен $ _COOKIE перед отправкой формы? б) Вы делаете междоменные запросы? Или, может быть, изменить протоколы? Если вы разместите ссылку с вашим приложением, возможно, я смогу увидеть, что происходит. – fedeisas