Создание базы пользователей приложения и ведение статистики

Только готовые уроки по использованию ВКонтакте API. Flash + PHP + API. НЕ IFrame!

Создание базы пользователей приложения и ведение статистики

Сообщение Александр » 11 янв 2010, 21:11

Создание базы пользователей приложения и ведение статистики посещений (php + mySQL)

Программирование на Action Script 3, в среде Adobe Flash CS4.
Программирование на PHP, в чём угодно, можно даже в блокноте.

Понадобится свой сервер с поддержкой php и mySQL.

Серверная часть
1. Заходим в phpMyAdmin.
Если не знаете как зайти в phpMyAdmin, то почитайте инструкции вашего хостера.

2. Переходим на вкладку SQL, и там где написано "Выполнить SQL-запрос(ы) к базе данных" пишем запрос, создающий базу:
  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;


Нажимаем ОК.

uid - ID пользователя
last_date - дата последнего посещения
visits - количество посещений

3. Создаём новый 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 = md5($app_id."_".$viewer_id."_".$api_secret);
  18. if ($auth_key == $real_key){
  19.     // соединение с БД
  20.     mysql_connect($db_host, $db_user, $db_password) or die (mysql_error());
  21.     mysql_select_db($db_name) or die (mysql_error());
  22.     mysql_query("SET NAMES 'utf8'");
  23.  
  24.     // Выполняем запрос: если пользователя с таким id ещё нет в БД, то добавляем, если есть, то обновляем запись, прибавляя одно посещение (`visits` = (`visits`+1))
  25.     $query = 'INSERT INTO `'.$table_name.'` (`uid`, `last_date`) VALUES ("'.$viewer_id.'","'.time().'") ON DUPLICATE KEY UPDATE  `visits` = (`visits`+1), `last_date`="'.time().'";';
  26.     $sql = mysql_query($query);
  27.     echo "OK";
  28. }
  29. ?>


Сохраняем этот файл как stat.php

Код прокомментирован. Если вам что-то не понятно, то можете спросить в этой теме.
Если вам ничего непонятно, то это значит, что вы просто не знаете PHP. Тогда используйте этот код без понимания, или начните учить PHP с чего-то более простого.

4. Если вы ещё не создавали crossdomain.xml и не загружали его на свой хостинг, то открываем блокнот, пишем в него код:
  1. <cross-domain-policy>
  2. <allow-access-from domain="*.vkontakte.ru" />
  3. <allow-access-from domain="*.vk.com" />
  4. </cross-domain-policy>


Сохраняем как crossdomain.xml

5. Загружаем файлы на сервер.
stat.php загружаем в любой каталог на сервере, crossdomain.xml - в корневой каталог сайта.


Приложение
1. Создаём новый документ AS3 и новый Main.as файл. Связываем их.
Если вы не знаете как подключить Main.as, то посмотрите как это было сделано в этом уроке topic9.html (Пункт 7).

2. В файле Main.as пишем код:
  1. package {
  2.     import flash.net.*;
  3.     import flash.display.*;
  4.  
  5.     public class Main extends Sprite {
  6.         public function Main():void {
  7.             // создание запроса
  8.             var stat_loader:URLLoader = new URLLoader();
  9.             var stat_request:URLRequest=new URLRequest("http://flapps.ru/stat.php");// заменяем на ссылку к вашему скрипту
  10.             stat_request.method=URLRequestMethod.POST;
  11.             // добавление параметров в запрос
  12.             var stat_vars:URLVariables = new URLVariables();
  13.             stat_vars['auth_key']=LoaderInfo(root.loaderInfo).parameters.auth_key;// auth_key из FlashVars
  14.             stat_vars['viewer_id']=LoaderInfo(root.loaderInfo).parameters.viewer_id;// ID просматривающего приложение
  15.             stat_request.data=stat_vars;
  16.             // выполнение запроса
  17.             stat_loader.load(stat_request);
  18.         }
  19.     }
  20. }


3. Создаём swf файл и загружаем его в контакт.

4. Проверяем настройки приложения.
Контейнер приложения: Без использования контейнера.

5. Проверяем как работает приложение.
Открываем его в браузере, ждем несколько секунд.
Заходим в phpMyAdmin, смотрим записи в созданной ранее таблице "stat". Если вы всё сделали верно, то увидите новую запись: Ваш id, дату посещения в UNIXTIME и количество посещений (1).
Можете ещё раз открыть приложение в браузере или обновить страничку с ним и посмотреть как обновится количество визитов в базе.

Исходник приложения с серверной частью Чтобы увидеть ссылку - зарегистрируйтесь

За это сообщение автора Александр поблагодарили - 9:
D_Koff, Dav023, gpv123, Nick Lisogor, paduchin, ukhov, Volgar, wypaa, ZukuZ
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
 
Сообщения: 3736
Зарегистрирован: 27 сен 2009, 17:45
Откуда: Санкт-Петербург
Благодарил (а): 113 раз.
Поблагодарили: 541 раз.

Чтобы убрать блок с рекламой, зарегистрируйтесь на форуме или войдите.

Google
 


Re: Создание базы пользователей приложения и ведение статистики

Сообщение romarius777 » 11 янв 2010, 22:06

Александр, спасибо))
romarius777

 
Сообщения: 24
Зарегистрирован: 03 ноя 2009, 16:30
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Создание базы пользователей приложения и ведение статистики

Сообщение wole » 12 янв 2010, 12:23

Thx
wole

 
Сообщения: 8
Зарегистрирован: 08 янв 2010, 07:45
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Создание базы пользователей приложения и ведение статистики

Сообщение VIP » 12 янв 2010, 22:43

Я обоссался от радости
VIP

 
Сообщения: 251
Зарегистрирован: 24 ноя 2009, 19:10
Благодарил (а): 23 раз.
Поблагодарили: 1 раз.

Re: Создание базы пользователей приложения и ведение статистики

Сообщение VIP » 12 янв 2010, 23:00

Всё супер
Последний раз редактировалось VIP 12 янв 2010, 23:10, всего редактировалось 1 раз.
VIP

 
Сообщения: 251
Зарегистрирован: 24 ноя 2009, 19:10
Благодарил (а): 23 раз.
Поблагодарили: 1 раз.

Re: Создание базы пользователей приложения и ведение статистики

Сообщение zagruzkaaa » 12 янв 2010, 23:08

еще бы сделали чтоб статистика выводилась в приложении :) буду благодарен :) хотя и сейчас благодарен))))))))))))
zagruzkaaa

 
Сообщения: 60
Зарегистрирован: 19 ноя 2009, 21:47
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Создание базы пользователей приложения и ведение статистики

Сообщение VIP » 13 янв 2010, 12:12

А нормально есле в БД last_date отображаеться как 1263368432
VIP

 
Сообщения: 251
Зарегистрирован: 24 ноя 2009, 19:10
Благодарил (а): 23 раз.
Поблагодарили: 1 раз.

Re: Создание базы пользователей приложения и ведение статистики

Сообщение psix55 » 13 янв 2010, 16:18

Да
Если хочешь помочь голодному, не давай ему рыбы, дай ему удочку.

За это сообщение автора psix55 поблагодарил:
kostya74
Аватара пользователя
psix55
Модератор
Модератор
 
Сообщения: 1004
Зарегистрирован: 09 дек 2009, 18:16
Благодарил (а): 17 раз.
Поблагодарили: 73 раз.

Re: Создание базы пользователей приложения и ведение статистики

Сообщение Александр » 13 янв 2010, 16:49

zagruzkaaa
PHP скриптом получай нужные данные из базы и выводи их в приложение, подгружая эти данные из этого скрипта. Пример здесь topic102.html

VIP
Написано же "дата посещения в UNIXTIME". Если не знаешь что это, то почитай в интернете.
Чтобы при выводе показать привычный вид даты, в запросе к базе используй FROM_UNIXTIME(last_date). Если понимаешь о чём я.
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
 
Сообщения: 3736
Зарегистрирован: 27 сен 2009, 17:45
Откуда: Санкт-Петербург
Благодарил (а): 113 раз.
Поблагодарили: 541 раз.

Re: Создание базы пользователей приложения и ведение статистики

Сообщение VIP » 14 янв 2010, 20:46

Ещё такой вопросик: как всё это сделать под контейнер или точнее почему оно не работает в контейнере?
VIP

 
Сообщения: 251
Зарегистрирован: 24 ноя 2009, 19:10
Благодарил (а): 23 раз.
Поблагодарили: 1 раз.

След.

Вернуться в Уроки по использованию ВКонтакте API



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0