我尝试搜索这么多线程,尝试 8 小时后我的问题仍然无法解决。我通过php/MySQLi为AS3创建了一个登录/注册。我正在尝试将一些变量从php返回到"帐户页面",成功登录后,AS3将自动跳转到帐户页面,并显示"用户名"和"其他变量",目前我只是尝试使用"密码"进行测试。我可以成功显示用户名。但是当我尝试加载超过 1 个变量时,问题开始出现。我可以使用event.target.data并回应它。这有效,但是当我尝试跟踪event.target.data.username时,当数据之后附加了一些东西时,它就会停止工作。
以下是我的代码。AS3
var Bend:URLRequest = new URLRequest("http://localhost/dummy.php");
Bend.method = URLRequestMethod.POST;
var variabless:URLVariables = new URLVariables();
variabless.username = Nam.text;
Bend.data = variabless;
var nLoader:URLLoader = new URLLoader();
nLoader.dataFormat = URLLoaderDataFormat.TEXT;
nLoader.addEventListener(Event.COMPLETE,Jandler);
nLoader.load(Bend);
// handler for the PHP script completion and return of status
function Jandler(event:Event):void{
Nam.text=event.target.data.$name;
Nam2.text=event.target.data.$password;
}
我不知道 php 应该是什么,但我从登录开始了 sesssion。
session_start();
echo $_SESSION['username']=$name;
echo $_SESSION['password']=$password;
感谢您的时间和帮助。
新 AS3
function Jandler(event:Event):void{
var responseVariables:URLVariables = new URLVariables(event.target.data);
trace(responseVariables.names);
trace(responseVariables.password);
新法宝
session_start();
$_SESSION['username']=$names;
$_SESSION['password']=$password;
echo "names=$names&password=$password";
在 AS3 端,最好将数据转换为 URLVariables 对象,如下所示:
var responseVariables:URLVariables = new URLVariables(e.target.data);
现在您可以更轻松地处理数据,例如:
trace (responseVariables.name)
如果你不这样做,它基本上只是一个包含参数字符串的大长字符串。
在 php 端,您需要创建一个参数字符串,该字符串是参数名称和值的组合,由如下所示的&
分隔:
echo "name=Clark&password=light";
如果它没有被&
分隔,它将在 as3 端被视为一个参数。