вход с одного браузера

Главные вкладки

Аватар пользователя iNFerNo iNFerNo 24 июля 2010 в 17:26

Подскажите, как пользователям обычным (например все исключая роль админ и модератор) сделать так что бы они входили только с одного браузера, а то по 3-4 ника одинаковых светиться в присутствующих, ну или как нибудь объединять сесии... что ли

Комментарии

Аватар пользователя Sinkora Sinkora 24 июля 2010 в 22:17

"iNFerNo" wrote:
а то по 3-4 ника одинаковых светиться в присутствующих, ну или как нибудь объединять сесии... что ли

А зачем выводите в списке присутствующих дубли??? Неужели сложно сгруппировать выборку по "uid" или указать "DISTINCT", или еще как-нибудь...

Аватар пользователя Sinkora Sinkora 25 июля 2010 в 22:33

Я так обычно делаю:

$users_online = db_query('
    SELECT
      u.uid,
      u.name,
      u.access
    FROM
      {users} u
    WHERE
      u.uid <> 0
    AND
      u.uid <> 1
    AND
      u.access > %d
    AND
      u.status = 1
    ORDER BY u.access DESC'
,
    (time() - 900)
  );
Аватар пользователя Sinkora Sinkora 16 октября 2010 в 12:52

"iNFerNo" wrote:

И лучше еще кешировать это дело:

$cached = cache_get('page:now_online', 'cache_page');
$now = time();
$expire = $cached ? $cached->expire : 0;
if ($expire > $now) {
  return  $cached->data;
}
else {
  $users_online = db_query('
    SELECT
      u.uid,
      u.name,
      u.access
    FROM
      {users} u
    WHERE
      u.uid <> 0
    AND
      u.uid <> 1
    AND
      u.access > %d
    AND
      u.status = 1
    ORDER BY u.access DESC'
,
    ($now - 900)
  );
  //...
  // Оформляем полученные данные в нужном виде
  //...
  $output = 'Конечные темизированные данные';
  //Кешируем на 2 минуты
  cache_set('page:now_online', $output, 'cache_page',  $now + 120);
  return $output;
}