【问题标题】:using AS3 to send data to a php file使用 AS3 将数据发送到 php 文件
【发布时间】:2015-01-03 16:51:03
【问题描述】:

我正在尝试使用 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=&amp;id=&amp;db=

为什么我看不到:???

email=steph4
id=steph5
db=steph6

我开始怀疑是否可以将数据从 AIR 应用程序发送到服务器上的 php 文件? 也许是因为出于安全考虑,无法将数据发送到 URL ?

【问题讨论】:

    标签: php actionscript-3 flash air urlloader


    【解决方案1】:

    我完全是 php 的菜鸟,但很明显你没有写任何数据。您的 Flash 文件正在跟踪 php 中的“回声”,但是当您通过 html 调用它时,您的 php 没有保留任何会显示的数据。

    所以尝试让您的 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 代码为您阅读。

    【讨论】:

      【解决方案2】:

      您的 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
      

      【讨论】:

        猜你喜欢
        • 2016-08-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多