2012-03-22 92 views
3

我想在flex中創建一個登錄屏幕,我通過amfphp發送我的變量,當我運行此查詢時,我沒有返回數據。Amfphp和Flex4.5非常簡單的登錄系統

當我將值傳遞給amfphp的瀏覽器時,我可以看到一行被返回。有人可以解釋我做錯了嗎?請記住,我是一個總noob。

,我已經是錯誤:

(對象)#0
消息= 「的faultcode:INVALID_AMF_MESSAGE faultString:無效AMF消息」faultDetail: '' 行數:1
''「
名稱= 「錯誤」
rootCause複製=(空)

<?php 
    require('connection.php'); 

    class NotWorking { 

     private $dbc; 

     public function __construct(){ 
      $this->dbc = @mysqli_connect(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME) OR DIE (mysqli_connect_error()); 
     } 

     public function no ($someVar) { 
      $data = array(); 
      $password = mysqli_real_escape_string($this->dbc,trim($someVar['password'])); 
      $email= mysqli_real_escape_string($this->dbc,trim($someVar['email'])); 
      $query = "SELECT * FROM users WHERE email='$email' AND password='$password'"; 
      $r= mysqli_query($this->dbc,$query); 

      /* 
      if($r){ 
       echo ' query works '; 
       var_dump($r); 
      }else{ 
       echo 'Does not work'; 
      } 
      */ 

      $num = mysqli_num_rows($r); 
      echo "'Rows: $num'"; 

      if ($num > 0) 
       while ($row = mysqli_fetch_array($r)){ 
        $data[] = $row; 
       } 
      return $data; 
     } 
    } 
+0

使用firefox和firebug測試它,檢查你的參數和返回值 - 同時檢查你的沙盒 – 2012-05-11 13:58:39

+0

這裏沒有太多的上下文,但是你如何在PHP中創建的數據對象和Flex的等價物之間進行映射?如果您使用RemoteObject從Flex調用NotWorking類的no方法,那麼echo可能是您的代碼無法工作的原因,因爲您在$ data之前有一個額外的字符串被「發送」 – Deratrius 2012-06-22 11:00:18

回答

0

您應該做的第一件事是用Charles Proxy調試流量。 我簡要介紹了一下你的代碼,跳出來的一件事就是你的方法中有一個字符串。 amfPHP不喜歡這個,因爲它與輸出緩衝混淆。如果你刪除了echo,你的功能應該工作;這取決於您使用的是哪個版本的amfPHP。