php Readers Работа читателями class Readers extends Zend_Db_Table_Abst

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php
/**
* Readers
*
* Работа с читателями
*
*/
class Readers extends Zend_Db_Table_Abstract {
/**
* Имя таблицы
* @var string
*/
protected $_name = 'Readers';
...
/**
* Вход в систему
* @param string $email email читателя
* @param string $password пароль читателя
* @return bool
*/
public function login($email, $password)
{
// Получить экземпляр Zend_Auth
$auth = Zend_Auth::getInstance();
// Создаем Adapter для Zend_Auth, указывая ему где в БД искать email и пароль для сравнения
$authAdapter = new Zend_Auth_Adapter_DbTable($this->getAdapter(), 'Readers', 'email', 'password', 'MD5(?)');
$authAdapter->setIdentity($email)
->setCredential($password);
// Сохраняет результат проверки
$result = $auth->authenticate($authAdapter);
// Проверка
if($result->isValid()) {
// Можно записать в сессию некоторые поля но мы записываем все
$auth->getStorage()->write($authAdapter->getResultRowObject());
// Получить объект Zend_Session_Namespace
$session = new Zend_Session_Namespace('Zend_Auth');
// Установить время действия залогинености
$session->setExpirationSeconds(24*3600);
// Запомнить на долго в cookies
Zend_Session::rememberMe(24*3600*30);
return true;
}
return false;
}
...