2012-07-16 29 views
2

我有这个Flash代码。它将比赛和用户名发送到savingcores.php。但我有上面的错误。我已将URLLoaderDataForma.VARIABLES更改为TEXT,但仍然出现相同的错误。我应该怎么做才能解决这个问题?在此先感谢..#2101:传递给URLVariables.decode()的字符串必须是包含名称/值对的URL编码查询字符串

private function SendScore(score:int) 
    { 
     var variables:URLVariables = new URLVariables(); 
     variables.score = score; 
     variables.username = username; 
     var urlloader:URLLoader = new URLLoader(); 

     var urlrequest:URLRequest = new URLRequest('http://localhost:90/savescores.php'); 
     urlrequest.method = URLRequestMethod.POST; 
     urlrequest.data = variables; 
     urlloader.dataFormat = URLLoaderDataFormat.TEXT; 

     urlloader.load(urlrequest); 
     urlloader.addEventListener(Event.COMPLETE, CompleteHandler, false, 0, true); 
     urlloader.addEventListener(IOErrorEvent.IO_ERROR , ErrorHandler, false, 0, true); 
    } 

    private function CompleteHandler(e:Event) 
    { 
     var vars:URLVariables = new URLVariables(e.target.data); 
     if(vars.success) trace('Saving succeeded'); 
     else ('Saving failed'); 
    } 

    private function ErrorHandler(e:IOErrorEvent) 
    { 
     trace('Error occured'); 
    } 
+0

Anil,如果您解决了问题,请回答您自己的问题并将其标记为正确答案。 – Boundless 2013-04-23 18:05:36

回答

1

我假设问题不是与请求,而是与响应处理。你正在实例化变量为URLVariables,但可能e.target.data不符合预期的格式。跟踪e.target.data值获取更多信息。

+0

感谢您的回答。我有一个问题,我的PHP方面,我想出来并修复它。它现在有效。 – 2012-07-16 11:30:13

+0

我不知道为什么这个答案被选为正确的答案,当它显然是不正确的。 Anil,如果您解决了问题,请回答您自己的问题并将其标为正确答案。 – Boundless 2013-04-23 18:04:56

4

答:问题是用PHP

- 必须返回一个变种,以AS3或你会得到这个错误。

我发布这个,因为除非观众读取评论,他们将不知道问题是什么和解决方案。 Anil问这个问题说这是PHP的问题,而不是as3,但没有理由为什么。看起来上面正确的答案不是一个足够的答案,因为它只提示了一个可能的解决方案。 Anil承认这是一个与PHP有关的问题。我相信这个答案更完整,可以帮助有同样问题的人。

我有类似的问题。问题在于php。除非你从PHP输出的东西,你会得到这个错误。

闪光灯不喜欢什么,从PHP返回并给出以下错误:

错误:错误#2101:)传递给URLVariables.decode(String必须是一个包含URL编码的查询字符串名称/值对。 在错误$/throwError() 在flash.net::URLVariables/decode() 在flash.net::URLVariables() 在flash.net::URLLoader/onComplete()

这里有一个部分我的PHP没有返回任何东西:

if($ConfirmedEmail=="true") 
{ 
    echo "Status=true"; 
} 
if($ConfirmedEmail=="false") 
{ 
    echo "Status=false"; 
} 

但如果是既不真/假它会没有一点输出。 = Flash不喜欢!

所以PHP代码必须是这样的:

if($ConfirmedEmail=="true") 
{ 
    echo "Status=true"; 
} 
else if($ConfirmedEmail=="false") 
{ 
    echo "Status=false"; 
} 
else 
{ 
    echo "Status=Nada"; 
} 

这里是我的AS3代码,你看看。希望它能帮助别人。

public function checkEmail(e:Event = null) 
{ 

    var urlreq = new URLRequest("http://www.MyWebsite.com/myScript.php"); 
    urlreq.method = URLRequestMethod.POST; 

    var urlvars = new URLVariables(); 
    urlvars.userID = Main.userID; 


    urlreq.data = urlvars; 

    var loader:URLLoader = new URLLoader(urlreq); 
    loader.addEventListener(Event.COMPLETE, completed); 
    loader.dataFormat = URLLoaderDataFormat.VARIABLES; 
    loader.load(urlreq); 
} 

public function completed(event:Event):void 
{ 
    var variables:URLVariables = new URLVariables(event.target.data); 
    trace("Email Confirmed: " + variables.Status); 
} 
+0

我试过你的代码,但是它给了我'未定义的',当我在变量后删除状态时,它给了我**状态=真**,我只想打印真或假,我该如何实现它。 – 2017-08-23 08:49:30

相关问题