从AS3到PHP的_POST URLVariable苦苦挣扎

时间:2014-12-28 12:33:56

标签: php actionscript-3 urlvariables

我已经将一个现有的Flash项目传递给了它的脚本中的_POST数据。我已尝试向URLVariable添加更多数据,但它不起作用:

AS3:

        public function SendChatMessageDB(ChatFrom:int)
    {
        var request:URLRequest = new URLRequest("http://www.somewebsite.co.uk/clientUpdateUserInfo.php");           
        var data:URLVariables = new URLVariables();
        data.a = "upChat"; // Existing part of project - Working
        data.sk = "hash"; // Existing part of project - Working
        data.Dat = global.MyFacebookID; // Existing part of project - Working
        data.chat = "screw"; // Added data - Not working!

        request.data = data;
        request.method = URLRequestMethod.POST;                     
        var loader:DataLoader = new DataLoader(request, {name:"userInfo"});
        loader.load();
    }
}

PHP:

<?php

在session_start();

        $a = $_POST["a"];
        $sk = $_POST["sk"];

    $xmlData = $_POST["Dat"];

    $security_result = SecurityCheck($sk);

                if( isset($_POST['chat']) )
                {
                    $chatMessage = $_POST("chat"); // Script's functions only work when I comment this out..

这些方法仅在我将if语句中的内容注释掉时才起作用。谁能看到我哪里出错?

非常感谢, 奈杰尔克拉克

1 个答案:

答案 0 :(得分:1)

如果你看看php文档中的definition of $_POST,你就会明白$_POST只是array,看你可以测试这段代码:

<?php

    echo gettype($_POST);        // gives : array

    var_dump($_POST);            // gives : 
                                //  array (size=0)
                                //  empty

    print_r($_POST);             // gives : Array ( ) 

?>

当你尝试这段代码时:

<?php

    echo $_POST('key');     // throws this error : PHP Fatal error:  Function name must be a string

?>

你会得到一个php致命的错误,因为在php中,函数名不能以$作为它的变量开始(如$_POST)。

因此,为了从key数组中获取与索引$_POST对应的值,我们使用$_POST['key']