PDA

Просмотр полной версии : PHP TO FLEX


AQUAFRESH
20.03.2009, 17:28
как слать даные из флекса в пхп я разобрался, осталось только узнать
как слать даные обратно из пхп в флекс ?

если кто слышал об этой магие )) не стесняйтесь рассказывайте :victory:

GBee
20.03.2009, 17:34
HTTPService вам уже предлагали. В result событии будет вам счастье. А в пхп просто echo в ответ (самый простой вариант)

AQUAFRESH
20.03.2009, 21:38
блин что не делаю всеравно запускаеться ексептион


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
xmlns="*" backgroundGradientAlphas="[1.0, 1.0]" backgroundGradientColors="[#000000, #FFFFFF]" color="#FFFFFF">

<mx:HTTPService id="service" url="http://fresh.0fees.net/server.php" method="POST" result="success()" fault="error()" resultFormat="e4x"/>

<mx:Script>
<![CDATA[

import mx.controls.Alert

public function Send_Data():void
{
var max:Object = new Object();
max.username = user.text;
max.password = pass.text;

service.send(max);
}

private function success():void
{
if (service.lastResult.result == true)
Alert.show("Регистрация прошла успешно");
else
Alert.show("Регистрация неудалась");
}

private function error():void
{
Alert.show("Возникла ошибка");
}
]]>
</mx:Script>



<mx:Button x="32" y="113" label="Send" color="#FFFFFF" width="150" id="Send" click="Send_Data()"/>
<mx:TextInput x="32" y="41" width="150" fontWeight="bold" maxChars="20" color="#000000" id="user"/>
<mx:TextInput x="32" y="71" width="150" fontWeight="bold" maxChars="20" color="#000000" id="pass" displayAsPassword="true"/>
</mx:Application>



<?xml version="1.0" encoding="utf-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<title>Pagel</title>
</head>

<body>

<?php

echo "<root><result>true</result></root>";

?>

</body>

</html>

GBee
20.03.2009, 22:24
А ошибка какая?
Попробуйте пхп

<?php
echo "<?xml version='1.0' encoding='utf-8'?>";
echo "<root><result>true</result></root>";

?>

Добавлено через 7 минут
Вообще, добейтесь чтобы пхп вам без флекса показывал валидный хмл, и сразу все как по маслу пойдет.

AQUAFRESH
21.03.2009, 02:48
когда срабатывает функция send(); Генерируеться такая ошибка

[FaultEvent fault=[RPC Fault faultString="Security error accessing url" faultCode="Channel.Security.Error" faultDetail="Destination: DefaultHTTP"] messageId="D21A3F0F-083A-ABA6-3447-260BFEB91F17" type="fault" bubbles=false cancelable=true eventPhase=2]

GBee
21.03.2009, 10:23
у HTTPService.useProxy=false;

Добавлено через 17 минут
crossdomain.xml еще наверно забыли

Добавлено через 19 минут
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
xmlns="*" backgroundGradientAlphas="[1.0, 1.0]" backgroundGradientColors="[#000000, #FFFFFF]" color="#FFFFFF">

<mx:HTTPService id="service"
url="http://gbee.ru/flasher.php"
method="POST"
result="success()"
fault="error(event)"
useProxy="false"

resultFormat="e4x"/>

<mx:Script>
<![CDATA[
import mx.rpc.events.FaultEvent;

import mx.controls.Alert

public function sendData():void
{
service.send();
}

private function success():void
{
if (service.lastResult.result == true)
Alert.show("Регистрация прошла успешно");
else
Alert.show("Регистрация не удалась");
}

private function error(event:FaultEvent):void
{
Alert.show("Возникла ошибка " + event);
}
]]>
</mx:Script>

<mx:Button x="32" y="113" label="Send" color="#FFFFFF" width="150" id="Send" click="sendData()"/>
</mx:Application>



<?php
echo "<?xml version='1.0' encoding='utf-8'?>";
echo "<root><result>true</result></root>";
?>

AQUAFRESH
21.03.2009, 13:03
что за Crossdomain.xml?

GBee
21.03.2009, 15:42
http://wiki.flash-ripper.com/index.php?title=Crossdomain.xml

AQUAFRESH
21.03.2009, 17:37
ОПАЧА )) Заработало... фантастика....
Токо теперь есть ещё один прикол

service.lastResult.result - возращает только TRUE or FALSE
а как сделать что он вернул текст например ???

GBee
21.03.2009, 19:37
Вы издеваетесь? Включите голову, наконец.

AQUAFRESH
22.03.2009, 01:51
не не издеваюсь... ну передачя в переменную обьекта происходит сдесь
echo "<root><result>15</result></root>"; оно возращает как булевое значение

GBee
22.03.2009, 10:40
это кэш.

AQUAFRESH
22.03.2009, 15:40
да действительно... кеш..... я очистил другой программой кеш и он полность очистился потом..... жаль что в флеше нету функции очистки...

пасиба что помогли разобратья (я наверное всех запарил уже )) )

mobstr3
30.04.2009, 19:40
AQUAFRESH, не мог бы ты выложить исходный код своего "server.php"?

AQUAFRESH
30.04.2009, 19:57
оооо я долго искал свою пост.. ура наконец то нашёл )))
Я просто в поиске писал PHP + FLEX а он назывался PHP TO FLEX

mobstr3
30.04.2009, 19:59
У тебя не осталось чтоль файла?

AQUAFRESH
30.04.2009, 20:01
<?xml version="1.0" encoding="utf-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<title>Pagel</title>
</head>

<body>

<?php

echo "<root><result>true</result></root>";

?>

</body>

</html>

вот он Server.php

mobstr3
30.04.2009, 20:11
После нажатия на кнопку Send, должно же переадресовывать на server.php как раз?
PS: test (http://lovelywheather.ru/api.html)

AQUAFRESH
30.04.2009, 21:20
нет... оно передаёт просто параметры....
что бы вывести страницу на экран
нада юзать NavigateToURL