我试过搜索这么多线程,经过8个小时的尝试后我的问题仍无法解决。 我通过php / MySQLi为AS3创建了一个登录/注册。我试图从php返回一些变量到“帐户页面”,成功登录后,AS3会自动跳转到帐户页面,并显示“用户名”和“其他变量”,此刻我只想尝试使用“密码” “测试一下。 我可以成功,显示用户名。但是当我尝试加载超过1个变量时,问题就开始发生了。我可以使用event.target.data和echo。这有效但当我尝试跟踪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);
新的php
session_start();
$_SESSION['username']=$names;
$_SESSION['password']=$password;
echo "names=$names&password=$password";
答案 0 :(得分:1)
在AS3方面,最好将数据转换为URLVariables对象,如下所示:
var responseVariables:URLVariables = new URLVariables(e.target.data);
现在您可以更轻松地处理数据,例如:
trace (responseVariables.name)
如果你不这样做,它基本上只是一个包含参数字符串的大字符串。
在php方面,你需要创建一个参数字符串,它是参数名称和值的组合,由&
分隔,如下所示:
echo "name=Clark&password=light";
如果它没有被&
分隔,它会在as3一侧看作一个参数。