SULI COMPANY | Научно-технический сайт Сулико Асабашвили » Программирование » VK (Вконтакте) » База данных пользователей приложения (ВК IFrame, jQuery)
Информация к новости
  • Просмотров: 2544
  • Автор: sulicompany
  • Дата: 15-07-2012, 22:18
 (голосов: 0)
15-07-2012, 22:18

База данных пользователей приложения (ВК IFrame, jQuery)

Категория: Программирование » VK (Вконтакте)


Способ 1
Подходит когда нужно обновить запись в базе при совершении какого-то действия, которое можно отловить с помощью javascript

1. Создаём базу в phpMyAdmin.
  1. CREATE TABLE IF NOT EXISTS `stat` (
  2.   `id` int(9) AUTO_INCREMENT,
  3.   `uid` int(9),
  4.   `last_date` int(10),
  5.   `visits` int(9) DEFAULT '1',
  6.   PRIMARY KEY  (`id`),
  7.   UNIQUE KEY `uid` (`uid`)
  8. ) ENGINE=MyISAM  DEFAULT CHARSET=utf8;


2. Создаём php-файл.
  1. <?php
  2. // данные доступа к базе данных
  3. $db_host="localhost";       // обычно не нужно изменять
  4. $db_user="user";        // имя пользователя БД
  5. $db_password="pass";        // пароль БД
  6. $db_name = "name";      // имя БД
  7. $table_name = "stat";       // имя таблицы статистики. Если вы не меняли его в запросе, создающем БД, то и здесь менять его не надо
  8.  
  9. // данные приложения
  10. $app_id = '743131'// id приложения
  11. $api_secret = 'qwertyuiopasdfghjklzxcvbnm'// защищенный ключ приложения
  12.  
  13.  
  14. $auth_key  = $_POST['auth_key'];
  15. $viewer_id = $_POST['viewer_id'];
  16.  
  17. $real_key = ($app_id."_".$viewer_id."_".$api_secret);
  18.  ($auth_key == $real_key){
  19.     // соединение с БД
  20.     ($db_host$db_user$db_password) or die (());
  21.     ($db_name) or die (());
  22.     ("SET NAMES 'utf8'");
  23.  
  24.     // Выполняем запрос: если пользователя с таким id ещё нет в БД, то добавляем, если есть, то обновляем запись, прибавляя одно посещение (`visits` = (`visits`+1))
  25.     $query = 'INSERT INTO `'.$table_name.'` (`uid`, `last_date`) VALUES ("'.$viewer_id.'","'.().'") ON DUPLICATE KEY UPDATE  `visits` = (`visits`+1), `last_date`="'.().'";';
  26.     $sql = ($query);
  27.      "OK";
  28. }
  29. ?>


3. Создаём html файл.
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2.  xmlns="http://www.w3.org/1999/xhtml">
  3.  http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. Untitled Document</title>
  5. <!-- подключаем jQuery -->
  6.  src="js/jquery-1.4.2.min.js" type="text/javascript"></script>
  7.  
  8.  src="http://vkontakte.ru/js/api/xd_connection.js?2"type="text/javascript"></script>
  9.  
  10.  type="text/javascript" charset="cp1251" >
  11. $(document).ready(function(){ // когда страница загрузится
  12.     VK.init(function() {
  13.         // получаем flashVars
  14.         var parts=document.location.search.substr(1).split("&");
  15.             var flashVars={}, curr;
  16.             for (i=0; i<parts.length; i++) {
  17.                 curr = parts[i].split('=');
  18.                 flashVars[curr[0]] = curr[1];
  19.             }
  20.    
  21.         // вытаскиваем viewer_id и auth_key из полученных переменных
  22.         var viewer_id = flashVars['viewer_id'];
  23.         var auth_key = flashVars['auth_key'];
  24.  
  25.     // отправляем post запрос, передаём viewer_id и auth_key
  26.     $.post('http://flapps.ru/iframe_stat/iframe_stat.php',  // заменяем на адерс своего скрипта
  27.             { "viewer_id": viewer_id, "auth_key": auth_key },   // передаваемые значения
  28.             function(data){         // функция после выполнения передачи данных
  29.                 $('#result').html(data);
  30.             });
  31.     });
  32.  
  33. });
  34. </script>
  35. </head>
  36.  id="result"></div>
  37. </body>
  38. </html>


Файл jquery-1.4.2.min.js находится в архиве с исходником, в конце этого урока.

4. Загружаем файлы на сервер.

5. Настраиваем приложение.
Включено
Тип: Iframe


6. Всё готово.




Способ 2
Подходит если надо обновить запись в базе при простом обращении к странице. Код писать в эту страницу.
  1. // данные доступа к базе данных
  2. $db_host="localhost";       // обычно не нужно изменять
  3. $db_user="user";        // имя пользователя БД
  4. $db_password="pass";        // пароль БД
  5. $db_name = "name";      // имя БД
  6. $table_name = "stat";       // имя таблицы статистики. Если вы не меняли его в запросе, создающем БД, то и здесь менять его не надо
  7.  
  8. // данные приложения
  9. $app_id = '743131'// id приложения
  10. $api_secret = 'qwertyuiopasdfghjklzxcvbnm'// защищенный ключ приложения
  11.  
  12.  
  13. $auth_key  = $_GET['auth_key'];
  14. $viewer_id = $_GET['viewer_id'];
  15.  
  16. $real_key = ($app_id."_".$viewer_id."_".$api_secret);
  17.  ($auth_key == $real_key){
  18.     // соединение с БД
  19.     ($db_host$db_user$db_password) or die (());
  20.     ($db_name) or die (());
  21.     ("SET NAMES 'utf8'");
  22.  
  23.     // Выполняем запрос: если пользователя с таким id ещё нет в БД, то добавляем, если есть, то обновляем запись, прибавляя одно посещение (`visits` = (`visits`+1))
  24.     $query = 'INSERT INTO `'.$table_name.'` (`uid`, `last_date`) VALUES ("'.$viewer_id.'","'.().'") ON DUPLICATE KEY UPDATE  `visits` = (`visits`+1), `last_date`="'.().'";';
  25.     $sql = ($query);
  26. }