flash AS3从PHP返回未定义的变量

时间:2011-08-24 15:48:06

标签: php flash actionscript-3

我试图从PHP获取一些数据并在flash AS3中的链接中使用它。

Flash代码:

var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE,onLoaded);
loader.load(new URLRequest("FLA_connect.php"));
var variables:URLVariables = new URLVariables();
signup.addEventListener(MouseEvent.MOUSE_DOWN, mouseClick);

function onLoaded(evt:Event):void
{
var data:URLVariables = new URLVariables(evt.target.data);
variables.sponny = data.spon;


}

function mouseClick(event:MouseEvent):void
{
navigateToURL(new URLRequest('http://www.website.com/'+variables.sponny),"_self");
}

FLA_connect.php代码:

<?php

require ('config.php');

print "spon=$username";

?>

我已经测试了FLA_connect.php并且它返回了正确的数据但是在flash中测试时,变量返回为undefined,所以我最终得到了一个链接www.website.com/undefined。

任何想法的人??

感谢

Shanethehat

<?

require ('../config/db_4554651684654548784216.php'); //DB connection info is stored
require ('conf_id.php'); //this file holds the value for $lead_reference

mysql_connect($hostname,$username,$password) or die(mysql_error());
mysql_select_db($dbname) or die(mysql_error());

$get__id_check = mysql_query("SELECT * FROM $usertable WHERE ". "idEmail_lead = '$lead_reference'");

while($id__check = mysql_fetch_array($get__id_check)) {
    $first_N = $id__check["First_Name"];
    $last_N = $id__check["Last_Name"];
    $email_add = $id__check["Email"];
    $GDI__username = $id__check["GDI_Username"];


 }


?>

3 个答案:

答案 0 :(得分:2)

我自己已经遇到了这个错误和问题。我已经检查了重新检查并重新编写了脚本5次,认为这是我的错或代码错了。我已经弄明白代码的哪一部分给出了未定义的变量。它在结果函数区域。

function showresult(event:event) {
 txtbox.text = "" + event.target.data.spon;
}

或者什么。代码spon没有在even.target.data部分中定义,这会导致未定义的错误。 现在对我来说,我将event.target.data.myresult更改为event.target.data,并且能够看到php文件文本。

但是在添加myresult时,无法从文件中获得响应。 如果有人对此问题有任何其他有用的信息,请告诉我。 我也尝试将toString添加到myresult上,但它给出了一个巨大的错误,并再次指向未定义的myresult。

答案 1 :(得分:1)

您是否尝试过直接访问data中的变量?您还需要告诉您的加载器需要URL编码变量:

var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
loader.addEventListener(Event.COMPLETE,onLoaded);
loader.load(new URLRequest("FLA_connect.php"));

function onLoaded(evt:Event):void
{
    (ExternalInterface.available) ? ExternalInterface.call("console.log","Incoming data:" + evt.target.data) : trace("Incoming data:" + evt.target.data);
    variables.sponny = evt.target.data.spon;
}

如果失败,首先跟踪evt.target.data的值,以确保从PHP获得回复,并且等待数据返回的时间足够长,然后再单击注册按钮。完全安全,最好只在加载数据时显示注册按钮

答案 2 :(得分:0)

如果包含config.php会导致它失败,那么配置文件中就会出错 致电HTTP://myserver.com/FLA_connect.php directly from a browser 你应该看到erorr报告

现在为第二部分或你的问题
在你的php页面中 你正在返回一个字符串

spon=XXXXXXX

因此你应该将它解析为动作脚本方面的字符串而不是对象。