可能重复:
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文件到我正在工作的网站,还有什么我应该做的吗?此外,有关身份验证的信息是有用的!但我不知道是否应该在代码中使用它。有什么建议吗?
发布于 2012-05-12 13:08:54
正如Hakre评论的那样:查看Passing variable FROM flash to HTML/php --不被接受的答案是您想要的(被接受的答案发布到HTML,然后依赖于HTML到PHP --如果您也想传递cookie,则需要这样做,但如果不传递,则可以直接调用PHP )。
至于用户名/pass,您可以在这里找到答案:Flex 3 - how to support HTTP Authentication URLRequest?;虽然这是Flex,但我相信添加auth的方法是相同的。
发布于 2012-05-12 13:10:19
我建议使用load方法,因为以后可能需要处理事件。
由于要在php中使用get变量,所以需要发出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
}https://stackoverflow.com/questions/10563907
复制相似问题