无论用户名和密码是什么,我的PHP代码都会返回NO。
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';
}
}
}
答案 0 :(得分:1)
我很确定,因为$ 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';
}}
这应该足够了。
答案 1 :(得分:0)
这一行失败了:
if (isset($_POST['username']) && isset($_POST['password']))
你确定你的flex方法是使用POST而不是GET吗?