|
|
|||||
Регистрация: Aug 2014
Сообщений: 45
|
Класс для соединения PHP сервера
Добрый вечер..
Пытаюсь написать класс для соединения PHP сервера, но ничего не выходит, даже в голову не лезет Вот к примеру класс Server.as, как вызвать функцию из php файла method.php?? структура php примерно такая |
|
|||||
К примеру вот это на сервере, в файле call.php (он дальше указан в классе as3):
А так выглядит класс в as3, который получает данные с сервера package { import flash.events.Event; import flash.events.IOErrorEvent; import flash.events.SecurityErrorEvent; import flash.net.URLLoader; import flash.net.URLLoaderDataFormat; import flash.net.URLRequest; import flash.net.URLRequestMethod; import flash.net.URLVariables; public class Packet { public static const HOST: String = "http://server.com/"; public static const SCRIPT: String = "call.php"; private var _callback: Function = null; /** * * @param называние метода, который нужно вызывать на сервере, передается в * POST с ключом method * @param callback метод который вызывается после прихода ответа от сервера * должен принимать один параметр типа Object */ public function Packet(method:String, callback:Function, params:Object = null) { _callback = callback; var loader: URLLoader = new URLLoader(); loader.addEventListener(Event.COMPLETE, onComplete); loader.addEventListener(IOErrorEvent.IO_ERROR, onIOError); loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError); loader.dataFormat = URLLoaderDataFormat.VARIABLES; var vars:URLVariables = new URLVariables(); vars['method'] = method; if (params != null) { for (var i:String in params) { vars[i] = params[i]; } } var rand: String = "?" + int(Math.random() * 10000); var request:URLRequest = new URLRequest(Packet.HOST + Packet.SCRIPT + rand); request.method = URLRequestMethod.POST; request.data = vars; trace(request.data.toString()); try { loader.load(request); } catch (e:Error) { trace(e.getStackTrace()); } } private function onSecurityError(e:SecurityErrorEvent):void { e.target.removeEventListener(Event.COMPLETE, onComplete); e.target.removeEventListener(IOErrorEvent.IO_ERROR, onIOError); e.target.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError); } private function onIOError(e:IOErrorEvent):void { e.target.removeEventListener(Event.COMPLETE, onComplete); e.target.removeEventListener(IOErrorEvent.IO_ERROR, onIOError); e.target.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError); trace("INPUT / OUTPUT ERROR"); } private function onComplete(e:Event):void { e.target.removeEventListener(Event.COMPLETE, onComplete); e.target.removeEventListener(IOErrorEvent.IO_ERROR, onIOError); e.target.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError); var data:Object = e.target.data as Object; trace("PACKET DATA:", this, unescape(String(data))); if (_callback != null) { _callback.call(null, data); } } } } Собственно, можно примерно так. Естественно это упрощенный вариант, без каких-либо намеков на безопасность |
|
|||||
Регистрация: Aug 2014
Сообщений: 45
|
|
|
|||||
Цитата:
- вы посылаете некий запрос на сервер, - скрипт php расположеный по адресу запроса получает его и уже дальше решает как и кем ( каким именно классом/скриптом ) он будет обработан... ...насчет книжки замечание совершенно справедливое, браться за работу в среде в которой вы совершенно ничего не понимаете очень неправильно. На крайний случай есть форум php.su, и у них там кстати есть ( был ) раздел "Напишите за меня", может вам стоит туда постучаться |
|
|||||
Регистрация: Aug 2014
Сообщений: 45
|
|
|
|||||
Регистрация: Aug 2014
Сообщений: 45
|
так у меня это и было написано в первом посте....
Как её вызвать? Вот в чем у меня проблема |
Часовой пояс GMT +4, время: 03:08. |
|
« Предыдущая тема | Следующая тема » |
|
|