$form->create('User', array('url'=>array
('controller'=>'users','action'=>'login')));

On Aug 23, 9:50 pm, 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
-~----------~----~----~----~------~----~------~--~---

Reply via email to