0

このコードを適用すると:

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]">

symfony1.2では動作しました。symfony 1.4では動作しません、助けてください、ありがとう。

4

1 に答える 1

-1

I can't say that I know symfony, but from your example it shows that configure() isn't getting called when you create a new instance of ContactoForm. Try calling it explicitly in the constructor of 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));
    }
}
于 2012-05-18T18:07:16.730 に答える