Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php #2101:传递给URLVariables.decode()的字符串必须是包含名称/值对的URL编码查询字符串_Php_Actionscript 3_Flash - Fatal编程技术网

Php #2101:传递给URLVariables.decode()的字符串必须是包含名称/值对的URL编码查询字符串

Php #2101:传递给URLVariables.decode()的字符串必须是包含名称/值对的URL编码查询字符串,php,actionscript-3,flash,Php,Actionscript 3,Flash,我有这个闪码。它将我游戏中的分数和用户名发送到savescores.php。但是我有上面的错误。我已将URLLoaderDataForma.VARIABLES更改为文本,但仍然发生相同的错误。我应该如何解决此问题?提前谢谢 private function SendScore(score:int) { var variables:URLVariables = new URLVariables(); variables.score = score;

我有这个闪码。它将我游戏中的分数和用户名发送到savescores.php。但是我有上面的错误。我已将URLLoaderDataForma.VARIABLES更改为文本,但仍然发生相同的错误。我应该如何解决此问题?提前谢谢

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');
    }

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

回答:问题在于PHP

--必须将var返回给AS3,否则将出现此错误

我之所以发布这篇文章,是因为除非浏览者阅读评论,否则他们将不知道问题是什么以及解决方案。提出这个问题的Anil表示这是PHP的问题,而不是as3的问题,但并没有给出原因。上面标记为“正确”的答案似乎不是一个充分的答案,因为它只提出了一个可能的解决方案。Anil承认这是php的一个问题。我相信这个答案更完整,可以帮助有同样问题的人

我也有类似的问题。问题在于php。除非您从php输出一些东西,否则您将得到这个错误

Flash不喜欢从php返回任何内容,并给出以下错误:

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

我的PHP中有一部分没有返回任何内容:

if($ConfirmedEmail=="true")
{
    echo "Status=true";
}
if($ConfirmedEmail=="false")
{
    echo "Status=false";
}
但如果它既不是真的,也不是假的,它将不会输出任何内容闪光不喜欢

所以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);
}

谢谢你的回答。我的php方面有一个问题,我解决了并修复了它。我不知道为什么这个答案被选为正确答案,而它显然是不正确的。Anil,如果你解决了问题,请回答你自己的问题并将其标记为正确答案。Anil,如果你解决了问题,请回答你自己的问题并将其标记为正确答案。我尝试了你的代码,但它给了我
未定义的
,当我删除变量后的状态时,它给了我Status=true,我只想打印正确或错误我如何才能实现它。