При первом открытии (запуске) IFrame приложения контакт передает в него кучу переменных которые можно, и очень удобно использовать в своем приложении.
Но при этом существует одна немаловажная проблема: При переходе между страницами приложения переменные уже не передаются..
На форуме уже есть тема с решением данной проблемы http://flapps.ru/forum/topic1117.html, но так как я как и многие другие только изучаю PHP описанный там способ Показался мне слишком громоздким и сложноватым..
Перечитывая кучи (флуда) комментов на разных форумах из кучи шлака нашел скомбинировал и пришел к болие легкому решению даной задачи
Нам понадобится всего пару строчек кода и начальные знания PHP
Создаем файл start.php с следуйщим кодом:
Код: Выделить всё
<?phpsession_start(); // включаем сесии$_SESSION = $_GET; // записываем переменные в сесию /*Тут можно добавить код, который будет вести статистику, добавлять в базу нового пользователя и т.д.*/ header( 'Location: index.php' ); // Переадресация на главную страницу приложения?>
Код: Выделить всё
<?php session_start(); //включаем сесии //дальше ваш код ?>
Вот собственно и все, просто и красиво
Дальше в любом месте вы можете вытянуть нужные вам даные ну например вот так:
Код: Выделить всё
$viewer_id = $_SESSION['viewer_id'];
ЛОВИТЕ МЕГА БОНУС
Заносим пользователя в базу данных:
И так:
1. Создаём базу в phpMyAdmin.
Код: Выделить всё
CREATE TABLE IF NOT EXISTS `user` ( `uid` int(20) NOT NULL, `first_name` varchar(30) NOT NULL, `last_name` varchar(30) NOT NULL, `data_reg` date NOT NULL, `time_reg` time NOT NULL, `data_visit` date NOT NULL, `time_visit` time NOT NULL, `visits` int(11) NOT NULL DEFAULT '1', PRIMARY KEY (`uid`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Теперь мы имеем таблицу с такими полями:
uid - ИД пользователя
first_name - имя пользователя
last_name - фамилия
data_reg - дата регистрации (первого входа в приложение)
time_reg - время регистрации (первого входа в приложение)
data_visit - Дата последнего входа в приложение
time_visit - время последнего входа в приложение
visits - количество посещений (запусков) приложения
2. Создаём php-файл Который проверяет есть ли пользователь с таким ид в базе данных:
если есть то обновляем дату и время последнего визита и добавляем 1 к посещениям, если нет заносим его в базу данных
Файл start.php
Код: Выделить всё
<?phpsession_start();$_SESSION = $_GET; //////////////////////////////////////////////////////// $db_host='localhost'; // имя хоста сервера базы данных обычно не нужно изменять$db_database="name"; //имя базы данных$db_username="root"; //имя пользователя БД$db_password=""; // пароль$table_name = "user"; // имя таблицы статистики. Если вы не меняли его в запросе, создающем БД, то и здесь менять его не надо $viewer_id = $_GET['viewer_id']; //Записываем ИД пользователя в переменную $viewer_id //------------------ Получаем ИМЯ и ФАМИЛИЮ -------------------------------//$resp = file_get_contents('https://api.vk.com/method/users.get?user_id='.$viewer_id.'&v=5.2'); // Посылаем запрос к API Вконтакте и записываем ответ в переменную $resp$data = json_decode($resp, true); //Декодируем получиный ответ и записываем в переменную $data foreach($data["response"] as $response); //Получиные данные записываем в масив $response $first_name = $response['first_name']; // Записываем ИМЯ в переменную $first_name $last_name = $response['last_name']; //Записываем ФАМИЛИЮ в переменную $last_name//-----------------------------------------------------------------------------// if ($viewer_id){ // соединение с БД mysql_connect($db_host, $db_username, $db_password) or die (mysql_error()); // подключиться к базе данных mysql_select_db($db_database) or die (mysql_error()); //выбираем имя базы данных // Выполняем запрос: если пользователя с таким id ещё нет в БД, то добавляем, если есть, то обновляем запись, обновляя Время (data_visit = NOW(), time_visit = NOW()) и прибавляя одно посещение (`visits` = (`visits`+1)) $query = 'INSERT INTO '.$table_name.' (uid, first_name, last_name, data_reg, time_reg, data_visit, time_visit) VALUES ("'.$viewer_id.'", "'.$first_name.'", "'.$last_name.'", NOW(), NOW(), NOW(), NOW() ) ON DUPLICATE KEY UPDATE visits = (visits+1), data_visit = NOW(), time_visit = NOW()'; $sql = mysql_query($query);} ////////////////////////////////////////////////////////////////////////// header( 'Location: index.php' ); // Переадресация на главную страницу приложения?>
Вроде все, надеюсь ничего не забыл. Благодарю за внимание, приятного пользования