Вот моя форма:
<form novalidate action="<?php echo url_for('article/submit') ?>" method="POST">
<?php echo $form['title']->renderRow() ?>
<?php echo $form['content']->renderRow() ?>
<?php echo $form->renderHiddenFields() ?>
<input type="submit" value="Save"/>
</form>
И, глядя на сгенерированный HTML-источник, _csrf_token
IS фактически отображается.Вот мое действие:
public function executeSubmit(sfWebRequest $request)
{
$this->forward404Unless($request->isMethod('post'));
$request->checkCSRFProtection();
die('submitting post...');
}
Ошибка:
_csrf_token [CSRF attack detected.]
Даже в моем действии, если я сделаю var_dump($_POST); die;
, я получу:
Array
(
[title] => string(8) "My title"
[content] => string(10) "My Content"
[_csrf_token] => string(32) "<my token here>"
)
Тактокен csrf определенно отображается и правильно передается.Что я делаю не так?
Кроме того, есть ли где-нибудь документация для checkCSRFProtection()
?Документ API ничего не говорит об этом, кроме признания его существования.