Страница 1 из 3
Ошибка 2101
Добавлено: 24 июн 2013, 21:51
MrDead
Error: Error #2101: Строка, переданная в URLVariables.decode(), должна быть строкой запроса закодированного URL-адреса и содержать пары имя/значение.
at Error$/throwError()
at flash.net::URLVariables/decode()
at flash.net::URLVariables()
at flash.net::URLLoader/onComplete()
Вот код
Код: Выделить всё
stop();// Assign a variable name for our URLVariables objectvar variables:URLVariables = new URLVariables();// Build the varSend variable// Be sure you place the proper location reference to your PHP config file herevar varSend:URLRequest = new URLRequest("test.php");varSend.method = URLRequestMethod.POST;varSend.data = variables;// Build the varLoader variablevar varLoader:URLLoader = new URLLoader;varLoader.dataFormat = URLLoaderDataFormat.VARIABLES;varLoader.addEventListener(Event.COMPLETE, completeHandler);variables.myRequest = "bringit";// Send the data to the php filevarLoader.load(varSend);// When the data comes back from PHP we access it here function completeHandler(event:Event):void{ var idVar = event.target.data.id_var; var userNameVar = event.target.data.uname_var; var passVar = event.target.data.upass_var; var resultStatus = event.target.data.my_result; if (resultStatus == "no_session"){ gotoAndStop("no_session"); } else if (resultStatus == "no_exist"){ gotoAndStop("no_exist"); } else if (resultStatus == "all_good"){ userid_txt.text = idVar; username_txt.text = userNameVar; password_txt.text = passVar; gotoAndStop(5); }}
Re: Ошибка 2101
Добавлено: 24 июн 2013, 22:56
XELAD
Вместо
Код: Выделить всё
varLoader.dataFormat = URLLoaderDataFormat.VARIABLES;
нужно
Re: Ошибка 2101
Добавлено: 24 июн 2013, 23:02
MrDead
Не помогло. Пишет тоже самое. Возможно проблема в php скрипте, но не уверен, вроде все нормально
Код: Выделить всё
<?phpsession_start();$id = ""; // Initialize $id var$username = ""; // Initialize $username var$password = ""; // Initialize $password varif (isset($_POST['myRequest']) && $_POST['myRequest'] == "bringit"){ if(!isset($_SESSION["id"])) { echo "my_result=no_session&id_var=false&uname_var=false&upass_var=false"; exit(); } else { $id = preg_replace('#[^0-9]#i', '', $_SESSION["id"]); $username = preg_replace('#[^a-z0-9]#i', '', $_SESSION["username"]); $password = preg_replace('#[^a-z0-9]#i', '', $_SESSION["password"]); } // Check database to see if the id is related to this password include_once "connect.php"; $sql = mysql_query("SELECT * FROM mymembers WHERE id='$id' AND username='$username' AND password='$password' LIMIT 1"); $numrows = mysql_num_rows($sql); if($numrows == 0){ echo "my_result=no_exist&id_var=false&uname_var=false&upass_var=false"; exit(); } else { echo "my_result=all_good&id_var=$id&uname_var=$username&upass_var=$password"; }}// close initial if condition?>
Re: Ошибка 2101
Добавлено: 24 июн 2013, 23:14
XELAD
php тут не при чём, у меня самого была такая же ошибка. Вот посмотрите мой абсолютно рабочий код:
Код: Выделить всё
var str:String = new String(); str += "do=smth"; var vars = new URLVariables(str); var request:URLRequest = new URLRequest(); request.url = "http://xa.xa/xa.php"; request.method = URLRequestMethod.POST; request.data = vars; var loader:URLLoader = new URLLoader(); loader.dataFormat = "variables"; loader.addEventListener(Event.COMPLETE, SomeFunc1); loader.addEventListener(Event.CANCEL, SomeFunc2); loader.load(request);
Re: Ошибка 2101
Добавлено: 24 июн 2013, 23:20
MrDead
Код: Выделить всё
/* ----- -------------------------------------- ----- *//* ----- THE ACTIONSCRIPT 3.0 USED IN THE VIDEO ----- *//* ----- -------------------------------------- ----- */ stop();// Assign a variable name for our URLVariables objectvar variables:URLVariables = new URLVariables();// Build the varSend variable// Be sure you place the proper location reference to your PHP config file herevar varSend:URLRequest = new URLRequest("getsessionvars.php");varSend.method = URLRequestMethod.POST;varSend.data = variables;// Build the varLoader variablevar varLoader:URLLoader = new URLLoader;varLoader.dataFormat = "variables";varLoader.addEventListener(Event.COMPLETE, completeHandler);variables.myRequest = "bringit";// Send the data to the php filevarLoader.load(varSend);// When the data comes back from PHP we access it here function completeHandler(event:Event):void{ var idVar = event.target.data.id_var; var userNameVar = event.target.data.uname_var; var passVar = event.target.data.upass_var; var resultStatus = event.target.data.my_result; if (resultStatus == "no_session"){ gotoAndStop("no_session"); } else if (resultStatus == "no_exist"){ gotoAndStop("no_exist"); } else if (resultStatus == "all_good"){ userid_txt.text = idVar; username_txt.text = userNameVar; password_txt.text = passVar; gotoAndStop(5); }}
Ну вот код
Ctrl+enter
Вывод
Код: Выделить всё
Error: Error #2101: Строка, переданная в URLVariables.decode(), должна быть строкой запроса закодированного URL-адреса и содержать пары имя/значение. at Error$/throwError() at flash.net::URLVariables/decode() at flash.net::URLVariables() at flash.net::URLLoader/onComplete()
Re: Ошибка 2101
Добавлено: 24 июн 2013, 23:25
IndieGD
XELAD URLLoaderDataFormat.VARIABLES и "variables" это одно и тоже.
MrDead, у вас ругается что данные от PHP не по формату приходят. Вы пробовали смотреть что PHP скрипт возвращает?
Re: Ошибка 2101
Добавлено: 24 июн 2013, 23:30
XELAD
IndieGD
Я на офиц форуме находил тему, где было указано, что это не одно и тоже.
А порывшись в инете нашел по поводу 2101:
The error says it can't parse the string returned by your PHP script. That means it's not the format
abc=10&cake=boop or has some character that trips it up.
PHP плох

Re: Ошибка 2101
Добавлено: 24 июн 2013, 23:40
IndieGD
XELAD http://help.adobe.com/ru_RU/FlashPlatfo ... ormat.html Я документации Адоба доверяю больше всяких форумов

Чего и вам советую

Re: Ошибка 2101
Добавлено: 24 июн 2013, 23:46
MrDead
IndieGDа как посмотреть что он возвращает?
Re: Ошибка 2101
Добавлено: 24 июн 2013, 23:57
IndieGD
Эм) Ну как скрипты проверяют. Чарликом или плагином для браузера который заголовки смотрит.
Ну если нет возможности. То можно например в скрипте перед
Код: Выделить всё
if (isset($_POST['myRequest']) && $_POST['myRequest'] == "bringit"){
добавить
Код: Выделить всё
$_SESSION["id"] = 111;$_SESSION["username"] = "myname";$_SESSION["password"] = "myfamily";$_POST['myRequest'] = "bringit";
и просто открыть его в браузере.