Как я могу отправить строку из AS3 в файл PHP, чтобы его можно было использовать для выполнения запроса к базе данных - PullRequest
0 голосов
/ 06 октября 2011

Я создаю это приложение AIR на Flash CS5, и у меня есть этот TileList, который загружает его данные (изображения и имена) из базы данных.

Я хочу сделать запрос с именем любого элемента Tilelistкогда его щелкнули, мне нужно отправить имя этого элемента в файл PHP, который будет выполнять запрос.

Я думаю о функции, которая загружает имя элемента в переменную при нажатии на элемент.

Как я могу отправить его в файл PHP и как загрузить его в запрос?

Большое спасибо всем, кто помогает.

Обновление

Запрос, который я хочу получить в php-файле, выглядит примерно так: SELECT lat, lon FROM mapdata WHERE name = theVariable ;

Ответы [ 3 ]

0 голосов
/ 06 октября 2011

Вы можете использовать URLLoader для отправки и получения данных в / из веб-службы.Просто добавьте данные, которые вы хотите (вероятно, как URLVariables).Я бы не стал отправлять целые запросы вроде этого, очевидно, из соображений безопасности.

Не забудьте очистить ввод перед тем, как поместить его в запрос!

Я ничего не могу поделать с частью PHP - прошло много лет с тех пор, как я работал в PHP.Вы должны использовать $ _POST или $ _GET, и я подозреваю, что есть готовые функции для очистки данных, поэтому безопасно отправлять их в базу данных (в некоторой форме escape или encode).

0 голосов
/ 06 октября 2011

Как сказал Джонатан Хедборг:

var url:String = "http://www.[yourDomain].com/application.php";
var request:URLRequest = new URLRequest(url);
var variables:URLVariables = new URLVariables();
variables.exampleSessionId = new Date().getTime();
variables.exampleUserLabel = "guest";
request.data = variables;
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, onLoadData);
loader.addEventListener(IOErrorEvent.IO_ERROR, onDataFiledToLoad);
loader.addEventListener(IOErrorEvent.NETWORK_ERROR, onDataFiledToLoad);
loader.addEventListener(IOErrorEvent.VERIFY_ERROR, onDataFiledToLoad);
loader.addEventListener(IOErrorEvent.DISK_ERROR, onDataFiledToLoad);
loader.load(request);

function onLoadData(e:Event):void {
    trace("onLoadData result=" + e.target.data);
}
function onDataFiledToLoad(e:IOErrorEvent):void {
    trace("onDataFiledToLoad error=" + e.text);
}

Не забудьте добавить на свой сервер файл crossdomain.xml, например, если вы делаете запрос из другого домена.

0 голосов
/ 06 октября 2011

Вы можете отправить его через $ _GET или $ _POST в файл php. Get будет выглядеть так:

... query.php?string={ INSERT ENCODED STRING }
...