Система входа с flex mobile - PullRequest
0 голосов
/ 30 января 2012

Я последовал примеру того, как сделать систему входа в систему на flex.Этот пример был сделан не для мобильных проектов Flex, а для настольных компьютеров, работающих в браузере.Как я понимаю, я могу использовать один и тот же код, но с разными компонентами.Я продолжаю получать ошибки.Мой код ниже.

PHP-код для подключения и запроса базы данных и отправки результата обратно с помощью xml

<?php

echo "<?xml version="\"1.0\" ?>\n";

$con = mysql_connect("HOST","USER","PASS");
if (!$con)
{
  die('Could not connect: ' . mysql_error());
}

mysql_select_db("DatabaseName here"); 

//Variables that I wil retrieve from the flex application

$user = $_POST['user']; 
$pass = $_POST['pass'];


//mySQL query 
$result = mysql_query("SELECT * FROM `brukere` WHERE 1");

//not logged in so it's false
$loged = false; 

//Comparing the text i retrieved from the flex app and the rows in my database. 

while($row = mysql_fetch_assoc($result))
{
   if(strtolower($user) == strtolower($row['brukernavn']) &&
   strtolower($pass) == strtolower($row['passord']))   
   {
         $loged = true: 
       }
} 

//so if loged is true, pass true in xml to my flex application. 
if($loged == true) 
echo "<status>true</status>"; 
else
echo "<status>false</status>"; 
?>

Мой HTTPService в гибком коде

    <fx:Declarations>

    <mx:HTTPService id="loginService" result="onResult(event)"  method="POST" url="URL TO THE PHP SCRIPT">

        <mx:request xmlns="">

            <user>{username.text}</user>

            <pass>{pass.text}</pass>

        </mx:request>

    </mx:HTTPService>
        </fx:Declarations>

А затем мои сценарии действий

<fx:Script>
    <![CDATA[
        import mx.rpc.events.ResultEvent;
        import mx.controls.Alert; 

        private function login():void 
        {
            loginService.send();    
        }

        private function onResult(e:ResultEvent):void
        {

            if(e.result.status == true) {

                Alert.show("Succesful"); 

            }

            else {

                Alert.show("Wrong"); 
            }
        }
    ]]>
</fx:Script>

Наконец, графический интерфейс:

<s:VGroup includeIn="notLoggedIn" x="286" y="164" width="45%" height="200">
    <s:HGroup includeIn="notLoggedIn" width="100%" height="38" verticalAlign="middle">
        <s:Label width="30%" height="31" text="Brukernavn: " verticalAlign="middle"/>
        <s:TextInput id="username" width="70%"/>
    </s:HGroup>
    <s:Spacer width="459" height="10"/>
    <s:HGroup includeIn="notLoggedIn" width="100%" height="40" verticalAlign="middle">
        <s:Label width="30%" height="34" text="Passord:" verticalAlign="middle"/>
        <s:TextInput id="pass" width="70%"/>
    </s:HGroup>
    <s:Spacer width="458" height="10"/>
    <s:HGroup width="462" height="65">
        <s:Spacer width="70%" height="64"/>
        <s:Button width="30%" label="Logg inn" click="login()"/>
    </s:HGroup>
</s:VGroup>

Это все, что я получаю, когда отлаживаю приложение:

[SWF] AKTIVe.swf - 4,192,242 bytes after decompression
ReferenceError: Error #1069: Property status not found on String and there is no    default value.
at Views::Login/onResult()[C:\Users\Tobias\Documents\bacheloroppgave\workspace\src\Views\Login.mxml:54]
at Views::Login/__loginService_result()[C:\Users\Tobias\Documents\bacheloroppgave\workspace\src\Views\Login.mxml:13]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at HTTPOperation/http://www.adobe.com/2006/flex/mx/internal::dispatchRpcEvent()[E:\dev\4.y\frameworks\projects\rpc\src\mx\rpc\http\HTTPService.as:993]
at mx.rpc::AbstractInvoker/http://www.adobe.com/2006/flex/mx/internal::resultHandler()[E:\dev\4.y\frameworks\projects\rpc\src\mx\rpc\AbstractInvoker.as:318]
at mx.rpc::Responder/result()[E:\dev\4.y\frameworks\projects\rpc\src\mx\rpc\Responder.as:56]
at mx.rpc::AsyncRequest/acknowledge()[E:\dev\4.y\frameworks\projects\rpc\src\mx\rpc\AsyncRequest.as:84]
at DirectHTTPMessageResponder/completeHandler()[E:\dev\4.y\frameworks\projects\rpc\src\mx\messaging\channels\DirectHTTPChannel.as:451]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()

Первая мысль, что я не могуиспользовать <mx:HTTPService> и другие mx-сервисы в моем мобильном flex-приложении.Кто-нибудь знает, что я должен искать?

Извините за длинный пост, но по крайней мере это достаточно неофициально :)

Заранее спасибо

1 Ответ

1 голос
/ 30 января 2012

используйте прокси-сервер charles для проверки того, что именно вы отправляете на сервер (запрос) и возвращаетесь с сервера (ответ)

веб-сайт charles proxy

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...