PHP - MySQL Query не работает - PullRequest
0 голосов
/ 27 мая 2009
<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>

Это мой код Flex, я не использую POST ....

Я не уверен, правильно ли я иду, я всегда получаю возвращаемое значение no, хотя я ввожу правильное имя пользователя и пароль.

Может ли кто-нибудь помочь мне.

Ответы [ 7 ]

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

if (isset ($ _ POST ['username']) && isset ($ _ POST ['password']))

Это строка, которая определяет, если вы получите да или нет. Это означает, что вы не используете post для получения переменных из формы.

Это не имеет ничего общего с запросом.

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

Это может показаться проблемой HTML больше, чем проблемой запроса, поскольку единственное, что может заставить этот класс возвращать 'no', это ваши переменные $ _POST.

Надеемся, что основы вашей формы должны выглядеть примерно так в HTML:

<form method='post' action='filename.php'>
<input type='text' name='username' /><br />
<input type='password' name='password' />
</form>
0 голосов
/ 27 мая 2009

Вы должны написать строку

 $result = mysql_fetch_array(mysql_query($query));

в

 $res = mysql_query($query);
 if (!$res) {
     die "doLogin: " . mysql_error();
 }
 $user = mysql_fetch_array($res);

хотя бы при тестировании этого кода. Таким образом, вы можете увидеть, есть ли ошибки в вызовах базы данных.

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

Ваша функция doLogin () возвращает «да», если вы указали имя пользователя и пароль, независимо от того, что говорит база данных ...

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

Если вы получили "нет" из-за того, что этот код не может вернуть true:

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

Итак ... Вы дали точным именам поля ввода? Форма действительно публикуется?

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

Этот бит:

$result = mysql_fetch_array(mysql_query($query));
return 'yes';

просто возвращает да независимо от того, что содержит переменная $result, попробуйте выполнить

if(empty($result)){
 return 'no'
}else{
return 'yes'
}
0 голосов
/ 27 мая 2009

Вы уверены, что не храните хэши паролей?

Кроме того, не используйте эту уродливую функцию, используйте связанные параметры. Это чище и лучше.

Обновление:

no возвращается в случае сбоя следующего условия:

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

, независимо от того, что происходит в MySQL.

Убедитесь, что установлены обе переменные.

...