Передача переменных из flash в PHP

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

Передача переменных из flash в PHP

Сообщение monax » 12 мар 2010, 18:54

здравствуйте.

Такой вопрос, как передать методом POST переменные от приложения к обробатывающему скрипту.

Давайте на примере:

Допустим есть переменная: var peremen = "blabla";

как ее можно отправит php скрипту, чтобы он мог принят ее так: $php_peremen = $_POST['peremen'];
monax

 
Автор темы
Сообщения: 33
Зарегистрирован: 13 дек 2009, 23:23
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

Google
 



Re: Передача переменных из flash в PHP

Сообщение monax » 12 мар 2010, 23:10

Всем еще раз привет!

Вобще я время не терял, и пока жду ответа ковыряю поиск. Моих знаний и найденого в поиске хватило на следующее:
var api_id:Number=хххххх;// id вашего приложения
var api_secret:String="ххххххх";// секретный ключ
var externalXML:XML;
var loader:URLLoader = new URLLoader();
var viewer_id:Number;
var sig:String;
var uid:String;

var params:Object=LoaderInfo(root.loaderInfo).parameters;
viewer_id = (params['viewer_id']) ? parseInt(params['viewer_id']) : 1;
getProfile(viewer_id);

function getProfile(uid):void {
   sig=MD5.encrypt(viewer_id+'api_id='+api_id+'fields=bdate,photo_bigmethod=getProfilesuids='+uid+'v=2.0'+api_secret);
   var request:URLRequest=new URLRequest("http://api.vkontakte.ru/api.php?api_id="+api_id+"&method=getProfiles&uids="+uid+"&fields=bdate,photo_big&v=2.0&sig="+sig);
   loader.load(request);
   loader.addEventListener(Event.COMPLETE, onComplete1);
}

function onComplete1(event:Event):void {
externalXML=new XML(loader.data);

      var fname=externalXML..first_name;
//     fname_txt.text=fname;
    
//     var lname=externalXML..last_name;
//    lname_txt.text=lname;
      
//     var uid=externalXML..uid;
//     id_txt.text=uid;
}

var var_load:URLLoader = new URLLoader;
var URL_request:URLRequest = new URLRequest("http://localhost/vkapp/target.php");
URL_request.method = URLRequestMethod.POST;

//формируем строку, которая будет отправлена
var email_data:String = "name=" + fname.text;

var URL_vars:URLVariables = new URLVariables(email_data);
//URL_vars.dataFormat = URLLoaderDataFormat.TEXT;
URL_request.data = URL_vars;
var_load.load( URL_request );


вобщем это очень кривой и баганный код, который всетаки кое как работает. Не работает в нем лишь одна строчка:

var email_data:String = "name=" + fname;

точнее на нее ругается компилятор: 1120: Access of undefined property fname.

Если же взять просто вот этот кусок
var var_load:URLLoader = new URLLoader;
var URL_request:URLRequest = new URLRequest("http://localhost/vkapp/target.php");
URL_request.method = URLRequestMethod.POST;

//формируем строку, которая будет отправлена
var email_data:String = "name=" + fname;

var URL_vars:URLVariables = new URLVariables(email_data);
//URL_vars.dataFormat = URLLoaderDataFormat.TEXT;
URL_request.data = URL_vars;
var_load.load( URL_request );


и задать ему переменную fname, var fname="asdasd"; то он отправит запрос на пхп скрипт.

Я понимаю эта ошибка происходит из-за разницы типов переменных, но как это решить я не знаю и надеюсь на вашу помошь)
monax

 
Автор темы
Сообщения: 33
Зарегистрирован: 13 дек 2009, 23:23
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Передача переменных из flash в PHP

Сообщение Александр » 12 мар 2010, 23:43

Переменная fname у тебя объявлена в функции onComplete1, а за пределами функции ты пишешь fname.text - это наверно текстовое поле, а чуть ниже пишешь пример с переменной fname.
Используй какие-то обозначения, чтобы не путаться в именах. Например fname_tf (tf - textfield - текстовое поле). Так будет понятнее.

Как передавать переменный из флеша php скриптую можешь посмотреть в этой теме topic165.html
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
 
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45
Откуда: Санкт-Петербург
Благодарил (а): 126 раз.
Поблагодарили: 771 раз.

Re: Передача переменных из flash в PHP

Сообщение monax » 12 мар 2010, 23:53

извеняюсь за ошибки с переменными, копировал код когда пытался понять что не так..... дописывал разный бред.
сейчас исправлю, спасибо за ссылку... попытаюсь разобратся.
зы; А ты долго еще онлайн будешь?
monax

 
Автор темы
Сообщения: 33
Зарегистрирован: 13 дек 2009, 23:23
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Передача переменных из flash в PHP

Сообщение monax » 13 мар 2010, 00:06

такая же проблемма:

Взял кусок твоего кода:
var stat_loader:URLLoader = new URLLoader();
var stat_request:URLRequest=new URLRequest("http://localhost/vkapp/target.php"); // заменяем на ссылку к вашему скрипту
stat_request.method=URLRequestMethod.POST;
var fname = "123123123asd";  // изменил
// добавление параметров в запрос
var stat_vars:URLVariables = new URLVariables();
stat_vars['viewer_id']=fname; // изменил
stat_request.data=stat_vars;
// выполнение запроса
stat_loader.load(stat_request);

Немного изменив его. Так он работает.

Но если дописать в него следующее:
var api_id:Number=ххххх;// id вашего приложения
var api_secret:String="ххххх";// секретный ключ
var externalXML:XML;
var loader:URLLoader = new URLLoader();
var viewer_id:Number;
var sig:String;
var uid:String;

var params:Object=LoaderInfo(root.loaderInfo).parameters;
viewer_id = (params['viewer_id']) ? parseInt(params['viewer_id']) : 1;
getProfile(viewer_id);

function getProfile(uid):void {
   sig=MD5.encrypt(viewer_id+'api_id='+api_id+'fields=bdate,photo_bigmethod=getProfilesuids='+uid+'v=2.0'+api_secret);
   var request:URLRequest=new URLRequest("http://api.vkontakte.ru/api.php?api_id="+api_id+"&method=getProfiles&uids="+uid+"&fields=bdate,photo_big&v=2.0&sig="+sig);
   loader.load(request);
   loader.addEventListener(Event.COMPLETE, onComplete1);
}

function onComplete1(event:Event):void {
externalXML=new XML(loader.data);

      var fname=externalXML..first_name;
//     fname_txt.text=fname;
    
//     var lname=externalXML..last_name;
//    lname_txt.text=lname;
      
//     var uid=externalXML..uid;
//     id_txt.text=uid;
}
var stat_loader:URLLoader = new URLLoader();
var stat_request:URLRequest=new URLRequest("http://localhost/vkapp/target.php"); // заменяем на ссылку к вашему скрипту
stat_request.method=URLRequestMethod.POST;

// добавление параметров в запрос
var stat_vars:URLVariables = new URLVariables();
stat_vars['viewer_id']=fname; // ID просматривающего приложение
stat_request.data=stat_vars;
// выполнение запроса
stat_loader.load(stat_request);


то компилятор опять же ругается на сторку stat_vars['viewer_id']=fname; // ID просматривающего приложение

1120: Access of undefined property fname.
monax

 
Автор темы
Сообщения: 33
Зарегистрирован: 13 дек 2009, 23:23
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Передача переменных из flash в PHP

Сообщение monax » 13 мар 2010, 00:11

Извеняюсь за свою глупость. С ошибкой разобрался. Можешь взглянуть на этот код:
var api_id:Number=743131;// id вашего приложения
var api_secret:String="sE4VLBDdSQ";// секретный ключ
var externalXML:XML;
var loader:URLLoader = new URLLoader();
var viewer_id:Number;
var sig:String;
var uid:String;

var params:Object=LoaderInfo(root.loaderInfo).parameters;
viewer_id = (params['viewer_id']) ? parseInt(params['viewer_id']) : 1;
getProfile(viewer_id);

function getProfile(uid):void {
   sig=MD5.encrypt(viewer_id+'api_id='+api_id+'fields=bdate,photo_bigmethod=getProfilesuids='+uid+'v=2.0'+api_secret);
   var request:URLRequest=new URLRequest("http://api.vkontakte.ru/api.php?api_id="+api_id+"&method=getProfiles&uids="+uid+"&fields=bdate,photo_big&v=2.0&sig="+sig);
   loader.load(request);
   loader.addEventListener(Event.COMPLETE, onComplete1);
}

function onComplete1(event:Event):void {
externalXML=new XML(loader.data);

      var fname=externalXML..first_name;
//     fname_txt.text=fname;
    
//     var lname=externalXML..last_name;
//    lname_txt.text=lname;
      
//     var uid=externalXML..uid;
//     id_txt.text=uid;


}


И сказать насколько допустим такой вариант вытаскивание Имени и фамилии, а также на сколько он касячный и как можно его изменить.
Может какойнибудь более простой вариант под рукой есть?
Спасибо за помощь.
monax

 
Автор темы
Сообщения: 33
Зарегистрирован: 13 дек 2009, 23:23
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Передача переменных из flash в PHP

Сообщение Александр » 13 мар 2010, 12:51

monax
Ты проверил? Работает?
В функции onComplete1, после вытаскивания имени отправляй данные на сервер.

function onComplete1(event:Event):void {
externalXML=new XML(loader.data);
var fname=externalXML..first_name;
var stat_loader:URLLoader = new URLLoader();
var stat_request:URLRequest=new URLRequest("http://localhost/vkapp/target.php"); // заменяем на ссылку к вашему скрипту
stat_request.method=URLRequestMethod.POST;
// добавление параметров в запрос
var stat_vars:URLVariables = new URLVariables();
stat_vars['fname']=fname;
stat_request.data=stat_vars;
stat_loader.load(stat_request);
}


В php получать так:

fname берётся из этой части stat_vars['fname']. То есть если изменишь fname здесь, то и в $_POST['fname'] тоже нужно будет изменить.
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
 
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45
Откуда: Санкт-Петербург
Благодарил (а): 126 раз.
Поблагодарили: 771 раз.

Re: Передача переменных из flash в PHP

Сообщение monax » 13 мар 2010, 17:55

Да, во всем разобрался и все работает.

А такой вопрос, немного не в тему: как удалить приложение у пользователей, которые его уже установили ??
monax

 
Автор темы
Сообщения: 33
Зарегистрирован: 13 дек 2009, 23:23
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Передача переменных из flash в PHP

Сообщение monax » 14 мар 2010, 04:02

Привет еще раз, появился небольшой вопросик, не стал создавать новую тему.

Собственно вопрос: Как передать переменную из PHP скрипта в flash?
Немного покопав инет нащел что php файл должен быть такго вида:
<?php
// какой-то код
echo 'peremen1=znachenie1';


а что должно быть в принимающем as3 скрипте?
monax

 
Автор темы
Сообщения: 33
Зарегистрирован: 13 дек 2009, 23:23
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Передача переменных из flash в PHP

Сообщение Александр » 14 мар 2010, 23:17

monax писал(а):А такой вопрос, немного не в тему: как удалить приложение у пользователей, которые его уже установили ??

Наверное, только если найти всех этих пользователей и попросить их удалить.

monax писал(а):Как передать переменную из PHP скрипта в flash?

Обратиться из приложения к скрипту и получить нужные данные. Если нужно получить более одной переменной, то можно разделять переменные каким-нибудь символом или генерировать на сервере XML.
О том как обратиться из приложению к серверу написано здесь post1575.html

Вид "peremen1=znachenie1" использовался в AS2 с функцией loadVariables. В AS3 такой функции нет.
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
 
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45
Откуда: Санкт-Петербург
Благодарил (а): 126 раз.
Поблагодарили: 771 раз.


  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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



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

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

cron