Узнать когда пользователь онлайн и оффлайн

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в IFrame-приложениях (JavaScript, PHP и т.д)
Ответить
amwfilwj
Сообщения: 5
Зарегистрирован: 03 янв 2011, 18:45

Узнать когда пользователь онлайн и оффлайн

Сообщение amwfilwj »

Добрый вечер. Как мне узнать когда пользователь приложения стал онлайн , то есть он заходит на свою страницу, у него же в приложении он онлайн, не у его друзей а у него самого, тоже самое и когда он выходит.
Заранее спасибо!
Аватара пользователя
ukhov
Модератор
Модератор
Сообщения: 1343
Зарегистрирован: 04 янв 2011, 21:19

Re: Узнать когда пользователь онлайн и оффлайн

Сообщение ukhov »

не до конца понял, что ты хочешь.
когда пользователь онлайн и оффлайн - можно узнать только если он вошёл в приложение. по-мойму, вконтакте не даёт возможности узнать статус пользователя (online/offline), когда он не в приложении.
amwfilwj
Сообщения: 5
Зарегистрирован: 03 янв 2011, 18:45

Re: Узнать когда пользователь онлайн и оффлайн

Сообщение amwfilwj »

Жаль) Мне как раз именно это и нужно было.
AdultBiz
Сообщения: 11
Зарегистрирован: 08 янв 2011, 20:05

Re: Узнать когда пользователь онлайн и оффлайн

Сообщение AdultBiz »

как я сделал:


MySQL:

Код: Выделить всё

CREATE TABLE `session` (  `id_session` tinytext NOT NULL,  `putdate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',  `user` tinytext NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
PHP:

Код: Выделить всё

<?session_start();$id_session = session_id();  // Устанавливаем соединение с базой данных  if ( isset( $_SESSION[id] ) )    $user = $_SESSION[id];// $_SESSION[id] - это viewer_id  else    $user = '';  // Проверяем, присутствует ли такой id в базе данных  $query = "SELECT * FROM session            WHERE id_session = '".$id_session."'";  $res = mysql_query($query);  if ( $res ) {    // Если сессия с таким номером уже существует,    // значит пользователь online - обновляем время его    // последнего посещения    if( mysql_num_rows($res) > 0 ) {      $query = "UPDATE session SET putdate = NOW(), user = '".$user."'                WHERE id_session = '".$id_session."'";      mysql_query($query);    } else {      // Иначе, если такого номера нет - посетитель только что      // вошёл - помещаем в таблицу нового посетителя      $query = "INSERT INTO session              VALUES('".$id_session."', NOW(), '".$user."')";      mysql_query($query);    }  }   // Будем считать, что пользователи, которые отсутствовали  // в течении 20 минут - покинули ресурс - удаляем их  // id_session из базы данных  $query = "DELETE FROM session            WHERE putdate < NOW() -  INTERVAL '10' MINUTE";  mysql_query($query);?>
Ответить