PHP - > AS3如果声明

时间:2011-11-05 19:17:30

标签: php actionscript-3

我为网站登录界面创建了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.systemResultjoe之间的平等。它始终将“不工作”写入status2.text

2 个答案:

答案 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;