Не работает аутиенфикация


 

   if($this->_identity->errorCode === UserIdentity::ERROR_NONE)

   {

     $duration = $this->rememberMe ? 3600*24*30 : 0; // 30 days

     Yii::app()->user->login($this->_identity,$duration);

     return true;

}

Вот в этом коде когда сайт был выложен на сервак перестала работать эта строчка:


Yii::app()->user->login($this->_identity,$duration);

На локалке все работает нормально. Работать перестала в смысле того что когда до нее доходит скрип прекращает обработку и появляется путая страница. Подскажите пожалуйста где стоит поискать проблему?

Я предполгаю что надо посмотреть на имена файлов (на их регистр) от класса с $_identity и права на них.

Аутентификация через базу?

emulatePrepare => true ?

версии пхп и мускуля?

Возможно что при работе с БД через PDO происходит креш самого пхп. У меня такое было, вылечилось следующим:

  • emulatePrepare => true для объекта БД

  • $statement->bindParam поменял на $statement->bindValue

  • обновление мускуля до 5.1

надо еще посмотреть на пхп версию, там в какой-то есть баг с PDO.

Возможно здесь другая проблема, смотри внимательно.

С базой работает он вроде нормально.


 $this->_identity = new UserIdentity($this->username,$this->password);

        $this->_identity->authenticate();


   if($this->_identity->errorCode === UserIdentity::ERROR_NONE)

   {

     $duration = $this->rememberMe ? 3600*24*30 : 0; // 30 days

     Yii::app()->user->login($this->_identity,$duration);

     return true;

   };

первые две строчи - там осуществляется поиск нужного логина и сравнение с паролем.

Сейчас стало ясно путем подставления echo что функция логин вообще не вызывается.

Он ведет себя так как будто объекта user нету, не был создан.