Взаймодействие Flash и php

Комментарии к статье
«Взаймодействие Flash и php»

Взаймодействие Flash и php


***

Я прошу прошенья, но не совсем ясен момент из последнего шага, а именно:
<?php
// получаем данные...
$input = file_get_contents("php://input");

Конкретно непонятно, что имеется ввиду под ("php://input");

объясню на примере я имею акшнскрипт:
login = new XML();
login = "<tag>"+word+"</tag>";
my_xml = new XML("");
my_xml.onLoad = show();
//функция show(); отображает
//данные из php файла
log = new XML(login);
log.sendAndLoad("page.php", my_xml);

Вопрос в том, как мне составить РНР файл, что б переменная word из акшнскрипта была также доступна и в РНР скрипте?
Я писал примерно следующее в этом месте:
$input = file_get_contents("php://input");//вместо php://input я вводил и word.txt и $word, и просто word, а также sfw-файл из которого этот акшн скрипт. Можно конкретней указать как переменную word из акшнскрипта можно вынять в РНР файл.
Буду очень признателен за ответ.

kengooroo (24.03.2006)

php://input — это один из так называемых потоков (Streams), он позволяет получить входные данные в php-скрипте, в данном случае — все, что передается флэшом. Подробнее можно посмотреть тут: http://www.php.net/m.../en/wrappers.php.php в принципе, есть и другие варианты получения данных. Например, $HTTP_RAW_POST_DATA — суперглобальный массив.
Чтобы его использовать, настройки php должны позволять размещать данные в этом массиве. (php_ini, always_populate_raw_post_data).

Естественно, вы не получили ничего, пытаясь получить word.txt или word.
Это попытки прочитать соответствующие файлы. А нужно читать не файл, а ту строку, которую передает Флэш.
Пример из статьи — работает. Для понимания как и что, нужно обратиться к руководству по php. Благо, их сейчас достаточно. Все получится. Я уверен.

schleicher (24.03.2006)

Спасибо огромное:)

kengooroo (24.03.2006)

Сайт у вас хороший.Ест чему учитса.Извините что задаю вопрос не по тему , но подходящего не нашол.У меня вот какая проблема,мне нужно из JScript передать переменные (конкретнее текст) в PHP.Не могли бы что то посоветоват.Спасибо.

Elchin (14.07.2006)

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

Из яваскрипта данные серверному сценарию передаются как обычно - методами GET и POST. Метод GET имеет некоторые ограничения по объему передаваемой информации. Зато, для его использования достаточно знаний таких js-штучек, как location.href и window.open... Просто, в параметрах URL вызываемого адреса php приложения указывам передаваемые переменные:
location.href="/script.php?var=value";
и, естественно, script.php должен считать из массива $_GET значение той самой ожидаемой переменной var ($var = $_GET['var']). Естественно, не забывать о безопасности и как следует отфиольтровать полученные данные.

Другое дело, если текста достаточно много, и подходит только метод POST. Здесь модно пользоваться AJAX'ом. Поподробнее можно посмотреть тут — http://ru.wikipedia.org/wiki/AJAX а там куча ссылок...

schleicher (17.07.2006)

Извините что загружаю еще одним нубовским вопросом:
А как передать данные из нескольких блоков из флешки в php скрипт а тот их перешлет на E-Mail например на мой...
У меня на флешки имеется:
Combobox2 - в ней категория:
imput text1 - там сообщение
imput text2 - там Э-Маил отправителя
И вот мне непонятно как несколько данных послать на PhP скрипт а тот их на мой Э-Маил...
Заранее благодарю!

Александр (22.09.2006)

а забыл...
Там отправка из флеш на php скрипт должна работать по нажатию кнопки button2

Александр (22.09.2006)

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

schleicher (22.09.2006)

Вы немоглибы показать или отослать скромный примерчик а то я в XML дуб :)
Я просто щас непонимаю какой код и где писать :(

Александр (22.09.2006)

И-эх! Ну представляешь, мне нужно оторваться от работы, вникнуть в твой проект, установить Flash IDE, написать два скрипта.
Просто нет времени! К тому же, тебе будет полезнее сделать все самому. Будет долго с первого раза, нужно будет почитать документацию, но вторую подобную задачу ты решишь быстрее...

schleicher (22.09.2006)

Все настроил спс за совет,
но возникла другая проблема:
Я сделал на PhP скрипт который должен посылать на мой Почтовый ящик, все посылается, только если текст транслитом то он его видит если кирилица то загагулины, я уверен что это в PhP дело так как он таким образом кодирует текст

Александр (22.09.2006)

Сколько уже было сказано миру: PHP делает только то, что его просишь. Вопрос кодировок. В какой кодировке флэш отдал данные, в той кодировке их получает пхп, в той их и отсылает. Сдается мне, что это UTF-8, как ты его «загогулинами» не обзывай! нужно либо сконвертировать данные в нужную тебе кодировку, либо в письме слать заголовки той кодировки, в которой в письме текст.

schleicher (22.09.2006)

СПС я решил и эту проблему!!!
Итак ОГРМНОЕ СПАСИБО schleicher.ru !!!

Александр (22.09.2006)

Хорошая статья, всё кратко и понятно, спасибо =)
Вот только тут ошибку нашёл:
[quote]
var receive_xml:XML = new XML();
recRive_xml.onLoad = function(success){
[/quote]
надо бы на "e" исправить =)

Random (22.10.2006)

А как можно при помощи PhP удалить нехилый кусок в текстовом файле...
Допистим что-бы удалял от text text text text
text
<text>
text<>
до этого момента...

Александр (3.11.2006)

Привет всем.У меня вот какая проблема.С помощю PHP5 скрипта создаю $dom = new DomDocument обйект, типа
<?xml version="1.0" ?>
<chatsozleri>
<chat>
<kim>
enybody
</kim>
</chat>
</chatsozleri>
и потом методом print $dom->saveXML() передаю в Flash. А в Flash-е етот XML обробатыватся со средствоми обйекта XML() уже на ActionScript-е. Проблема в том что во Flash-е ничего не обробатывается и не кокого еррора. Не работает nodeType, nodeName, nodeValue. По моему проблема не в скрипте а в <?xml version="1.0" ?>. Но если сохраняя XML без <?xml version="1.0" ?> в файл и загрузит етот файл в Flash все обробатывается. Как обойти эту проблемую. Вед DomDocument всегда возвращает XML с <?xml version="1.0" ?>. Спасибо,
и прошу прощения если не соблюдал правил.

Elchin (18.01.2007)

попробуй вырезать <?xml version="1.0" ?> и отправить данные скриптом. Так ты получишь точный ответ на свой вопрос. Будет очень забавно, если флэш расценивает пролог как node.
Кстати, какая версия плейера?

PS: падонкаффскую лексику тяжело читать. Прошу таки писать по-русски, а то люди могут не понять, что ты спрашиваешь.

schleicher (19.01.2007)

А как вырезать <?xml version="1.0" ?> не подскажите.
Вот это обрабатывающий скрипт.

function printXML(node, spaces) {
var str = "";
if (node.nodeType == 3) {
str = spaces+node.nodeValue+"\n";
} else {
var attr = "";
for (var i in node.attributes) {
attr += " "+i+"='"+node.attributes[i]+"'";
}
str = str+spaces+"<"+node.nodeName+attr+">"+"\n";
var tempNode = node.firstChild;
while (tempNode != null) {
str = str+printXML(tempNode, spaces+" ")+"\n";
tempNode = tempNode.nextSibling;
}
str = str+spaces+"</"+node.nodeName+">"+"\n";
}
return str;
}
var netice = new XML();
netice.contentType = "aplication/xml";
netice.onLoad = function(success) {
if (success) {
trace(this.toString());
_root.monitor.text = _root.printXML(this.lastChild, "");
} else {
trace("данные получить не удалось");
}
};

_root.mybutt.onPress = function() {
_root.netice.load("http://www.elgroup.biz/f_qb/chatfile.xml");
};

Он форматирует XML. Не firstChild не lastChild c <?xml version="1.0" ?> не работает.Работает только trace(this.toString()) .

Версия плейера 9.

Elchin (19.01.2007)

Здарствуйте, я пишу программу на заказ собирающую из rss данные и формирующию их и выводящую... но возникла проблема... видите ли, когда это просто запускаешь на компе или во флешке то все ок все робит, но как только встраиваешь в html, то... все перестает работать

Павел (31.07.2007)

Замечание по статье:
sendAndLoad имеет некоторые ограничения, цитирую: "Если ролик запущен в плеере версии более ранней, чем 7, url должен иметь тот же над-домен, что и SWF файл, загружающий данные. Над-домен получается путем удаления самой левой части URL. Например, SWF файл из www.someDomain.com может загружать данные из домена store.someDomain.com, так как у них один над-домен, someDomain.com.

В SWF файлах, проигрываемых во Flash Player 7 или более поздней версии, url должен указывать строго на тот же домен"

Ежека (23.08.2008)

Я совсем запуталась( Подскажите пож-та, мы можем реализовать подгрузку swf файлов с сервера в главную swf-ку при помощи LoadMovie? Зараниее спасибо!!!!

Надя (24.10.2008)

В принципе, естественно можем. Только вот в контексте данной статьи я не понял вопроса.

К слову, этой статье уже года три или четыре. Я с тех пор фактически не занимался флешом... Вряд ли мои слова будут стопроцентно полезными... А в эпоху флеш 5 - 7 в нем был на удивление внятный хелп... Почти все знания я тогда черпал оттуда.

schleicher (24.10.2008)

покажите норм пример получения данных из РНР пожалуйста =) а то никак не получается.. зарание благодарю

ETwfwef (4.07.2009)

аналогично.. не понимаю в чем может быть ошибка.. итог: в строке echo ничего не меняется

Артйом (11.07.2009)

Thank you very many dude.

AKOT (23.10.2009)

Давноо еще сюда зашел, проиндексировался сайт по статье этой статье , занимательная, статья, однако :) очень помогла, только есть один вопрос:
а если я, к примеру, хочу наоборот, переменную х, передать во флеш, какие мои действия?

Антон (15.11.2009)

О а я тут видел хороший сайт по этой статье <a href="http://hackones.net/">Хакер сайт</a>

54636 (15.01.2010)

отличная статья, но вот возникли вопросы. отправляю xml на сервер но вот в ответ получаю что то типа такого

myXML=%3Citem%3E%0A%20%20%3Cfr%3E456456%3C%2Ffr%3E%0A%20%20%3CcontentType%3Etext%2Fxml%3C%2FcontentType%3E%0A%3C%2Fitem%3E

подскажите пути решения)))
ps. php файл в utf8
заранее спасибо

Александр (17.02.2010)

Надо смотреть на тему urldecode или как оно там во флеше называется....

schleicher (18.02.2010)

а можно исходник посмотреть?

imusg (24.02.2010)

Очень полезный сайт, спасибо!
Нашел достаточно простой способ передать данные из ролика, как мне кажется:

var fl_var = "hello world";
getURL( "", "", "GET"); - в ролике

и

$ph_var = $_GET['fl_var']; - в php

Корректно работает только с методом _GEТ. (По сути дела php читает все переменные ролика из строки) А есть-ли какой-нибудь способ передать переменную ролику из строки?
Буду признателен, если поможете!

Shalamov (8.03.2010)

Принудительно - нет, процесс передачи данных должен быть инициирован роликом.

schleicher (8.03.2010)

Здравствуйте,

большое спасибо за познавательную статью, сейчас она выдается первой в Google по запросу "Flash php".

На моем хостинге нет Ajax, а также он находится за роутером в другой сети. Настройки этого роутера не позволяют узнать IP загружающих мой PHP скрипт, т.к. возвращается IP адрес этого самого роутера.

У меня следующий вопрос: можно ли при помощи JavaScript узнать IP адрес, а затем посредством того же JavaScript передать его в виде параметра на сервер? Если возможно, подскажите пожалуста команды или форму запроса.

Max Alchi (2.04.2010)

Спасибо за полезную информации, никто не мог мне объяснить, как flash взаимодействует с сервером.

Никита (11.04.2010)

Сделал пример не работает.. совсем туплю

flc.swf
-------
but.onPress = function()
{

var my_str = "blabla";
var my_xml:XML = new XML(my_str);
trace (my_xml.toString());
my_xml.contentType = "text/xml";
var receive_xml:XML = new XML();
recrive_xml.onLoad = function(success){
if(success){
trace(this.toString());
} else {
trace("данные получить не удалось");
}
}
my_xml.sendAndLoad("daemon.php", receive_xml);

}
------------

daemon.php
------------
<?php
// получаем данные...
$input = file_get_contents("php://input");

// ... что-то с ними делаем ...

// ... и выдаем результат
echo "Привет из php. Вы нам писали:".$input;
?>
----------

Ничего никуда не выводит.. :( Что не так??

n1ck (15.06.2010)

Здравствуйте.
Не запускается flash 3д галерея (swf+xml) на джумла 1.5. Вернее, с компа все работает, а с сайта не загружаются картинки.
Все коды, которые рекомендуют в инете не помогают отобразить flash, типа:
<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macr...bs/flash/swflash.cab#version=9,0,0,0"
WIDTH="600" HEIGHT="200" id="flash" ALIGN="">
<param name="allowScriptAccess" value="sameDomain" />
<PARAM NAME=movie VALUE="<?php echo $mosConfig_live_site;?>/templates/<?php echo $cur_template; ?>/slide.swf"/>
<PARAM NAME=quality VALUE=high />
<PARAM NAME=quality VALUE=high />
<param name="wmode" value="transparent" />
<EMBED src="<?php echo $mosConfig_live_site;?>/templates/<?php echo $cur_template; ?>/slide.swf"
WIDTH="600" HEIGHT="200" wmode=transparent
TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedi...om/go/getflashplayer"></EMBED>
</OBJECT>

или

<embed type="application/x-shockwave-flash" width="400" height="500" src="images/stories/test.swf" quality="best" wmode="Window"

pluginspage="http://www.macromedi...om/go/getflashplayer"></embed>

Помогите разобраться "чайнику".

Виктор (8.02.2013)

Надо проверять пути к файлам. Смотреть, что в итоге генерирует сервер и соответствует ли это реальности.

schleicher (8.02.2013)

Хммм... Это, походу, ActionScript 2 =)
А мне нужен ActionScript 3.
Метод -sendAndLoad- для объектов -XML- теперь не существует (искал в help.adobe.com).
Но спасибо за описание самой сути процесса.
- - -
Вроде бы, вот там, пишут чем заменить метод -sendAndLoad-:

http://evolve.reintr...vars-as3-equivalent/
(сайт английский, но код понятен всем)

ДенВик (1.03.2017)

добавить комментарий
Имя
e-mail
URL
Комментарий
Самизнаетечто

mem: 1232 total: 57 module: 30 xsl: 17