0

所以我用 Zend 框架在下面创建了一个表单,然后我将对其进行自定义。我的第一个问题是使用 csrf 哈希安全性时出现应用程序错误。但是,当我删除它们时,我得到的只是一个空白屏幕,只有在我删除 CPATCHA 保护时才能解决。谁能向我解释为什么?

我的表格:

class Application_Form_Clips extends Zend_Form
{

    public function init()
    {

        // Set the method for the display form to POST
        $this->setMethod('post');

        // Add an email element
        $this->addElement('text', 'email', array(
            'label'      => 'Your email address:',
            'required'   => true,
            'filters'    => array('StringTrim'),
            'validators' => array(
                'EmailAddress',
            )
        ));

        // Add the comment element
        $this->addElement('textarea', 'comment', array(
            'label'      => 'Please Comment:',
            'required'   => true,
            'validators' => array(
                array('validator' => 'StringLength', 'options' => array(0, 20))
                )
        ));

        // Add a captcha
        $this->addElement('captcha', 'captcha', array(
            'label'      => 'Please enter the 5 letters displayed below:',
            'required'   => true,
            'captcha'    => array(
                'captcha' => 'Figlet',
                'wordLen' => 5,
                'timeout' => 300
            )
        ));

        // Add the submit button
        $this->addElement('submit', 'submit', array(
            'ignore'   => true,
            'label'    => 'Sign Guestbook',
        ));

        // And finally add some CSRF protection
        $this->addElement('hash', 'csrf', array(
            'ignore' => true,
        ));

    }


}

我的控制器:

class AdminController extends Zend_Controller_Action
{

    public function init()
    {

        // get doctrine and the entity manager
        $this->doctrine = Zend_Registry::get('doctrine');
        $this->entityManager = $this->doctrine->getEntityManager();

        // get the users repository
        $this->indexVideos = $this->entityManager->getRepository('\ZC\Entity\Videos');
        $this->indexClips = $this->entityManager->getRepository('\ZC\Entity\Clips');

    }

    public function indexAction()
    {
        // action body
    }

    public function clipsAction()
    {

        // get a form
        $form = new Application_Form_Clips(); 
        $this->view->form = $form;

    }

    public function videosAction()
    {
        // action body
    }


}

我的观点:

<?php echo $this->form; ?>
4

1 回答 1

0

基本错误,我没有在我的 php.ini 中取消注释 session.pat

于 2012-08-15T09:37:07.877 回答