2016-07-21 11 views
-1

ログインボタンをクリックすると、条件が直接cakephpの他の部分に入っているので空の入力値を取っています。以下はログインボタンをクリックするとcakephpのelse部分に直接入ります

コードです:

if($this->request->is('post')) 
     { 
      if(isset($this->data['Loginsubmit'])) 
      { 

      if($this->data['Reg']['email']=='') 
       { 
        echo 'hii'; 
       } 
       elseif($this->data['Reg']['password']=='') 
       { 
         echo "hi"; 
       } 
       else 
       { 
        $result = $this->Reg->find('list',array('conditions'=>array('email'=>$this->request->data['Reg']['email'], 'password'=>$this->request->data['Reg']['password'],'status'=>1))); 
       pr($result); 
       if(!empty($result)){ 
        $email=$this->request->data['Reg']['email']; 
        $this->Session->write('Reg', $result); 
         $this->redirect(array('action' => 'login'));}    
     else{$this->Flash->error("invalid"); 
       } 
       $result = $this->Reg->find('all'); 
       $this->set('results',$result); 
       } 
+0

print_r($ this-> data);どの値が送信フォームから取得されているかを確認します。 –

+0

お返事ありがとうございました –

+0

ありがとうございます:) –

答えて

0

こんにちは。このようにしてください:

public function beforeFilter() { 
parent::beforeFilter(); 
// Allow users to register and logout. 
$this->Auth->fields = array(
'email' => 'email', 
'password' => 'secretword' 
); 
} 

public function login() { 
if(!$this->Auth->Reg('id')){   
$this->layout="login";   
if ($this->request->is('post')) { 
App::uses('Validation', 'Utility'); 
$user=0; 
if(Validation::email($this->request->data['email'])) 
$user = $this->Reg->find('first', array(
'conditions' => array( 'Reg.email' => $this->request->data['email'], 
),'recursive' => -1  ));   

if($user) 
{ 
$this->request->data['email']=$user['Reg']['email']; 
} 
$this->request->data=array('Reg'=>$this->request->data); 

if ($this->Auth->login()) {   
return $this->redirect($this->Auth->redirectUrl()); 
}    

$this->Session->setFlash(__('Invalid username or password, try again'));    

} 
} 
else 
{ 
return $this->redirect($this->Auth->redirectUrl()); 
} 

} 

あなたのフィードバックを共有し&確認してください。

関連する問題