2014-01-07 3 views
1

에서 폼 장식 작동하지 그때 $this->_request->getPost('Login')포스트 방법은 젠드 프레임 워크

//$this->setDecorators(array(array('viewScript', array('viewScript' => 'admin/login_decorator.phtml')))); 

$this->_request->getPost 양식과 잘 작동의 값을 얻을 수 없습니다하지만 폼 장식과 함께입니다. 다음은

은 ...

형태/

<?php 

class Application_Form_LoginForm extends Zend_Form { 

    public function __construct($options = null) { 
     parent::__construct($options); 
     $this->setMethod('post'); 
     $name = new Zend_Form_Element_Text('username'); 
     $name->removeDecorator('Label') 
       ->removeDecorator("HtmlTag") 
       ->addErrorMessage("Please Enter username") 
       ->setRequired(true); 
     $password = new Zend_Form_Element_Password('password'); 
     $password->removeDecorator('Label') 
       ->removeDecorator("HtmlTag") 
       ->addErrorMessage("Please Enter password") 
       ->setRequired(true); 
     $submit = new Zend_Form_Element_Submit('Login'); 
     $submit->removeDecorator('Label') 
       ->removeDecorator("HtmlTag"); 

     $this->addElements(array($name, $password, $submit)); 
     //$this->setDecorators(array(array('viewScript', array('viewScript' => 'admin/login_decorator.phtml')))); 
    } 

} 

보기/스크립트/관리/login_decorator.phtml

<link href="<?php echo $this->baseUrl(); ?>/css/login.css" media="screen" rel="stylesheet" type="text/css"> 
<section class="container"> 
    <div class="login"> 
     <h1>Login to Administrator</h1> 
     <form action="" method="post" enctype="application/x-www-form-urlencoded"> 
     <p><input type="text" name="username" value="" placeholder="Username"></p> 
     <p><input type="password" name="password" value="" placeholder="Password"></p> 
     <p class="submit"><input type="submit" name="commit" value="Login"></p> 
     </form> 
    </div> 

    <div class="login-help"> 
     <p>Forgot your password? <a href="#">Click here to reset it</a>.</p> 
    </div> 
    </section> 

login.phtml

<?php echo $this->form; ?> 
loinForm.php 파일입니다

adminControlle r.php loginAction()

public function loginAction() { 
     $mysession = new Zend_Session_Namespace('Admin'); 
     if (isset($mysession->adminName)) { 
      $this->_redirect('/admin'); 
     } 
     $form = new Application_Form_loginForm(); 
     $this->view->form = $form; 
     //Preform Admin login action   

     if ($this->_request->getPost('Login')) { 
      $formData = $this->_request->getPost(); 
      if ($form->isValid($formData)) { //If form data is valid 
       $name = $this->_request->getPost('username'); 
       $password = $this->_request->getPost('password'); 
       /*     * **Creating object of model adminlogin class**** */ 
       $adminLoginObj = new Application_Model_Adminlogin(); 
       $fetchResult = $adminLoginObj->checkAdminAuthority($name, $password); 
       if (count($fetchResult) > 0) { 
        $mysession->adminName = $name; 
        $this->_redirect('/admin/'); 
       } else { 
        $mysession->failLogin = "Invalid Username or Password!"; 
        $this->_redirect('/admin/login'); 
       } 
      } 
     } 
    } 

이 문제의 이유를 찾을 수 없습니다. 문제를 해결하도록 도와주세요. 미리 감사드립니다.

+0

컨트롤러 동작에 문제가있을 수 있습니다. 여기에 여기에 추가하십시오. –

답변

0

컨트롤러 에 을 확인하시기 바랍니다 ($이 -> _ 요청 -> getPost ('로그인'))의 경우 {...}

그리고 뷰에서

/스크립트/관리/login_decorator.phtml

<input type="submit" name="commit" value="Login"> 

필드 이름이 작업과 일치하지 않습니다.

적절히 확인하십시오. 이게 당신을 도울 수 있기를 바랍니다.

+0

작동 중입니다. 감사합니다. 시간과 노력을 절약했습니다. –