2010-08-19 73 views
1

我对此感到困惑。我有一个登录的动作,看起来像这样:ZF形式拒绝发布

public function loginAction() 
{ 
    $form = new Application_Form_Login; 
    $form->setAction("https://stackoverflow.com/users/login"); 

    $request = $this->getRequest(); 

    var_dump($request->isPost()); 
    if ($request->isPost() && $form->isValid($request->getPost())) { 
     // snipped code that is never reached anyway 
    } 

    $this->view->form = $form; 
} 

而且形式:

class Application_Form_Login extends Zend_Form 
{ 
    public function init() 
    { 
     $this->setMethod("post"); 

     $email = new Zend_Form_Element_Text("email"); 
     $email->addFilter("StringTrim") 
       ->addValidator("NotEmpty") 
       ->addValidator("EmailAddress") 
       ->setRequired(true) 
       ->setLabel("Email address"); 
     $this->addElement($email); 

     $password = new Zend_Form_Element_Password("password"); 
     $password->addFilter("StringTrim") 
       ->addValidator("NotEmpty") 
       ->setRequired(true) 
       ->setLabel("Password"); 
     $this->addElement($password); 

     $submit = new Zend_Form_Element_Submit("finish"); 
     $submit->setLabel("Login"); 
     $this->addElement($submit); 
    } 
} 

var_dump($request->isPost())总是返回false,但在大部分相同的动作它完美的作品!有任何想法吗?

+0

您确定要发布表单吗?我的意思是你点击提交,它会去登录控制器好吗? – Iznogood 2010-08-19 14:30:12

回答

1

我追查下来。如果用户未登录,我在/ users上重定向到/ users/login。我没有将Zend_Auth的结果保存在存储中,因此给我的印象登录无所事事。

POST http://localhost/users/login (302 Found) 
GET http://localhost/users 
GET http://localhost/users/login