2011-11-05 46 views
1

我爲網站登錄界面創建了php和as3代碼。以下是PHP代碼:PHP - > AS3 if語句

<?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.systemResultstatus1.text,但我無法弄清楚爲什麼if聲明不能識別e.target.data.systemResultjoe之間的等式。它始終將「不起作用」寫入status2.text

+2

確保沒有任何空格後'>'?你可以刪除'?>',它是可選的。 – Kapep

+1

您應該首先閱讀關於* SQL注入*的內容。 –

+0

您確定該值不是「Joe」還是「JOE」? –

回答

2

我還沒有在as3中玩過相當長的一段時間,但是基於你的問題的描述,我猜測systemResult是一個嚴格比較可能無法匹配的對象類型。是否有toString()方法可以應用於systemResult以查看是否更改了比較結果?

0

嘗試將URLVariables:

function dataLoaded(e:Event) 
{ 
    var phpvars:URLVariables = new URLVariables(e.target.data); 

    if (phpvars.systemResult == "joe") 
    { 
     status2.text = "Works!"; 
    } 
} 

,並設置你的PHP裝載機DATAFORMAT:

phploader.dataFormat = URLLoaderDataFormat.VARIABLES; 
+0

我已經試過這種方式,但沒有奏效,謝謝。 –

+0

您可以嘗試追蹤phpvars和phpvars.systemResult並查看它們的輸出結果。 –