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
-~----------~----~----~----~------~----~------~--~---