![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Apr 2009
Адрес: Moskva
Сообщений: 20
|
Привет всем!
Скачал из сети пример авторизации с использованием сессии AMFPHP. PHP:
MXML: <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="init()"> <mx:Script> <![CDATA[ import mx.rpc.AsyncResponder; import mx.rpc.AsyncToken; import mx.rpc.events.FaultEvent; import mx.controls.Alert; import mx.rpc.events.ResultEvent; /** * URL pointing to PHP folder files */ private static const SERVER_URL:String = "http://user_auth.net/" /** * use to store the token retrieved from the server */ private var myToken:String = ""; /** * It gets called when the application finished to load. * initialize the endpoint value for the RemoteObject */ private function init():void { myRPC.endpoint = SERVER_URL + "amfphp/gateway.php"; } /** * Result listenere for HTTPService or RemoteObject. * Just show the received response in an Alert * @param ResultEvent */ private function resultListener(event:ResultEvent):void { Alert.show(event.result.toString(), 'Server Response'); } /** * Error handler to be used by the HTTPService and RemoteObject; * Alert the error message * @param FaultEvent */ private function errorListener(event:FaultEvent):void { Alert.show(event.fault.faultString, 'Error'); } ]]> </mx:Script> <mx:RemoteObject id="myRPC" source="MyService" destination = "MyService" result="resultListener(event)" fault="errorListener(event)" showBusyCursor="true"> <mx:method name="authenticateUser"> <mx:arguments> <name>admin</name> <password>pass</password> </mx:arguments> </mx:method> <mx:method name="methodThatNeedsAuthUser"/> </mx:RemoteObject> <mx:VBox x="167" y="312" height="158" width="400"> <mx:Label text="Using RemoteObject and AMFPHP" fontWeight="bold" fontSize="12"/> <mx:Button label="Authenticate using a RPC call" click="myRPC.authenticateUser()"/> <mx:Button label="RPC call to a method that required Authenticated User" click="myRPC.methodThatNeedsAuthUser()"/> </mx:VBox> </mx:Application> "<?xml version="1.0" encoding="utf-8"?> <res> <message>User was authenticated!</message> </res>" т.е. все пучком.. далее, даже после рефреша, жму вторую функцию "methodThatNeedsAuthUser" также получаю, что все в норме: "<?xml version="1.0" encoding="utf-8"?> <res> <message>User is authenticated!</message> </res>" т.е. все в норме, при этом если данные сессии скидывать в лог, то все зашибись, данные сохраняются.... лог: [09-11-12 00:28:26] 'call MyService.authenticateUser' [09-11-12 00:28:26] 'admin' [09-11-12 00:28:26] 'password' [09-11-12 00:28:30] 'call MyService.methodThatNeedsAuthUser' [09-11-12 00:28:30] 'admin' НО! почему-то из своего приложения (см.выше) первая функция проходит нормально, но вторя функция получает в сессии пустые данные, т.е. авторизация не проходит... лог: [09-11-12 00:29:54] 'call MyService.authenticateUser' [09-11-12 00:29:54] 'admin' [09-11-12 00:29:54] 'pass' [09-11-12 00:29:59] 'call MyService.methodThatNeedsAuthUser' [09-11-12 00:29:59] NULL Не могу понять в чем может быть проблема, почему сессия слетает при вызове второй функции ? Присоветуйте плиз что лечить надо ...Спасибо |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Протестировал ваш код. Работает все нормально, сессия сохраняется во время тестирования приложения.
Единственное изменение: убрал из php блоки <<<EOD, но, вряд ли это как-то с этим связно. |
|
|||||
|
Регистрация: Apr 2009
Адрес: Moskva
Сообщений: 20
|
Цитата:
С утра въехал, что запускал не через сервер, а из под билдера - на прямую..типа c:\my documents\myprojects..... ясен пень, что никих сессий не сохранялось ![]() Перенес все в home\www - заработало ![]() Но теперь другая проблема, база и AMFPHP живут на другом хосте, чем мой сервер.. что надо исправить, чтобы приложения с моего сервера могли достучаться сервисов на другом сервере ? Сейчас выводит: [FaultEvent fault=[RPC Fault faultString="Send failed" faultCode="Client.Error.MessageSend" faultDetail="Channel.Security.Error error Error #2048: Security sandbox violation: http://flex_.net/AuthTest.swf cannot load data from http://user_auth.net/amfphp/gateway.php. url: 'http://user_auth.net/amfphp/gateway.php'"] messageId="F38858D9-3AB3-F170-E39E-E7236AD528C0" type="fault" bubbles=false cancelable=true eventPhase=2] чета не могу найти внятной инфы... положил на сервер crossdomain.xml в корень Z:\home\user_auth.net\www - результата никакого... Возможно у меня что-то в настройках не так.. какие конфигурационные файлы могу влиять на результат ? Спасибо Последний раз редактировалось ltise; 12.11.2009 в 10:48. |
|
|||||
|
[+1 17.02.10]
Регистрация: Aug 2009
Адрес: Казахстан Усть-Каменогорск
Сообщений: 249
|
в файле services-config.xml строчка
<endpoint uri="/amfphp/gateway.php" class="flex.messaging.endpoints.AMFEndpoint"/> менять uri="/amfphp/gateway.php"
__________________
Flex+AS3 good) |
|
|||||
|
Регистрация: Apr 2009
Адрес: Moskva
Сообщений: 20
|
Цитата:
<?xml version="1.0" encoding="UTF-8"?> <services-config> <services> <service id="sabreamf-flashremoting-service" class="flex.messaging.services.RemotingService" messageTypes="flex.messaging.messages.RemotingMessage"> <destination id="amfphp"> <channels> <channel ref="my-amfphp"/> </channels> <properties> <source>*</source> </properties> </destination> </service> </services> <channels> <channel-definition id="my-amfphp" class="mx.messaging.channels.AMFChannel"> <endpoint uri="http://user_auth.net/amfphp/gateway.php" class="flex.messaging.endpoints.AMFEndpoint"/> </channel-definition> </channels> </services-config> |
|
|||||
|
[+1 17.02.10]
Регистрация: Aug 2009
Адрес: Казахстан Усть-Каменогорск
Сообщений: 249
|
Слушай а база на том же сервере что и AMFPHP или на том где *.swf ?А все увидел так может проблемы в коннекте к базе? ты его настраиваешь в as-файле? import phi.interfaces.IQuery; import phi.interfaces.IDatabase; import phi.db.Database; import phi.db.Query; //_______________________________ private var db :IDatabase; private var query1 :IQuery; //_______________________________ private function onCreateComplete():void { db = Database.getInstance(); query1=new Query(); db.connect("conn1","root","","localhost","test",true); query1.connect("conn1",db); } ![]() Добавлено через 7 минут да и onCreateComplete() ну это ясно что при создании его воткнуть, но на всякий случай напишу)
__________________
Flex+AS3 good) Последний раз редактировалось lighto; 12.11.2009 в 12:15. |
|
|||||
|
Регистрация: Apr 2009
Адрес: Moskva
Сообщений: 20
|
база там же где и amfphp.
но прикол в том, что нет доступа к сервисам amfphp, вне зависимости от базы... базу из флекса я вообще не планирую трогать, мне нужны только сервисы... сервисы живут тут (на локале ессно) http://user_auth.net/ swf живет здесь http://flex_.net/AuthTest.swf запускаю http://flex_.net/AuthTest.html - получаю ошибку (см.выше) если скопировать AuthTest.* в http://user_auth.net/ и запускать оттедова, то все пашет как надо ... нарыл инфу про crossdomain.xml пробовал и так и этак - ниче не получается ![]() Последний раз редактировалось ltise; 12.11.2009 в 12:31. |
|
|||||
|
[+1 17.02.10]
Регистрация: Aug 2009
Адрес: Казахстан Усть-Каменогорск
Сообщений: 249
|
мда вы меня тоже заинтересовали. ну что сказать я не знаю(((. посмотрим что остальные скажут.
__________________
Flex+AS3 good) |
|
|||||
|
Регистрация: Oct 2009
Сообщений: 1
|
Доброго всем времени суток.
Подскажите, пожалуйста. К примеру есть mx:ScriptCDATA Bindable private var bt:Button=new Button; Bindable public var menuCollection:XMLListCollection; // создается на основе dataXML private function changeHandlerevent:MenuEvent:void var ob:Button = Buttonevent.item.data; //летит исключение private function init:void //инициализирующий метод menuCollection = new XMLListCollectionnew XMLListdataXML; /mx:Script mx:XML id="dataXML" menuitem label="Menu1" menuitem label="Test" type="check" data="bt"/ menuitem type="separator"/ menuitem label="Test" type="check" data="yes" menuitem label="one" group="gr1" type="radio"/ menuitem label="two" group="gr1" type="radio"/ /menuitem menuitem label="Test" type="check" data="yes"/ /menuitem /mx:XML mx:MenuBar labelField="label" dataProvider="menuCollection" itemClick="changeHandlerevent"/
__________________
обслуживание, гражданство россии |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:14. |
|
|
« Предыдущая тема | Следующая тема » |
|
|