Просмотр полной версии : XML.send()
Люди, помогите глупому чайнику!
Как работает функция XML.send(URL), что она посылает по этому самому URL. И еще если можете дайте самый простенький примерчик (или ссылку) Как посредством этой функции связать Flash и серверный скрипт (язык безразличен, попробую понять).
PS: Просьба не издеваться. :)
whiteagle
17.10.2001, 20:44
посылает твой объект. на сервере ты этот объект обрабатываешь как и любое другое что пришло, ты ведь когда из формы что-либо постишь скрипту знаешь как это обрабатывать. или нет ? :)
вообщем получаешь объект, парсишь его ну и все нормально.
Ладно, покажу как я это делал, подскажите, в чем я неправ:
1) На кнопку в Flash вешаю следующий код:
loginXML = new XML();
loginElement = loginXML.createElement("LOGIN");
//username и password имена текстовых полей
loginElement.attributes.username = username;
loginElement.attributes.password = password;
loginXML.appendChild(loginElement);
loginXML.send("http://localhost/php/test.php");
2) Вот пример соответсвующего PHP скрипта (в нем я пытаюсь посмотреть все переменные переданные скрипту или методом POST или методом GET, и вывожу эти переменные в файл test_out.txt):
<?
$file = fopen('test_out.txt', 'w');
$k=@array_keys($HTTP_POST_VARS);
fputs($file, 'HTTP_POST_VARS'. "\n");
for($i=0; $i<count($k); $i++) {
fputs($file, $k[$i] . ' => ' . $HTTP_POST_VARS[$k[$i]]);
}
$k=@array_keys($HTTP_GET_VARS);
fputs($file, 'HTTP_GET_VARS');
for($i=0; $i<count($k); $i++) {
fputs($file, $k[$i] . ' => ' . $HTTP_GET_VARS[$k[$i]]);
}
fclose($file);
?>
Ну пусто в файле :(( Что же тогда Flash передает, где объект то? Кстати отвечать я Flash'у научился , а вот принять от него что-либо пока не могу, а жаль...
Персонально Белому Орлу, просьба. Пожалуйста нарисуй хоть какой нибудь скрипт, который мог бы проанализировать вышеуказанные переменные user и password (переданные как атрибуты элемента LOGIN (см. выше). Пожалуйста! А то всю голову изломал, уже побывал даже www.actionscript.com :(
whiteagle
18.10.2001, 18:20
сейчас под рукой у меня нет рабочего примера. все предельно просто:
у тебя есть хмл объект. у него есть имя. когда ты говоришь myXML.send(url); POST'oм идет строка myXML, но по формату это именно СТРОКА. это все равно что myXML='tralala';
В скрипте (на сервере) создаешь новый ХМЛ-объект. Как именно зависит от скрипта (ASP, JSP, CGI, PHP) , у них у всех различные парсеры, поэтому и методы создания различны. В методах объекта есть метод "загрузить". В качестве аргумента ты можешь поставить или имя файла (урл *.хмл) или хмл-строку. Вот нашу строку туда и вставляешь.
Ну во первых, большое спасибо whiteagl'у (пример конечно не привел), но навел на мрачные размышления ;) . А причина была в следующем: Вместо Publish Preview -> HTML я тестировал сцену сразу Control -> Test Movie. А в этом случае POST' ом ничего не передается. Ну а собственно строку я извлек следующим способом (в Perl):
open(F, ">xml_str.txt");
@params = $query->param();
$xml_str = "$params[0]=" . $query->param($params[0]);
print F $xml_str;
close(F);
Может, кто знает другой способ?
На Perl:
print "Content-type text/html\n\n";
sysread(STDIN, $xml, $ENV{'CONTENT_LENGTH'});
# теперь в $xml то что нам надо
И ничего более....
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.