Hi,
I am making a user registration and login system in cakephp without using Auth component.
The registration is working fine except the password field.Its not getting encrypted while inserting in the db.
Registration View:
[code=php]<?php
// create the form inputs
echo $form->input(‘fname’, array(‘label’=>’First Name: *’));
echo $form->input(‘lname’, array(‘label’=>’Last Name: *’));
echo $form->input(‘username’, array(‘label’=>’Username: *’));
echo $form->input(‘password’, array(‘label’=>’Password: *’));
echo $form->input(’email’, array(‘label’=>’Email: *’));
?>
User model :
[code=php]
var $validate = array(
// name field
‘fname’ => array(
// must not be empty
‘rule’ => VALID_NOT_EMPTY,
// error message to display
‘message’ => ‘Please enter First Name’
),
‘lname’ => array(
// must not be empty
‘rule’ => VALID_NOT_EMPTY,
// error message to display
‘message’ => ‘Please enter Last Name’
) ,
‘username’ => array(
‘rule-emp’ => array(
‘rule’ => VALID_NOT_EMPTY,
‘message’ => ‘Please enter username’ ,
‘last’ => true
),
‘isUnique’ => array(
‘rule’ => ‘isUnique’,
‘required’ => true,
‘message’ => ‘Username is already registered’
)
) ,
‘password’ => array(
‘rule-1’ => array(
‘rule’ => VALID_NOT_EMPTY,
‘message’ => ‘Please enter password’ ,
‘last’ => true
),
‘rule-2’ => array(
‘rule’ => array(‘between’, 5, 15),
‘message’ => ‘Pasword should be between 5 and 15 characters’
)
,
‘rule-3’ => array(
‘rule’ => ‘alphaNumeric’,
‘message’ => ‘Pasword should be characters and numerics only’
)
),
’email’ => array(
‘rule-1’ => array(
‘rule’ => VALID_NOT_EMPTY,
‘message’ => ‘Please enter email’ ,
‘last’ => true
),
‘rule-2’ => array(
‘rule’ => ’email’,
‘message’ => ‘Incorrect email id’
),
‘isUnique’ => array(
‘rule’ => ‘isUnique’,
‘required’ => true,
‘message’ => ’email is already registered’
)
)
);
User controller :
[code=php]function register() {
// set layout file
$this->pageTitle = ‘Video Site registration’;
$this->layout = ‘view’;
// if the form data is not empty
if (!empty($this->data)) {
$this->User->create();
if ($this->User->save($this->data)) {
// set a flash message
$this->Session->setFlash(‘The user has been saved’, ‘flash_good’);
$this->redirect(array(‘action’=>’register’));
} else {
// set a flash message
$this->Session->setFlash(‘The user could not be saved. Please, try again.’, ‘flash_bad’);
}
}
}
When I am writing this line
$this->data[‘User’][‘password’] = md5($this->data[‘User’][‘password’] ); just after the $this->User->create(); then the validation for password (between 5 and 15) is not working.
Please suggest me what should I do now?