Exemplo n.º 1
1
 public function read($id)
 {
     $return = "";
     $row = $this->db->selectRow("SELECT * FROM ?_session WHERE id=?", $id);
     if ($row) {
         if ($row['modified'] + $row['lifetime'] > Am_Di::getInstance()->time) {
             return $row['data'];
         } else {
             $this->destroy($id);
         }
     }
     return $return;
 }
Exemplo n.º 2
0
 /**
  * Иниализирует пользователя, достаёт из базы некоторые его свойства
  * @param string $login Логин или e-mail
  * @param string $pass  SHA1 пароля
  * @return bool
  */
 public function initUser($login, $pass)
 {
     if (is_null(Core::getInstance()->db)) {
         Core::getInstance()->initDB();
     }
     $this->db = Core::getInstance()->db;
     // Если сохранённые в сессии данные о пользователе не совпадают с текущими
     if (isset($_SESSION['REMOTE_ADDR']) && isset($_SESSION['HTTP_USER_AGENT']) && ($_SESSION['REMOTE_ADDR'] !== $_SERVER['REMOTE_ADDR'] || $_SESSION['HTTP_USER_AGENT'] !== $_SERVER['HTTP_USER_AGENT'])) {
         // Уничтожаем пользователя
         $this->destroy();
     }
     //@FIXME Вероятно, стоит подключаться к базе лишь в том случае, если в сессии у нас пусто
     $sql = "SELECT id, user_name, user_login, user_pass, user_mail, getNotify,\n            DATE_FORMAT(user_created,'%d.%m.%Y') as user_created, user_active, user_service_mail,\n            user_currency_default, user_currency_list, user_type, time_zone\n            FROM users\n            WHERE (user_login = ? OR user_mail = ?) AND user_pass = ? AND user_new  = 0";
     $this->props = $this->db->selectRow($sql, $login, $login, $pass);
     if (count($this->props) == 0) {
         $this->destroy();
         return false;
     }
     $_SESSION['user'] = $this->props;
     $_SESSION['HTTP_USER_AGENT'] = @$_SERVER['HTTP_USER_AGENT'];
     $_SESSION['REMOTE_ADDR'] = @$_SERVER['REMOTE_ADDR'];
     // Вызывает инициализацию пользовательских категорий, счетов, денег
     $this->init();
     return $this->save();
 }
 /**
  * Возвращает количество операций по выбранному счёту
  * @FIXME Переписать на получение количества операций по всем счетам, что бы не дёргать по каждому счёту отдельно
  *
  * @param   int $accountId Ид счёта
  * @return  int
  */
 public function getNumOfOperationOnAccount($accountId)
 {
     $dateTo = new DateTime();
     $dateFrom = new DateTime();
     $dateFrom->sub(new DateInterval('P1M'));
     $sql = "\n            SELECT count(*) as op_count FROM operation\n            WHERE account_id=?\n                AND type <> ?\n                AND deleted_at IS NULL\n                AND updated_at BETWEEN ? AND ?\n            ";
     $count = $this->db->selectRow($sql, (int) $accountId, Operation::TYPE_BALANCE, $dateFrom->format('Y-m-d H:i:s'), $dateTo->format('Y-m-d H:i:s'));
     return $count['op_count'];
 }
Exemplo n.º 4
0
 public function insert(array $values, $returnInserted = false)
 {
     $this->_db->query("INSERT INTO {$this->_table} SET ?a", $values);
     return $returnInserted ? $this->_db->selectRow("SELECT * FROM {$this->_table} WHERE ?#=LAST_INSERT_ID()", $this->_key) : $this->_db->selectCell("SELECT LAST_INSERT_ID()");
 }
Exemplo n.º 5
0
 /**
  * Возвращает операцию по финансовой цели из базы данных
  * @param $target_id int
  * @return array mixed
  */
 public function getTargetOperation($target_id)
 {
     return $this->db->selectRow("SELECT tb.id, tb.user_id, tb.money, t.category_id as cat_id, '' as transfer,\n            DATE_FORMAT(tb.date,'%d.%m.%Y') as date, t.id as tr_id, tb.bill_id, '' as drain, tb.comment as comment,\n            t.title as title, t.close\n        FROM `target_bill` tb\n        LEFT JOIN target t on tb.target_id = t.id\n        WHERE tb.id = ? AND tb.`user_id` = ?", $target_id, Core::getInstance()->user->getId());
 }
Exemplo n.º 6
0
 function getRecord($ip)
 {
     return $this->db->selectRow("SELECT *\n            FROM ?_failed_login\n            WHERE ip=? AND login_type=?", $ip, $this->loginType);
 }