Hi all!
I started using Yii and I'm trying to authenticate users by db table from login form, but i'm getting in trouble with find() function. This is my UserIdentity's class:
private $_id;
public function authenticate()
{
$username = strtolower($this->username);
$record=User::model()->find('LOWER(username)=?',array($username));
if($record===null)
$this->errorCode=self::ERROR_USERNAME_INVALID;
else if($record->password!==md5($this->password))
$this->errorCode=self::ERROR_PASSWORD_INVALID;
else
{
$this->_id=$record->id;
$this->setState('title', $record->title);
$this->errorCode=self::ERROR_NONE;
}
return !$this->errorCode;
}
public function getId()
{
return $this->_id;
}
I'm running the project in xdebug-mode (under Netbeans IDE) and i check $username is correct. ($username contains the same value i insert on the browser)
I go step by step and i see that, immediately after find() line, $record has 'username' and 'password' validated as void string and then that errorCode is equals to 2.
I tried using findByAttributes() function too, but there's the same problem. No exception, just 'Incorrect username or password.' message.
DB Connection works because i created 3 users using webapp. Moreover if there was a db connection error i would assume that there should be an error in logs.
I'm not really understanding: that find() is one of the first operation that i do in a Login Form.
I'm sorry for my english,
thanks!
PS. i'm using SQL Server 2008