Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 20.02.2015, 19:20
60reg вне форума Посмотреть профиль Отправить личное сообщение для 60reg Найти все сообщения от 60reg
  № 1  
Ответить с цитированием
60reg
 
Аватар для 60reg

Регистрация: Aug 2014
Сообщений: 45
По умолчанию Класс для соединения PHP сервера

Добрый вечер..
Пытаюсь написать класс для соединения PHP сервера, но ничего не выходит, даже в голову не лезет
Вот к примеру класс Server.as, как вызвать функцию из php файла method.php??
структура php примерно такая
PHP код:
<?php

 
function getContent() {
        echo 
"TEST...";
    }
?>

Старый 20.02.2015, 20:06
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 2  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Купите книжку по программированию.
__________________
Дети не должны знать о своих родителях

Старый 21.02.2015, 08:38
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 3  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
К примеру вот это на сервере, в файле call.php (он дальше указан в классе as3):

PHP код:
$method $_POST['method']; // получаем название переданного метода

if ($method == "getSomeData") {
    echo 
"reply=someData"


А так выглядит класс в 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);
			}
		}
	}
}
Используется так:
Код AS3:
var packet:Packet = new Packet("getSomeData", onReply); // передаем название метода, который нужно вызвать, и обработчик ответа
 
function onReply(params:Object):void {
    trace(params.reply);
}
Собственно, можно примерно так. Естественно это упрощенный вариант, без каких-либо намеков на безопасность

Старый 21.02.2015, 19:44
60reg вне форума Посмотреть профиль Отправить личное сообщение для 60reg Найти все сообщения от 60reg
  № 4  
Ответить с цитированием
60reg
 
Аватар для 60reg

Регистрация: Aug 2014
Сообщений: 45
Цитата:
Сообщение от Tails Посмотреть сообщение
Купите книжку по программированию.
Умник......

Старый 21.02.2015, 23:33
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 5  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
Цитата:
Сообщение от 60reg Посмотреть сообщение
Вот к примеру класс Server.as, как вызвать функцию из php файла method.php??
Постановка вопроса как минимум странная. Это вам не js, чтобы функции вызывать. Схема работы выглядит примерно так:
- вы посылаете некий запрос на сервер,
- скрипт php расположеный по адресу запроса получает его и уже дальше решает как и кем ( каким именно классом/скриптом ) он будет обработан...

...насчет книжки замечание совершенно справедливое, браться за работу в среде в которой вы совершенно ничего не понимаете очень неправильно. На крайний случай есть форум php.su, и у них там кстати есть ( был ) раздел "Напишите за меня", может вам стоит туда постучаться

Старый 21.02.2015, 23:52
alexandrratush вне форума Посмотреть профиль Отправить личное сообщение для alexandrratush Найти все сообщения от alexandrratush
  № 6  
Ответить с цитированием
alexandrratush
 
Аватар для alexandrratush

Регистрация: Jul 2013
Адрес: Днепр
Сообщений: 529
Отправить сообщение для alexandrratush с помощью ICQ Отправить сообщение для alexandrratush с помощью Skype™
60reg, если вы хотите вызывать методы php на стороне клиента, то в этом вам может помочь amfphp

Старый 24.02.2015, 13:29
60reg вне форума Посмотреть профиль Отправить личное сообщение для 60reg Найти все сообщения от 60reg
  № 7  
Ответить с цитированием
60reg
 
Аватар для 60reg

Регистрация: Aug 2014
Сообщений: 45
а почему с этим кодом в php не работает???

PHP код:
function getContent() {
        echo 
"TEST...";
    } 

Старый 24.02.2015, 13:36
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 8  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
А почему это должно работать? Чтобы метод сработал, нужно его вызвать.

Старый 24.02.2015, 17:09
60reg вне форума Посмотреть профиль Отправить личное сообщение для 60reg Найти все сообщения от 60reg
  № 9  
Ответить с цитированием
60reg
 
Аватар для 60reg

Регистрация: Aug 2014
Сообщений: 45
так у меня это и было написано в первом посте....
Как её вызвать?
Вот в чем у меня проблема

Старый 24.02.2015, 18:03
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 10  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
А я пост для кого писал?
Создавая тему на форуме, неплохо бы на ответы внимание обращать
Или вот этот пост для кого?
все ответы уже даны в теме

Создать новую тему Ответ Часовой пояс GMT +4, время: 02:07.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 02:07.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.