Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   GET POST и URL (http://www.flasher.ru/forum/showthread.php?t=172995)

Monompadin 21.12.2011 16:15

GET POST и URL
 
Мне нужно из флеша передать данные в пхп там что то с ними сделать и вернуть ответ
Я пытаюсь реализовать это так:

Код AS3:

        var stat_loader:URLLoader = new URLLoader();
        var stat_request:URLRequest = new URLRequest("http://(мой сайт).com/logind.php");
        stat_request.method = URLRequestMethod.POST;
        var stat_vars:URLVariables = new URLVariables();
        stat_vars['login'] = String(Object(this).puno.logk.text);
        stat_vars['pass'] = String(Object(this).puno.ps.text);       
 
 
        //var loaderr:URLLoader = new URLLoader();
        //var krequest:URLRequest = new URLRequest("http://(мой сайт).com/logind.php");
// Две строчки выше не дают нужного результата и выдают ошибку.
        stat_request.method = URLRequestMethod.GET;
        stat_loader.dataFormat = URLLoaderDataFormat.VARIABLES;
        stat_loader.addEventListener(Event.COMPLETE, completeHandler);
        stat_loader.load(stat_request);
        function completeHandler(evt:Event)
        {
                njkl = evt.target.data.pkl;
                Object(this).puno.logk.text = evt.target.data.llg;
                Object(this).puno.ps.text = evt.target.data.llp;                       
        }

но при попытке исполнить код, выдаёт вот что:

Код:

Error #2044: Необработанный IOErrorEvent:. text=Error #2035: URL-адрес не обнаружен.
Error: Error #2101: Строка, переданная в URLVariables.decode(), должна быть строкой запроса закодированного URL-адреса и содержать пары имя/значение.
        at Error$/throwError()
        at flash.net::URLVariables/decode()
        at flash.net::URLVariables()
        at flash.net::URLLoader/onComplete()

Я вычислил, что проблема где то в части кода с приёмом из пхп.
Пытался задавать юрл для GET в отдельных лоадерах и реквестах, не опмогло.

BuKT 21.12.2011 16:18

1) Вам нужен POST запрос, чтобы правильно передавать URLLoaderDataFormat.VARIABLES.
2) Вы нигде не присваиваете переменные реквесту.

DaFive 21.12.2011 16:56

Да и URL-адрес неверный, вам таки и написали там.

Monompadin 21.12.2011 17:08

Дело в том что отдельно POST работает нормально (то есть для него эта ссылка рабочая), а вот если приписать GET и орпеделить для GETа тот же реквест и лоадер (или даже если назначить свои, на тот же сайт) он выдаёт ошибку.

DaFive 21.12.2011 17:21

Так в гете только и передать можно через ? и & между переменными.

Monompadin 21.12.2011 18:11

Цитата:

Сообщение от DaFive (Сообщение 1052863)
Так в гете только и передать можно через ? и & между переменными.

А можно по подробнее?))

DaFive 21.12.2011 18:15

Код AS3:

var login:String = String(Object(this).puno.logk.text);
var pass:String =  String(Object(this).puno.ps.text);       
var stat_request:URLRequest = new URLRequest("http://(мой сайт).com/logind.php?login="+login+"&pass="+pass);


Monompadin 21.12.2011 18:59

Цитата:

Сообщение от DaFive (Сообщение 1052880)
Код AS3:

var login:String = String(Object(this).puno.logk.text);
var pass:String =  String(Object(this).puno.ps.text);       
var stat_request:URLRequest = new URLRequest("http://(мой сайт).com/logind.php?login="+login+"&pass="+pass);


Исправил так:
Код AS3:

        var login:String = String(Object(this).puno.logk.text);
        var pass:String =  String(Object(this).puno.ps.text);       
        var stat_loader:URLLoader = new URLLoader();
        var stat_request:URLRequest = new URLRequest("http://(проверненная ссылка на сайт)/logind.php?login="+login+"&pass="+pass);
        stat_request.method = URLRequestMethod.GET;
        stat_loader.dataFormat = URLLoaderDataFormat.VARIABLES;
        stat_loader.addEventListener(Event.COMPLETE, completeHandler);
        stat_loader.load(stat_request);
        function completeHandler(evt:Event)
        {                       
                njkl = evt.target.data.pkl;
                Object(this).puno.logk.text = evt.target.data.llg;
                Object(this).puno.ps.text = evt.target.data.llp;                       
        }

Текст ошибки тот же, не пойму в чем проблема((

ivaha83 21.12.2011 19:16

Цитата:

Сообщение от BuKT (Сообщение 1052848)
1) Вам нужен POST запрос, чтобы правильно передавать URLLoaderDataFormat.VARIABLES.
2) Вы нигде не присваиваете переменные реквесту.

Вам же BuKT говорит, что надо сделать. Вы второй пункт выполните, как предлагает документация Adobe. А точнее

Код AS3:

stat_vars['login'] = String(Object(this).puno.logk.text);
stat_vars['pass'] = String(Object(this).puno.ps.text);
stat_request.data = stat_vars;

и не надо руками собирать запрос через ? и &. Потому что когда собираете его руками не факт, что он получится URL-кодированным.

in4core 21.12.2011 20:04

Код AS3:

var login:String = String(Object(this).puno.logk.text);

Не ну это же ппц просто

Код AS3:

var login:String = this.puno.logk.text;



Часовой пояс GMT +4, время: 03:00.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.