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