My guess is that Auth component is doing it. If you are doing your own authentication you have to remove Auth from your list of components. And if you do want to use Auth ten you shouldn't do any of the authenticating stuff yourself.
/Martin On Aug 24, 6:50 am, liaogz82 <[email protected]> wrote: > Hi all, > > I dont know why but my password is always sent as null in $this->data, > which causes it to be unable to retrieve data for comparison. The > following below are my codes: > > login.ctp > <div class="login"> > <h2>Login</h2> > <?php echo $form->create('User', array > ('controller'=>'users','action'=>'login'));?> > <?php echo $form->input('User.username');?> > <?php echo $form->input('User.password',array > ('type'=>'password'));?> > <?php echo $form->submit('Login');?> > <?php echo $form->end(); ?> > </div> <?php > ?> > > users_controller.php > function login() > { > $this->layout = 'login'; > if(!empty($this->data)) > { > $user = $this->User->validateLogin($this->data['User']); > if($user != '') > { > $this->Session->write('User', $user); > $this->Session->setFlash('You\'ve successfully logged > in.'); > $this->redirect(array('controller'=>'subscribers', > 'actions'=>'index')); > } > else > { > $this->Session->setFlash(json_encode($this->data)); > $this->redirect(array > ('controller'=>'users','actions'=>'login')); > } > } > } > > function logout() > { > $this->Session->destroy('user'); > $this->Session->setFlash('You\'ve successfully logged out.'); > $this->redirect($this->Auth->logout()); > } > > user.php > class User extends AppModel { > > var $name = 'User'; > // var $actsAs = array('Acl' => array('requester')); > var $useDbConfig = 'tracksdb'; > > function parentNode() { > } > > /* To get the login ID of staff > function getStaffID() > { > return "gangzheng"; > /* to change. The ID should be gotten from session > }*/ > > //The Associations below have been created with all possible keys, > those that are not needed can be removed > var $belongsTo = array( > 'Group' => array('className' => 'Group', > 'foreignKey' => 'group_id', > 'conditions' => '', > 'fields' => '', > 'order' => '', > 'counterCache' => ''), > ); > > var $hasMany = array( > 'Login' => array('className' => 'Login', > 'foreignKey' => 'user_id', > 'conditions' => '', > 'fields' => '', > 'order' => '', > 'limit' => '', > 'offset' => '', > 'dependent' => '', > 'exclusive' => '', > 'finderQuery' => '', > 'counterQuery' => ''), > ); > > function validateLogin($data) > { > $user = $this->find(array('username' => $data['username'], > 'password' => sha1($data['password'])), array('id', 'username')); > if(empty($user) == false) > return $user['User']; > return false; > } > > } > > The flash message kept showing {"User": > {"username":"gangzheng","password":null}}. So i am not sure what is > going on. the password field is always set to null no matter what i > type into the password field. Please help. Thanks > > Gangzheng --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "CakePHP" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/cake-php?hl=en -~----------~----~----~----~------~----~------~--~---
