![]() |
|
||||||||||
|
|||||
|
Всем привет,
вот есть такая задача: 1. Из flash (actionscript3) передаются 3 строки; 2. php их принимает, обрабатывает, делает какие нибудь действия и... 3. Возвращает 3 другие строки с некоторыми данным во flash; Есть такой код: var request:URLRequest = new URLRequest("chech.news.pwd.php"); request.data = variables;//add the data to our containers request.method = URLRequestMethod.POST;//select the method as post var variables:URLVariables = new URLVariables();//create a variable container variables.sEml = "1234"; variables.sID = "5678"; variables.sBD = "90ABC"; var loader:URLLoader = new URLLoader(); loader.dataFormat = URLLoaderDataFormat.VARIABLES; loader.addEventListener(Event.COMPLETE, handleComplete); try { loader.load(request); } catch(e:Error) { trace("bug"); } function handleComplete(event:Event):void { var loader:URLLoader = URLLoader(event.target); loader.dataFormat = URLLoaderDataFormat.TEXT; try { Var1.text = String(loader.data); trace("("+loader.data.email+")"); trace("("+loader.data.id+")"); trace("("+loader.data.db+")"); } catch (e:Error) { Var1.text = "bag2"; } }
в var1.text получается вот такая жесть: id=%27%2E%24FRM%5FID%2E%27&null=null%27%3B%0D%0Aecho%20%24output%3B%0D%0A%3F%3E&db=%27%2E%24psDB%2E%27&%3C%3Fphp%20%20%0D%0A%24psPreRegEmail=%24%5FGET %5B%27sEml%27%5D%2E%22xxx%22%3B%0D%0A%24FRM%5FID%3D%24%5FGET%5B%27sID%27%5D%2E%22yyy%22%3B%0D%0A%24psBD%3D%24%5FGET%5B%27sBD%27%5D%2E%22zzz%22%3B%0D%0 A%0D%0A%24output%3D%27&email=%27%2E%24psPreRegEmail%2E%27 а trace показывает: ('.$psPreRegEmail.') ('.$FRM_ID.') ('.$psDB.') Вообщем php не выполняется, и тупо передается его содержимое, иногда и весь код. Помогите пожалуйста в реализации задачи! |
|
|||||
|
>>Вообщем php не выполняется, и тупо передается его содержимое, иногда и весь код.
Да у вас PHP на сайте не поддерживается скорее всего. Потестите хоть мою http://www.flasher.ru/forum/showthread.php?t=113083 Последний раз редактировалось Alex Lexcuk; 06.12.2008 в 23:00. |
|
|||||
|
У меня D.E.N.W.E.R. установлен, ...помимо этого кода у меня еще кртиться связка Flash+Php+MySQL и прекрасно работает. Я слышал что то нужно менять в php.ini, register_globals = Off - точно прописан.
Добавлено через 26 минут Цитата:
|
|
|||||
|
Регистрация: Nov 2008
Сообщений: 65
|
С PHP Вам отдельно разбираться (судя по всему он все таки не работает).
Тем не менее есть еще ошибка в коде флеша. Вместо: var request:URLRequest = new URLRequest("chech.news.pwd.php"); request.data = variables;// присваиваете null!!! request.method = URLRequestMethod.POST; var variables:URLVariables = new URLVariables();//Это уже роли не играет variables.sEml = "1234"; variables.sID = "5678"; variables.sBD = "90ABC"; ЗЫ. Что за ужасная расцветка PHP... |
|
|||||
|
Не ребята, теже яйса только в профиль.
У меня в сл. фрейме идет вызов php скрипта, он там внутри себя обращается к БД, генит xml и возвращает его, ...далее инфа передается в datagrid. Не может же php не работать в некоторых случаях в одном ролике. Тут в чем то другом прикол. С 9:30 утра не могу справиться с кодом =( Чуть-чуть переписал php:
http://test1.ru/@newsupload/chech.news.pwd.php?sEml=123&sID=456&sBD=23213 Получаю нормальный ответ: &email=123xxx&id=456yyy&db=23213zzz А во flash получаю полную лажу: ('.$psPreRegEmail.') ('.$FRM_ID.') ('.$psBD; echo $output; ?>) В Var1.text попадает: %3C%3FPHP%20%20%0D%0A%24psPreRegEmail=%24%5FGET%5B%27sEml%27%5D%2E%27xxx%27%3B%0D%0A%24FRM%5FID%3D%24%5FGET%5B%27sID%27%5D%2E%27yyy%27%3B%0D%0A%24psBD %3D%24%5FGET%5B%27sBD%27%5D%2E%27zzz%27%3B%0D%0A%0D%0A%24output%3D%27&id=%27%2E%24FRM%5FID%2E%27&db=%27%2E%24psBD%3B%0D%0Aecho%20%24output%3B%0D%0A%3F %3E&email=%27%2E%24psPreRegEmail%2E%27 Последний раз редактировалось ERrorMAKros; 07.12.2008 в 01:05. |
|
|||||
|
Регистрация: Nov 2008
Сообщений: 65
|
Не знаю ни одного способа получения текста PHP вместо его выполнения (а если бы знал, то уже ломал бы все сайты подряд
.У вас еще одна ошибка в коде: Вы зачем то выставили POST, а считываете из $_GET (тогда уж лучше из $_REQUEST, универсальней) ЗЫ. Есть у меня подозрение. Вы случаем не пытаетесь флешку прям с диска запустить (не важно что через браузер)? Запустите её, например для вашего случая, как 'http://test1.ru/@newsupload/flash.swf'. Последний раз редактировалось ZlPredator; 07.12.2008 в 13:25. |
|
|||||
|
Вот, рабочий код, ...по всем рекомендациям, ...вот что наделал:
var variables:URLVariables = new URLVariables();//Сначала создаём variables.sEml = "1234"; variables.sID = "5678"; variables.sBD = "90ABC"; var request:URLRequest = new URLRequest("http://test1.ru/@newsupload/chech.news.pwd.php"); request.data = variables;//потом присваиваем request.method = URLRequestMethod.POST; var loader:URLLoader = new URLLoader(); loader.dataFormat = URLLoaderDataFormat.VARIABLES; loader.addEventListener(Event.COMPLETE, handleComplete); try { trace(request.data.sBD); trace(request.data.sEml); trace(request.data.sID); loader.load(request); } catch(e:Error) { trace("bug"); } function handleComplete(event:Event):void { var loader:URLLoader = URLLoader(event.target); loader.dataFormat = URLLoaderDataFormat.TEXT; // ВО ТУТ ТО, ЧТО МЕНЯ ВЫРУЧИЛО! var variables:URLVariables = new URLVariables() variables=loader.data; // ЭТО САМОЕ "ОНО" try { Var1.text = String(loader.data); trace("("+variables.email+")"); trace("("+variables.db+")"); trace("("+variables.id+")"); } catch (e:Error) { Var3.text = "bag2"; } }
Var1.text у нас получилось: id=5678yyy&null=null%20&db=90ABCzzz&email=1234xxx >>> Вот то что отправляется (проверка по trace) 90ABC 1234 5678 >>> Вот то что принимается (проверка по trace в handleComplete) (1234xxx) (90ABCzzz) (5678yyy) Последний раз редактировалось ERrorMAKros; 07.12.2008 в 13:51. |
|
|||||
|
Регистрация: Nov 2008
Сообщений: 65
|
Выручило Вас то, что Вы начали обращаться к PHP через Apache, а не считывать с диска файл. А присваивание
можно было и не писать (можете удалить для проверки).
|
|
|||||
|
Регистрация: Dec 2011
Сообщений: 14
|
Спасибо! вы меня очень выручили !!!
|
![]() |
![]() |
Часовой пояс GMT +4, время: 10:16. |
|
|
« Предыдущая тема | Следующая тема » |
|
|