从Flash传递变量到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变量是总金额。有人可以就代码是否正确给出一些反馈吗?服务器可以使用用户名和密码进行访问。这是否需要指定?如果是这样,我该怎么做?
预先感谢您!
编辑:谢谢你们的回复!
我已经相应地更改了代码:
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文件上传到我正在处理的网站,还有什么我应该做的?另外,有关身份验证的信息非常有用!但我很困惑,我是否应该在代码中使用它。任何建议/建议?
正如Hakar所说:退房Passing variable FROM flash to HTML/php - 未接受的答案就是你想要的(接受的HTML答案,然后依赖HTML发布到PHP - 如果你想要的话,你需要这个也通过cookies,但如果你不这样做,你可以直接调用PHP)。
至于用户名/密码,你可以在这里找到答案:Flex 3 - how to support HTTP Authentication URLRequest?;虽然这是Flex,我相信添加auth的方法是一样的。
我会建议使用加载方法,因为您可能需要稍后处理事件。
答案,因为你想获得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
}
约的用户名/密码位,再加上其他岗位接受的答案
除了涉及到传递给HTML通过Javascript,而不是直接到PHP(虽然答案是张贴:) :) – Robbie