Проблема Flex Remoting с PHP как Back end - PullRequest
0 голосов
/ 27 мая 2009

Мой PHP-код всегда возвращает НЕТ, независимо от имени пользователя и пароля.

Код Flex / MXML:

<mx:RemoteObject id="zendAMF" destination="zend" showBusyCursor="true" source="test_class" >
  <mx:method name="doLogin" result="onSayHelloResult(event)">
    <mx:arguments>
      <username>
        {username.text}
      </username>
      <password>
        {password.text}
      </password>
    </mx:arguments>
  </mx:method>
</mx:RemoteObject>

Код ActionScript:

private function callZend():void {
  zendAMF.doLogin();
}

PHP код:

class test_class { 

  public function __construct() {
  }

  public function doLogin($username,$password) {

    include("connection.php");

    if (isset($_POST['username']) && isset($_POST['password']))
    {
      $username= $_POST['username'];
      $password= $_POST['password'];
      $query = "SELECT *
                FROM users
                WHERE username = '".mysql_escape_string($username)."'
                AND password = '".mysql_escape_string($password)."'";
      $result = mysql_fetch_array(mysql_query($query));
      return 'yes';
    }
    else
    {
      return 'no';
    }
  }
}

Ответы [ 2 ]

1 голос
/ 28 мая 2009

Я почти уверен, что $ username и $ password являются параметрами вашего метода, и поскольку вы отправляете эти два аргумента через RemoteObject, у вас уже есть значения для них, и поэтому вам не нужно использовать $ _POST.

public function doLogin($username,$password) {

include("connection.php");

if (isset($username) && isset($password))
{
  $query = "SELECT *
            FROM users
            WHERE username = '".mysql_escape_string($username)."'
            AND password = '".mysql_escape_string($password)."'";
  $result = mysql_fetch_array(mysql_query($query));
  return 'yes';
}
else
{
  return 'no';
}}

Этого должно быть достаточно.

0 голосов
/ 27 мая 2009

эта строка не работает:

if (isset($_POST['username']) && isset($_POST['password']))

Вы уверены, что ваш метод flex использует POST, а не GET?

...