在AppController的確定包括這樣的功能:
public function beforeFilter() {
Security::setHash('sha1');
}
你是說你的註冊是sha1
現在在你的數據庫中你的字段'password'應該是VARCHAR(30)不能超過30個字符。
而且我不舒爾這個線register.ctp,並有一個逗號更後真這是一個錯誤
<?php echo $this->Form->create('User',array('type' => 'file','novalidate' => true,));?>
爲什麼是一個文件?我的事情,只是應該是這個
<?php echo $this->Form->create('User');?>
和NOVALIDATE可以與真正的數據庫進行初始化,則只能升級到新的價值
確定。 我告訴過你現在必須在AppController中添加什麼,現在將其添加到UserController中。這就是當你查看錶單以多次存儲用戶信息以使用sha1加密密鑰時所發生的情況,這是我們在註冊時存儲在數據庫中的加密。但是,登錄時可能會發送另一種類型的加密,並且驗證數據進行驗證比較a(sha1(密碼註冊)==其他加密(登錄密碼))時,通常情況並不相同,這是因爲特定的beforeFilter在加密密鑰中。
加入這一點,並改變用戶控制器:
public function beforeFilter() {
parent::beforeFilter();
}
public function login() {
if ($this->request->is('post')) {
if ($this->Auth->login()) {
if($this->Auth->user('activated')==1){
$this->Session->setFlash(__('Bienvenido, '. $this->Auth->user('username')));
return $this->redirect($this->Auth->redirectUrl());
}else{
$this->Session->setFlash(__('Your Email is not verified. Please verify and try again.'));
$this->redirect($this->Auth->logout());
}
} else {
$this->Session->setFlash(__('Invalid Username or Password please try again'));
}
}
}
他是對的!在模型中使用$ this->數據,在控制器中使用$ this-> request-> data! 功能登錄(){ \t如果($這個 - >請求 - >是( '後')){ \t \t如果($這個 - > Auth->登錄()){ \t \t \t返回$此 - >重定向($這 - > Auth->重定向()); \t} \t \t $ this-> Session-> setFlash('Invalid Username or Password please try again'); \t} } – 2014-10-17 20:25:23
Controller :: $ data'仍然可用([** via magic properties **](https://github.com/cakephp/cakephp/blob/2.5.4/lib/Cake/Controller) /Controller.php#L395))以達到向後兼容的目的。 – ndm 2014-10-17 21:09:54