我为网站登录界面创建了php和as3代码。这是PHP代码:
<?php
$con = mysql_connect("xxx", "xxx", "xxx");
mysql_query($con);
if (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("xxx", $con) or die('no02');
$username = $_POST['username'];
$pass = md5($_POST['pass']);
if ($_POST['systemCall'] == "checkLogin") {
$select = "SELECT username FROM connexion WHERE username='$username' AND pass='$pass'";
$query = mysql_query($select);
$counter = 1;
while ($row = mysql_fetch_array($query)) {
$name = $row['username'];
if ($name == "joe") {
print "systemResult=joe";
}
$counter = $counter + 1;
}
}
mysql_close($con);
?>
这是AS3代码:
function dataOnLoad(e: Event) //after pressing submit button
{
status1.selectable = false;
status1.text = e.target.data.systemResult
status1.autoSize = TextFieldAutoSize.LEFT;
if (e.target.data.systemResult == "joe") {
MovieClip(root).gotoAndStop(3);
} else {
status2.text = "Doesn't work";
}
}
现在,每次我使用正确的用户名和密码按下提交按钮,我都会e.target.data.systemResult
进入status1.text
,但我无法弄清楚if
语句的原因没有认识到e.target.data.systemResult
和joe
之间的平等。它始终将“不工作”写入status2.text
。
答案 0 :(得分:2)
我在相当长一段时间没有在as3中玩过,但根据你的问题的描述,我猜想systemResult是一个对象类型,严格的比较可能无法匹配。是否有toString()方法可以应用于systemResult以查看是否会更改比较结果?
答案 1 :(得分:0)
尝试使用urlvariables:
function dataLoaded(e:Event)
{
var phpvars:URLVariables = new URLVariables(e.target.data);
if (phpvars.systemResult == "joe")
{
status2.text = "Works!";
}
}
并设置你的php loader dataFormat:
phploader.dataFormat = URLLoaderDataFormat.VARIABLES;