【发布时间】:2014-04-02 06:26:47
【问题描述】:
我一直在寻找年龄,但我又被卡住了,当我为与数据库中密码匹配的用户输入正确的密码时,我的代码没有回显“ok”。
其他一切都很好,我不确定我是否错过了任何愚蠢的事情;我可能有,所以为愚蠢道歉:)
PHP:
class User {
private $_db, $data;
public function __construct($user = null) {
$this->_db = DB::getInstance();
}
public function create($fields = array()) {
if(!$this->_db->insert('users', $fields)) {
throw new Exception('There was a problem registering');
}
}
public function find($user = null) {
if($user) {
$field = (is_numeric($user)) ? 'id' : 'username';
$data = $this->_db->get('users', array($field, '=', $user));
if($data->count()) {
$this->_data = $data->first();
return true;
}
}
return false;
}
public function login($username = null, $password = null) {
$user = $this->find($username);
if($user) {
if($this->data()->password === Hash::make($password, $this->data()->salt)) {
echo 'ok';
}
}
return false;
}
private function data() {
return $this->_data;
}
}
【问题讨论】:
-
你检查你的 PHP 日志了吗?
-
您似乎使用不同的哈希函数进行注册和登录,或者您的凭据毕竟是错误的。