关于 actionscript 3:将变量从 Flash 传递到 PHP

Passing variable from Flash to PHP

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Passing variable FROM flash to HTML/php

我正在使用 Flash (Actionscript 3.0) 处理这个项目。基本上,它是一个拖放应用程序。在获得一些用户输入后,我需要使用 PHP 将变量传递给 MySQL 服务器。这是我想出的代码:

actionscript:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import flash.net.URLVariables;
import flash.net.URLRequest;
import flash.net.navigateToURL;
import flash.events.MouseEvent;

var urlVariables:URLVariables = new URLVariables;
var pi:pizza=new pizza();
var totalAmt:Number;

totalAmt=pi.totalPrice;
urlVariables.totalAmount = totalAmt;//"" contains what should be passed
//urlVariables.password ="testpass";//""contains what should be passed


var urlRequest:URLRequest = new          URLRequest("http://172.21.147.103/csc207/bcg2g2/customise.php");
urlRequest.data = urlVariables;

sendToURL(urlRequest)

PHP:

1
2
3
4
5
6
7
8
9
<?php

$total = $_GET["totalAmount"];
//$pass = $_GET["password"];

echo $total;
//echo $userName."::".$pass;

?>

我最终发送给 PHP 的变量是 totalAmount。有人可以就代码是否正确提供一些反馈吗?可以使用用户名和密码访问服务器。是否必须指定?如果是这样,我应该怎么做?

提前谢谢你!

编辑:感谢大家的回复!

我已对代码进行了相应的更改:
导入 flash.net.URLVariables;
导入 flash.net.URLRequest;
导入 flash.net.URLLoader;
导入 flash.net.URLRequestMethod;
导入 flash.net.navigateToURL;
导入 flash.events.MouseEvent;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
var urlString:String ="http://172.21.147.103/csc207/bcg2g2/customise.php";

function Submit():void
{
    var requestVars:URLVariables = new URLVariables();
    requestVars.totalAmt= 50; // Dummy data to be sent to php

    var urlRequest:URLRequest = new URLRequest();
    urlRequest.url = urlString;
    urlRequest.method = URLRequestMethod.GET;
    urlRequest.data = requestVars;

    var loader:URLLoader = new URLLoader();
    loader.dataFormat = URLLoaderDataFormat.TEXT;
    loader.addEventListener(Event.COMPLETE, loaderCompleteHandler);

sendToURL(urlRequest)

    try { loader.load(urlRequest); }

    catch (error:Error) { // Handle Immediate Errors
}
}

function loaderCompleteHandler(e:Event):void
{
    trace(e.target.data); // Response Text
}

价值仍然没有得到反映。我可以检查一下我这样做是否正确吗?我应该将 SWF 文件上传到我正在开发的网站,还有什么我应该做的吗?此外,有关身份验证的信息很有用!但我对是否应该在代码中使用它感到困惑。有什么建议/建议吗?


正如 Hakre 所评论的:查看将变量从 flash 传递到 HTML/php - 不接受的答案就是你想要的(接受的答案发布到 HTML,然后依赖 HTML 发布到 PHP - 你\\'如果您还想传递 cookie,则需要这个,但如果您不这样做,您可以直接调用 PHP)。

至于username/pass,你可以在这里找到答案:Flex 3 - how to support HTTP Authentication URLRequest?;虽然那是Flex,但我相信添加auth的方法是一样的。


我建议使用 load 方法,因为您以后可能需要处理事件。

Ans 因为你想在 php 中获取变量,所以你发出一个 GET 请求,比如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
var urlString:String ="http://172.21.147.103/csc207/bcg2g2/customise.php";

function Submit():void
{
    var requestVars:URLVariables = new URLVariables();
    requestVars.totalAmt= 50; // Dummy data to be sent to php

    var request:URLRequest = new URLRequest();
    request.url = urlString;
    request.method = URLRequestMethod.GET;
    request.data = requestVars;

    var loader:URLLoader = new URLLoader();
    loader.dataFormat = URLLoaderDataFormat.TEXT;
    loader.addEventListener(Event.COMPLETE, loaderCompleteHandler);

    try { loader.load(request); }

    catch (error:Error) { // Handle Immediate Errors }
}

function loaderCompleteHandler(e:Event):void
{
    trace(e.target.data); // Response Text
}