Не отправляется запрос изменение данных в БД (As3) из ВК

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в Flash-приложениях (ActionScript)

Не отправляется запрос изменение данных в БД (As3) из ВК

Сообщение javist » 03 дек 2012, 14:48

Здравствуйте!

В AS 3.0 сделал по кнопке сохранение изменения в таблице БД на моём сервере. С локальной машины отрабатывает (создаёт лог-файл и апдейтит запись). Со страницы Вконтакте не отрабытывает (даже лог-файл не создаёт). Не подскажите в чём может быть проблема?
Вот код AS 3.0:
  1. package
  2. {
  3.     import flash.display.Loader;
  4.   import flash.net.URLRequest;
  5.   import flash.net.URLLoader;
  6.   import flash.net.URLVariables;
  7.   import flash.net.URLRequestMethod;
  8.   import flash.events.Event;
  9.   import flash.events.*;
  10.   import flash.display.Sprite;
  11.   import flash.events.MouseEvent;
  12.   import flash.text.*;
  13.   import flash.utils.Timer;
  14.   import flash.events.TimerEvent;
  15.   import flash.events.*;
  16.   import flash.media.Sound;
  17.   import flash.media.SoundChannel;
  18.   import flash.media.SoundTransform;
  19.   import flash.system.Security;
  20.   import flash.events.*;
  21.   import vk.APIConnection;
  22.   import flash.events.*;
  23.   import flash.system.Security;
  24.   import flash.text.TextField;
  25.   import vk.*;
  26.   import flash.display.Stage;
  27.    
  28.     /**
  29.      * ...
  30.      * @author Sokolov N.A.
  31.      */
  32.     public class Main extends Sprite
  33.     { public var payButton:PaySimpleButton;
  34.         private var tf_p:TextField = new TextField();
  35.         private var cash:Number;
  36.     private     var flashVars:Object=stage.loaderInfo.parameters as Object;
  37.        
  38.         public function Main():void
  39.         {
  40.            
  41.             if (stage) init();
  42.      else addEventListener(Event.ADDED_TO_STAGE, init);
  43.      postScore();
  44.            
  45.         }
  46.        
  47.         private function init( e:Event = null ):void
  48.         {
  49.    
  50.  
  51.  
  52.  
  53.        
  54.     payButton = new PaySimpleButton();
  55.     addChild(payButton);
  56.     payButton.x = 336;
  57.     payButton.y = 20;
  58.    
  59.     cash = 55;
  60.    
  61.    
  62.    
  63. }
  64.  
  65. //
  66. private function postScore():void
  67.  
  68. {
  69. var loadpost:URLLoader = new URLLoader();
  70. var VK:APIConnection = new APIConnection(flashVars);
  71.  
  72.  //сюда пишем переменную ваших очков
  73. Security.allowDomain("*");
  74. Security.loadPolicyFile("http://мой домен/crossdomain.xml");
  75.  
  76. var loader:URLLoader = new URLLoader();
  77. var request:URLRequest = new URLRequest("http://мой домен/score.php");
  78. request.method = URLRequestMethod.POST;
  79. var variable:URLVariables = new URLVariables();
  80.  
  81.  
  82. variable['uid'] = 'текущий uid';
  83. variable['score'] = cash;
  84.  
  85. request.data = variable;
  86.  
  87. loader.load(request);
  88. loader.addEventListener(Event.COMPLETE,function scorePosted(e:Event):void
  89. {
  90.       tf_p.htmlText = "COMPLETE";
  91.                        tf_p.x = 410;
  92.                     tf_p.y = 26;
  93.                     tf_p.border = true;
  94.                     tf_p.alpha = 1.0;
  95.                    tf_p.autoSize = TextFieldAutoSize.CENTER;
  96.                    tf_p.borderColor = 0xFF0000;
  97.                    tf_p.width = 120;
  98. tf_p.height = 20; tf_p.selectable = false;
  99.                     addChild(tf_p);
  100.  
  101. });
  102.         }
  103. //
  104.     }
  105.     }
  106.  


А, это score.php:
  1. <?php
  2. header("Content-Type: application/json; encoding=utf-8");
  3. $db_host="мой host";
  4. $db_user="мой user";
  5. $db_password="пароль user";
  6. $db_name = "имя db";
  7.  
  8. $score=$_POST['score'];
  9. $uid=$_POST['uid'];
  10.  
  11.  
  12. $api_id = 'api_id приложения';
  13. $secret_key = 'ключ secret_key';
  14.  
  15.  
  16. $f = fopen('log000.txt', 'a');
  17. fwrite($f, date('d.m.y H:i:s', time()).' score= '.print_r($score). " uid= " . print_r($uid) . PHP_EOL);
  18. fclose($f);
  19.  
  20.  
  21.  
  22.  
  23.  mysql_connect($db_host,$db_user,$db_password) or die (mysql_error());
  24.         mysql_selectdb($db_name);
  25.         mysql_query('SET names "utf-8"');
  26.  
  27.  $query = 'UPDATE `logs_add_mattery` SET `date` = "'.time().'", `score` = "'.$score.'"   WHERE `uid` = "'.$uid.'";';
  28.  
  29.       $sql = mysql_query($query);
  30. echo "OK";
  31.  
  32.  
  33.  
  34. ?>
javist

 
Автор темы
Сообщения: 8
Зарегистрирован: 21 сен 2012, 10:00
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.

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

Google
 



Re: Не отправляется запрос изменение данных в БД (As3) из ВК

Сообщение Casperovskii » 03 дек 2012, 15:08

На хостинге есть в корне файл crossdomain.xml?
  1. <cross-domain-policy>
  2. <allow-access-from domain="*.vkontakte.ru" />
  3. <allow-access-from domain="*.vk.com" />
  4. </cross-domain-policy>
Casperovskii

 
Сообщения: 429
Зарегистрирован: 22 июн 2012, 17:50
Благодарил (а): 11 раз.
Поблагодарили: 43 раз.

Re: Не отправляется запрос изменение данных в БД (As3) из ВК

Сообщение javist » 03 дек 2012, 15:26

Конечно. На моём хосте ещё callback.php по новым платёжке и отрабатывает из ВК "на ура".
javist

 
Автор темы
Сообщения: 8
Зарегистрирован: 21 сен 2012, 10:00
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.

Re: Не отправляется запрос изменение данных в БД (As3) из ВК

Сообщение Александр » 03 дек 2012, 16:15

javist
Обращение к серверу происходит? Данные передаются? Это можно увидеть с помощью Charles.
В crossdomain ещё стоит добавить *.userapi.com

Новая платежка и crossdomain.xml никак не связаны.

За это сообщение автора Александр поблагодарил:
javist
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
 
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45
Откуда: Санкт-Петербург
Благодарил (а): 126 раз.
Поблагодарили: 771 раз.

Re: Не отправляется запрос изменение данных в БД (As3) из ВК

Сообщение javist » 03 дек 2012, 16:19

Charles не пользовался. Попробую.
javist

 
Автор темы
Сообщения: 8
Зарегистрирован: 21 сен 2012, 10:00
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.

Re: Не отправляется запрос изменение данных в БД (As3) из ВК

Сообщение javist » 03 дек 2012, 17:00

Добавил *.userapi.com в crossdomain. По Charles вижу только обращение к http://мой домен/crossdomain.xml из Vk, а к score.php нет.
javist

 
Автор темы
Сообщения: 8
Зарегистрирован: 21 сен 2012, 10:00
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.

Re: Не отправляется запрос изменение данных в БД (As3) из ВК

Сообщение javist » 03 дек 2012, 22:25

После того как поправил crossdomain.xml со строкой *.userapi.com, заработало. ;) Спасибо огромное!
javist

 
Автор темы
Сообщения: 8
Зарегистрирован: 21 сен 2012, 10:00
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.


Вернуться в Создание Flash-приложений ВКонтакте



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

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