Валюта в игре!

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в Flash-приложениях (ActionScript)
GemerPC
Сообщения: 38
Зарегистрирован: 17 июл 2011, 07:00

Валюта в игре!

Сообщение GemerPC »

Всем привет , С наступающим! Начал делать валюту , все вроде норм но она не выводиться! В Чарлсе пишет что money=Null
Изображение
Код в AS3

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

import flash.net.*;import flash.display.*;var stat_loader:URLLoader = new URLLoader();var stat_request:URLRequest=new URLRequest("Это все верно , просмотры работают хорошо");// заменяем на ссылку к вашему скриптуstat_request.method=URLRequestMethod.POST;            var stat_vars:URLVariables = new URLVariables();stat_vars['auth_key']=LoaderInfo(root.loaderInfo).parameters.auth_key;// auth_key из FlashVarsstat_vars['viewer_id']=LoaderInfo(root.loaderInfo).parameters.viewer_id;stat_vars['money'] = money;stat_request.data=stat_vars;            stat_loader.load(stat_request);
Код в PHP

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

<?php// данные доступа к базе данных$db_host="*****";       // обычно не нужно изменять$db_user="*****";        // имя пользователя БД$db_password="*****";        // пароль БД$db_name = "*****";      // имя БД$table_name = "*****";       // имя таблицы статистики. Если вы не меняли его в запросе, создающем БД, то и здесь менять его не надо // данные приложения$app_id = '*****'; // id приложения$api_secret = '*****'; // защищенный ключ приложения  $auth_key  = $_POST['auth_key']; // ключ от игры$viewer_id = $_POST['viewer_id']; // ид пользователя$money = $_POST['money']; $real_key = md5($app_id."_".$viewer_id."_".$api_secret);if ($auth_key == $real_key){    // соединение с БД    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'");     // Выполняем запрос: если пользователя с таким id ещё нет в БД, то добавляем, если есть, то обновляем запись, прибавляя одно посещение (`visits` =    $query = 'INSERT INTO `'.$table_name.'` (`uid`, `last_date`) VALUES ("'.$viewer_id.'","'.time().'") ON DUPLICATE KEY UPDATE  `visits` = (`visits`+1), `last_date`="'.time().'";';    $query = 'UPDATE `'.$table_name.'` SET `money` = "'.$money.'" WHERE `uid` = "'.$viewer_id.'";';    $sql = mysql_query($query);    echo "OK";}?>
Мне кажется в PhpMyAdmin проблемы, просмотры идут, а деньги просто не показываются!
Изображение
Изображение

Помогите , не знаю в чем ошибка!
Casperovskii
Сообщения: 429
Зарегистрирован: 22 июн 2012, 17:50

Re: Валюта в игре!

Сообщение Casperovskii »

Проблема в том, что ты ОТПРАВЛЯЕШЬ переменную money на сервер, а не забираешь ее оттуда.
Тебе стоит сделать в AS функцию-слушатель на ответ сервера и считывать свою валюту оттуда.
Для этого в php-скрипте стоит добавить в echo переменную money, которую предварительно нужно взять из БД.

Код написать не могу - с телефона сижу. Может, вечером.
GemerPC
Сообщения: 38
Зарегистрирован: 17 июл 2011, 07:00

Re: Валюта в игре!

Сообщение GemerPC »

Casperovskii писал(а):Проблема в том, что ты ОТПРАВЛЯЕШЬ переменную money на сервер, а не забираешь ее оттуда.
Тебе стоит сделать в AS функцию-слушатель на ответ сервера и считывать свою валюту оттуда.
Для этого в php-скрипте стоит добавить в echo переменную money, которую предварительно нужно взять из БД.

Код написать не могу - с телефона сижу. Может, вечером.
Смысл понял , но лучше код! В заранее спасибо
Аватара пользователя
manticore
Сообщения: 119
Зарегистрирован: 08 дек 2012, 18:53

Re: Валюта в игре!

Сообщение manticore »

Я новичок и работаю только во Flex, но по моему правильный код такой

AS3:

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

import flash.net.*;import flash.display.*;public function user_load(money:int):void {var stat_loader:URLLoader = new URLLoader();var stat_request:URLRequest=new URLRequest("Это все верно , просмотры работают хорошо");// заменяем на ссылку к вашему скриптуstat_request.method=URLRequestMethod.POST;           var stat_vars:URLVariables = new URLVariables();stat_vars['auth_key']=LoaderInfo(root.loaderInfo).parameters.auth_key;// auth_key из FlashVarsstat_vars['viewer_id']=LoaderInfo(root.loaderInfo).parameters.viewer_id;stat_vars['money'] = money;stat_request.data=stat_vars;           stat_loader.load(stat_request);stat_loader.addEventListener(Event.COMPLETE, setMonets);} public function setMonets(e:Event):void { var load:URLLoader = new URLLoader(e.target); // Здесь вставить что хочешь чтобы выполнялось при положительном получении - XML(loader.data).monets.text().toString();// Возможно так невозможно получать XML, ну попробуй) }
PHP:

вместо:

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

echo "OK";
добавь:

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

echo "<response><monets>".$sqlx['money']."</monets></response>";
и выше:

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

$sql_m = 'SELECT `money` FROM `'.$table_name.'` WHERE `uid` = "'.$viewer_id.'";';

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

$sqlx = mysql_fetch_array($sql_m);
После добавить кнопку какую-нибуть запроса на кадр и при нажатии обращаться к функции user_load(кол-во менток);

Писал все тут, так что ничего не проверял))

Просто решил попробовать помочь) :)
GemerPC
Сообщения: 38
Зарегистрирован: 17 июл 2011, 07:00

Re: Валюта в игре!

Сообщение GemerPC »

manticore,Спасибо конечно , не все понятно , поэтому портить старый php скрипт не буду, нужно бы поточнее , и не отрывками писать а полностью php переделать, если конечно не сложно!
Аватара пользователя
manticore
Сообщения: 119
Зарегистрирован: 08 дек 2012, 18:53

Re: Валюта в игре!

Сообщение manticore »

Могу просто ответить почему пишет money = null, потому что в данной строке:

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

stat_vars['money'] = money;
У тебя money ничему не равно во всем коде. Если это весь код, то я не нашел чему равно money.
Да и передавать money POST запросом без проверки в файле с настоящими данными, не логично. Ведь это можно легко подменить. Легче просто сделать запрос и слушателем вывести из ответа файла. ;)
GemerPC
Сообщения: 38
Зарегистрирован: 17 июл 2011, 07:00

Re: Валюта в игре!

Сообщение GemerPC »

manticore, это весь код , а как указать типо:

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

var money:Number = 0;
или как ?
Аватара пользователя
manticore
Сообщения: 119
Зарегистрирован: 08 дек 2012, 18:53

Re: Валюта в игре!

Сообщение manticore »

Честно как объявлять переменные там не знаю, но если ты там напишешь должно передавать вместо null, число 0.
GemerPC
Сообщения: 38
Зарегистрирован: 17 июл 2011, 07:00

Re: Валюта в игре!

Сообщение GemerPC »

manticore, мне как бы не от приложения брать в самом начале , а от сервера! Что-то попробывал сделать но выдает money=null , сейчас попробую может получиться!
GemerPC
Сообщения: 38
Зарегистрирован: 17 июл 2011, 07:00

Re: Валюта в игре!

Сообщение GemerPC »

Попробовал сделать по своему , он указывает money=NaN
Ответить