当我应用此代码时:
class ContactoForm extends BaseContactoForm
{
public function configure()
{
$this->addCSRFProtection(rand(1, 1000));
}
}
然后我去action.php一个模块:
$this->form = new ContactoForm();
该字段不会更改_csrf_token:
刷新1:
<input type="hidden" id="contacto__csrf_token" value="d6e64fcc34a99c1c90dd95eef945e564" name="contacto[_csrf_token]">
刷新2:
<input type="hidden" id="contacto__csrf_token" value="d6e64fcc34a99c1c90dd95eef945e564" name="contacto[_csrf_token]">
刷新N:
<input type="hidden" id="contacto__csrf_token" value="d6e64fcc34a99c1c90dd95eef945e564" name="contacto[_csrf_token]">
但是,如果我从动作中应用它:
$this->form = new ContactoForm();
$this->form->addCSRFProtection(rand(1, 1000));
如果你改变了
Refresh 1:
<input type="hidden" id="contacto__csrf_token" value="22815f44f18e41947d7568c0771abda4" name="contacto[_csrf_token]">
Refresh 2:
<input type="hidden" id="contacto__csrf_token" value="38bfae0a71a79d16b39ce943658f2700" name="contacto[_csrf_token]">
Refresh 3:
<input type="hidden" id="contacto__csrf_token" value="882c989dc95e40406b28200631cffc3d" name="contacto[_csrf_token]">
在symfony 1.2中,它有效。 现在在symfony 1.4中无效,请帮助我,谢谢。
答案 0 :(得分:-1)
我不能说我知道symfony,但是从你的例子中可以看出,当你创建一个新的ContactoForm实例时,没有调用configure()。尝试在ContactoForm的构造函数中显式调用它。
class ContactoForm extends BaseContactoForm {
public function __construct() {
parent::__construct(); // if there is a parent constructor
$this->configure();
}
public function configure() {
$this->addCSRFProtection(rand(1, 1000));
}
}