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