Получение значения переменной в php из AS3

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в Flash-приложениях (ActionScript)
Ответить
Аватара пользователя
Ugly
Сообщения: 16
Зарегистрирован: 13 янв 2013, 11:03

Получение значения переменной в php из AS3

Сообщение Ugly »

Доброго времени суток.
Если говорить более развернуто - вопрос будет звучать скорее "запрос в MySQL из PHP с учетом переменной из AS3". Все равно несколько каряво звучит, но все же.
Вот для начала рабочий код AS (точнее, его отрывок):

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

                // создание запроса            var stat_loader:URLLoader = new URLLoader();            var stat_request:URLRequest = new URLRequest("http://kurutah.da.xfes.ru/stat.php");            stat_request.method = URLRequestMethod.POST;                        // добавление параметров в запрос            var stat_vars:URLVariables = new URLVariables();            stat_vars['auth_key'] = LoaderInfo(root.loaderInfo).parameters.auth_key;            stat_vars['viewer_id'] = LoaderInfo(root.loaderInfo).parameters.viewer_id; // ID просматривающего приложение                        stat_request.data = stat_vars;            // выполнение запроса            stat_loader.load(stat_request);                        loader = new URLLoader();            var request:URLRequest = new URLRequest('http://kurutah.da.xfes.ru/stat.php');            loader.addEventListener(Event.COMPLETE, onComplete);            loader.load(request);                private function onComplete(e:Event):void        {            // выводим полученные данные в поле chislo            chislo.chislo.text = loader.data;                } 
А вот код php:

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

 <?phpheader("Expires: Mon, 26 Jul 1997 05:00:00 GMT");header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");header("Cache-Control: no-cache, must-revalidate");header("Cache-Control: post-check=0,pre-check=0", false);header("Cache-Control: max-age=0", false);header("Pragma: no-cache"); // данные доступа к базе данных$db_host="///";$db_user="///";$db_password="///";$db_name = "kurutah_base";$table_name = "stat"; // данные приложения$app_id = '///'; // id приложения$api_secret = '///'; // защищенный ключ приложения  $auth_key  = $_POST['auth_key'];$viewer_id = $_POST['viewer_id']; $my_id='///'; //представим что тут мой айдишник $real_key = md5($app_id."_".$viewer_id."_".$api_secret);     // соединение с БД    mysql_connect($db_host, $db_user, $db_password) or die (mysql_error());    mysql_select_db($db_name) or die (mysql_error());    mysql_query("SET NAMES 'utf8'");    mysql_query('SET character_set_results = "UTF8"') or die(mysql_error());            // Выполняем запрос: если пользователя с таким id ещё нет в БД, то добавляем, если есть, то обновляем запись, прибавляя одно посещение (visits)    $query = 'INSERT INTO `'.$table_name.'` (`uid`, `last_date`) VALUES ("'.$viewer_id.'","'.time().'") ON DUPLICATE KEY UPDATE  `visits` = (`visits`+1), `last_date`="'.time().'";';    mysql_query($query);       $query = 'SELECT * FROM `'.$table_name.'` WHERE `visits`>10;'; //ВОТ НА ЭТОТ МОМЕНТ СТОИТ ОБРАТИТЬ ВНИМАНИЕ, О НЁМ И ВОПРОС   $sql = mysql_query($query);       while ($sql_data = mysql_fetch_array($sql)) {    echo $sql_data['uid'].' - '.$sql_data['visits'];    }   ?> 
Так вот, собственно, суть вопроса: таким образом у меня все работает, я получаю из мускула количество посещений и id тех, чье количество визитов (зачение "visits") превышает 10, очень хорошо. Но допустим, мне нужно узнать количество посещений только одного пользователя - я, конечно, могу вписать руками его id, либо как в моем примере вставить переменную $my_id, что будет выглядеть примерно так:

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

   $query = 'SELECT * FROM `'.$table_name.'` WHERE `uid`="'.$my_id.'";'; 
и это тоже будет работать, но что если мне нужно задать не постоянное значение, а значение, передающееся из AS? В данном случае удобно полагать, что это будет айдишник того, кто просматривает приложение.
То есть Вася Пупкин с айдишником 12345 зашел в приложение - и он должен увидеть сколько раз именно он посещал приложение, другими словами, в мускул должен быть отправлен запрос, ищущий строку, в которой uid равен 12345.
Я пробовал воткнуть переменную $viewer_id, но в таком случае у меня считается общее количество посещений на всех - и на меня, и на того Васю Пупкина и т.д.
ЗЫ: с базой данных все в порядке, на каждого пользователя создается своя строка и отдельно считается количество посещений, php так же создает строку, где значение uid равно нулю - там как раз и считаются общие посещения, и почему-то если я подставляю в запрос переменную viewer_id, то вместо uid просматривающего приложения возвращается именно то uid, равное нулю.

Объясняю немого коряво, но старался по-подробней. Буду рад помощи, ибо обрыл уже весь гугл и так и не нашел решения проблемы.
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Получение значения переменной в php из AS3

Сообщение Александр »

Ugly
Из swf передать id методом POST или GET. В php скрипте получить переданную переменную.
Отправка запроса на сервер, получение данных (AS3, PHP)
Аватара пользователя
Ugly
Сообщения: 16
Зарегистрирован: 13 янв 2013, 11:03

Re: Получение значения переменной в php из AS3

Сообщение Ugly »

Александр
Странно, я был уверен, что уже прозондировал ту тему тысячу тысяч раз, могу без преувеличения сказать, что уже практически вызубрил её наизусть, но один правильный пинок - и я осознал всю ничтожность своих познаний, переосмыслил жизнь и преисполнился счастьем! :lol:
А если серьезно - спасибо Вам огромное, я уж было отчаялся) Ошибка наиидиотнейшая)
Ответить