使用AS3将数据发送到php文件

时间:2014-11-07 00:33:38

标签: php actionscript-3 flash air urlloader

我试图使用urlLoader,但它没有工作,我不知道为什么......

我已经创建了一个我上传的php文件。这是PHP代码:

<?php

    $psPreRegEmail=$_POST['sEml'];
    $FRM_ID=$_POST['sID'];
    $psBD=$_POST['sBD'];     

    echo "email=".$psPreRegEmail;
    echo "&id=".$FRM_ID;
    echo "&db=".$psBD;

?>

这是我的AS3代码:

var request:URLRequest = new URLRequest('http://www.mysite.fr/login.php')
var variables:URLVariables = new URLVariables()
    variables.sEml = 'steph4'
    variables.sID = 'steph5'
    variables.sBD = 'steph6'

request.data = variables
request.method = URLRequestMethod.POST
var loader:URLLoader = new URLLoader();
    loader.addEventListener(Event.COMPLETE, handleComplete);
    loader.load(request)

function handleComplete(event:Event) {

    var loader:URLLoader = URLLoader(event.target)
    var vars:URLVariables = new URLVariables(loader.data)

    trace('vars.email: '+vars.email)
    trace('vars.id: '+vars.id)
    trace('vars.db: '+vars.db)

} 

没有错误,但当我在http://www.mysite.fr/login.php时,会显示:email=&id=&db=

为什么我不明白:???

email=steph4
id=steph5
db=steph6

我开始怀疑是否可以将数据从AIR应用程序发送到服务器上的php文件? 也许这是因为,为了安全措施,将数据发送到URL是不可能的?

2 个答案:

答案 0 :(得分:0)

我是一个使用php的完整菜鸟,但显而易见的是你没有写任何数据。您的Flash文件正在跟踪回声&#39;回声从PHP,但你的PHP没有保留任何数据,当你只是通过HTML调用它时会出现。

因此,请尝试让您的php将变量写入文本文件,如下所示:

<?php
$psPreRegEmail=$_POST['sEml'];
$FRM_ID=$_POST['sID'];
$psBD=$_POST['sBD'];

$myFile = "testFile.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
$stringData = $psPreRegEmail;
fwrite($fh, $stringData);
$stringData = $FRM_ID;
fwrite($fh, $stringData);
$stringData = $psBD;
fwrite($fh, $stringData);
fclose($fh);

echo "eemail=".$psPreRegEmail;
echo "&id=".$FRM_ID;
echo "&db=".$psBD;

?>

现在你可以读出你的文件:

http://www.mysite.fr/testFile.txt

或者写一些PHP代码来为你阅读。

答案 1 :(得分:0)

您的AS3代码很好,但在您的PHP代码中,您应该这样做:

<?php

    $psPreRegEmail = $_POST['sEml'];
    $FRM_ID = $_POST['sID'];
    $psBD = $_POST['sBD'];

    echo "email=".$psPreRegEmail."&id=".$FRM_ID."&db=".$psBD;

?>

关于您的问题,为什么在您打开http://www.mysite.fr/login.php时无法获得所需内容?这是因为您的$_POST数组为空,然后您的变量为空。你应该运行你的项目,你会得到这个:

vars.email: steph4
vars.id: steph5
vars.db: steph6