将变量从Flash传递给PHP

时间:2012-05-12 12:50:37

标签: php actionscript-3 connect

  

可能重复:
  Passing variable FROM flash to HTML/php

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

的ActionScript:

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:

<?php

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

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

?>

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

提前谢谢!

编辑:感谢回复人员!

我相应地修改了代码:
    import flash.net.URLVariables;     import flash.net.URLRequest;     import flash.net.URLLoader;     import flash.net.URLRequestMethod;     import flash.net.navigateToURL;     import flash.events.MouseEvent;

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文件上传到我正在处理的网站,还有什么我应该做的吗?此外,有关身份验证的信息很有用!但我很困惑我是否应该在代码中使用它..任何建议/建议?

2 个答案:

答案 0 :(得分:1)

正如Hakre评论的那样:查看Passing variable FROM flash to HTML/php - 未接受的答案是你想要的(接受的答案发布到HTML,然后依赖于HTML发布到PHP - 你需要这个,如果你也希望传递cookie,但是你可以直接调用PHP。)

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

答案 1 :(得分:0)

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

答案,因为你想在PHP中获取变量,你发出GET请求,如:

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
}