Flash->JavaScript->PHP

Обсуждение серверного программирования.

Модераторы: Duncon, Yurich

qwertyuiop
Сообщения: 77
Зарегистрирован: 24 мар 2005, 11:00

Есть две Флэшки! В одной кнопка,в другой поле для ввода текста!!!
Как можно получить данные во flash-ролик из другого flash-ролика????????
Очень нужно!!!
Заранее благодарен!!!!
Аватара пользователя
Oscar
Сообщения: 963
Зарегистрирован: 29 май 2004, 13:44
Откуда: Мюнхен (рожден в Киеве)
Контактная информация:

Никогда с flash не имел дела.

Код: Выделить всё

<script type="text/javascript">
function transfer() {
	var flash1_input = document.getElementById('flash1').GetVariable("input");
	document.getElementById('flash1').SetVariable("output", flash1_input);
}
</script>
(с) Flash для чайников

Надеюсь, этот HTML подвязать к событию во flash не будет проблемой?


А если ты подфорумом не ошибся и переменную передавать нужно действительно через сервер, тогда читать тут:
http://www.citforum.ru/internet/flash/send_vars/
http://www.citforum.ru/internet/flash/load_text/
qwertyuiop
Сообщения: 77
Зарегистрирован: 24 мар 2005, 11:00

undefined
Извините,я скорее всего не так выразился!!!

Короче говоря:
Есть текстовое поле на флэше(для логина,пароля..неважно....)
и есть кнопка(лучше картинка,а не стандартная submit) Нужно как-нить получить значение этого поля и передать php(для авторизации...)......Но не знаю каким образом реализовать это,может на JavaScript,может ещё как-то?!
Сей гемморой вызван тем,что нельзя менять дизайн....Нужно поле для ввода сделать определённой формой(т.е. на флэше...)...

А вообще интересует тематика как получить данные из одного flash-ролика в другой,находящиеся на одной странице...!!!!
Аватара пользователя
Oscar
Сообщения: 963
Зарегистрирован: 29 май 2004, 13:44
Откуда: Мюнхен (рожден в Киеве)
Контактная информация:

qwertyuiop,
Если передать в PHP - смотри первую ссылку.

Если передача между flash-роликами без обращения к серверу - то код, который я написал.

Если же нужно проверить на PHP пароль, полученый из первого ролика, и лишь затем дать добро во второй, то нужно синхронизировать (соединить оба метода).

Простейший метод:
1. flash1 используя пример из send_vars (ф-ция loadVariables) отосылает пароль на сервер и тут же читает дано ли разрешение (это выведет php)
2. при помощи JavaScript устанавливает переменную "разрешение" во втором flash-ролике

Безопасность, правда, очень не надёжная.
Человек может без труда скачать второй flash-ролик, вставить его в HTML, где в обход опроса сервера напишет на JavaScript: Переменная "разрешение" = true

Более правильный вариант:
1. flash1 используя пример из send_vars (ф-ция getURL) отосылает пароль на сервер
2. на сервере php запускает сессию (или же пишет в какой-нибудь однозначный для каждого пользователя временный файл) с инициализированной переменной "разрешение"
3. flash1 говорит (при помощи JavaScript) flash2, чтобы тот задумался (устанавливает переменную, или же вызывает метод обьекта flash2)
4. flash2 при помощи LoadVariables читает файл с сервера (временный-текстовый, или php-файл, который проверяет переменную "разрешение" через сессию)
и лишь тогда открывает свою сущность.


В любом случае, про безопасность можно говорить только относительно, поскольку существует море flash-декодеров,
при помощи которых, скачав flash-файл, можно отключить все эти проверки.
qwertyuiop
Сообщения: 77
Зарегистрирован: 24 мар 2005, 11:00

Oscar писал(а):qwertyuiop,
Если передать в PHP - смотри первую ссылку.

Если передача между flash-роликами без обращения к серверу - то код, который я написал.

Если же нужно проверить на PHP пароль, полученый из первого ролика, и лишь затем дать добро во второй, то нужно синхронизировать (соединить оба метода).
Не то всё!!! :-)
Нужно по клику на картинке,которая выполняет роль кнопки submit,вызвать функцию javascript и получить значение переменной из flash и потом передать это значение php-скрипту!!!

Примерно так:
<form name="form_name" action="login.php" method="POST">
....
дальше флэшка идёт....// в ней текстовое поле!!!
.....
<img onclick=get_var()]
Ну...вот!!! Надеюсь меня поймут!!!?
Аватара пользователя
Oscar
Сообщения: 963
Зарегистрирован: 29 май 2004, 13:44
Откуда: Мюнхен (рожден в Киеве)
Контактная информация:

Немного не понимаю, где тут второй flash, но наверное это картинка на нём.

Суть происходящего ты, наконец-то, нормально описал.
В моём самом первом ответе находится вся необходимая информация для реализации.
Так какие проблемы, тебе готовый код, что ли, нужен ???
qwertyuiop
Сообщения: 77
Зарегистрирован: 24 мар 2005, 11:00

Такс....в принципе немного разобрался...
Только непонятно как из javascript передать переменные в php?!!

Просто что ль в самом коде пхп подставить имена переменных яваскрипт??!! Или как?
Аватара пользователя
Oscar
Сообщения: 963
Зарегистрирован: 29 май 2004, 13:44
Откуда: Мюнхен (рожден в Киеве)
Контактная информация:

Код: Выделить всё

<script type="text/javascript">
function get_var() {
	document.getElementById("flash_var_id").value = document.getElementById("flash_movie").GetVariable("input");
	document.getElementById("form_id").submit();
}
</script>
<form id="form_id" action="login.php" method="POST">
<input type="hidden" name="flash_var" id="flash_var_id">
<img onclick=get_var();>
<form> 
qwertyuiop
Сообщения: 77
Зарегистрирован: 24 мар 2005, 11:00

Oscar, не работает у меня этот скрипт!!! или я что то не так делаю...Или мы друг друга не поняли опять!!!
Во первых! Надо уточнить что к чему!!!
flash_movie = это id тэгов <object> и <embed>??? Так??
Что за функция или метод - GetVariable("input")??? И что такое "input" в ней??
JavaScript ругается,говорит типа не знаю я такую функцию....!!
Что делать???
qwertyuiop
Сообщения: 77
Зарегистрирован: 24 мар 2005, 11:00

Есть две флэшки в Дивах


<div id="login"><OBJECT classid="clsid :D 27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shoc ... on=6,0,0,0"
WIDTH="80" HEIGHT="13" id="login" ALIGN="">
<PARAM NAME=movie VALUE="login.swf"> <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#FFFFFF> <EMBED src="login.swf" swliveconnect=true quality=high bgcolor=#FFFFFF WIDTH="80" HEIGHT="13" NAME="login" ALIGN=""
TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></EMBED>
</OBJECT></div>

<div id="pass"><OBJECT classid="clsid :D 27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shoc ... on=6,0,0,0"
WIDTH="80" HEIGHT="13" id="pass" ALIGN="">
<PARAM NAME=movie VALUE="pass.swf"> <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#FFFFFF> <EMBED src="pass.swf" quality=high swliveconnect=true bgcolor=#FFFFFF WIDTH="80" HEIGHT="13" NAME="pass" ALIGN=""
TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></EMBED>
</OBJECT></div>
И форма:
<form id="form_id" action="login.php" method="POST">
<input type="hidden" name="flash_var" id="flash_var_id">
</form>
Функция ЯваСкрипт:
function flash_to_php()
{
var link_flash = document.getElementById("login").GetVariable("input");
document.getElementById("flash_var_id").value = link_flash
alert(link_flash)
//document.getElementById("form_id").submit();
}
И есть кнопка:
<div id="button">[url=javascript://][img]images/entry.gif[/img][/url]</div>
Ответить