|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Apr 2013
Сообщений: 10
|
Как передать сессию из php во flash?
Всем здравствуйте!
Ситуация следующая: Имеется пару php контроллеров с авторизацией... на странице одного из них есть флешка которая считывает xml файлик. Так вот когда я авторизовываюсь флешка подгружает не сам xml а естественно страницу авторизации с логином и паролем (в контроллере происходит редирект на авторизацию, если пользователь не авторизован). И сам вопрос который уже прозвучал в названии темы - "Как передать сессию из php во flash?". Во флеше я пока что не очень, поэтому буду рад самому максимальному разжовыванию...: ) Надеюсь все понятно пояснил. ну и сам код AS3: var info_txt:TextArea = panel_mc.main_mc.info_txt; var grabber:Grabber = new Grabber(); function dataGrabbed(event:Event):void { info_txt.text = grabber.data; } grabber.load("http://flash/func/grabber", "http://flash/func/index"); grabber.addEventListener(Event.COMPLETE, dataGrabbed); public class Grabber extends EventDispatcher { public var phpFile:String; public var remoteFile:String; public var req:URLRequest; private var vars:URLVariables = new URLVariables(); private var loader:URLLoader = new URLLoader(); public var data:String; public function Grabber() { } public function load(php:String, remote:String):void { phpFile = php; remoteFile = remote; req = new URLRequest(phpFile); vars.fileName = remoteFile; req.data = vars; req.method = URLRequestMethod.POST; loader.load(req); loader.addEventListener(Event.COMPLETE, contentLoaded); } private function contentLoaded(event:Event):void { data = loader.data; dispatchEvent(new Event(Event.COMPLETE)); } } |
|
|||||
Регистрация: Apr 2013
Сообщений: 10
|
А не могли бы вы по подробнее про "засунуть в vars" ... желательно код... Заранее благодарен.
|
|
|||||
Если флешка встраивается через SWFObject в страницу, то флешварс передается методу embedSWF седьмым аргументом
var params = { menu: "false", scale: "noScale", allowFullscreen: "false", allowScriptAccess: "always", bgcolor: "", wmode: "direct" }; var attributes = { id:"Main" }; var flashvars = { session: "<?php echo $my_session_id; ?>"}; // засовываем ID сессии с помощью php в код страницы swfobject.embedSWF( "Main.swf", "altContent", "100%", "100%", "10.0.0", "expressInstall.swf", flashvars, params, attributes); |
|
|||||
Регистрация: Apr 2013
Сообщений: 10
|
Цитата:
|
|
|||||
В ас3 в документ классе надо получить ссылку на эти переменные через:
package { public class Main extends Sprite { public function Main() { var flashVars:Object = stage.loaderInfo.parameters; trace(flashVars.session); // и тут посмотреть id сессии } } } Так же можно использовать ссылку на root вместо stage |
|
|||||
[+4 24.04.13]
[+4 20.04.13] Регистрация: Feb 2013
Адрес: Seireitei
Сообщений: 176
|
он имеет ввиду что все последующие POST запросы должны содержать id сессии
public function load(php:String, remote:String):void { phpFile = php; remoteFile = remote; req = new URLRequest(phpFile); vars.session_id = session_id; vars.fileName = remoteFile; req.data = vars; req.method = URLRequestMethod.POST; loader.load(req); loader.addEventListener(Event.COMPLETE, contentLoaded); } |
|
|||||
Регистрация: Apr 2013
Сообщений: 10
|
Цитата:
var info_txt:TextArea = panel_mc.main_mc.info_txt; var flashvars:Object = stage.loaderInfo.parameters; trace(flashvars.session); var grabber:Grabber = new Grabber(); Даже если каким то чудом у меня получится вывести сессию, то каким образом флешка будет понимать что это именно сессия? какое то условие нужно? Вот кстати вставка flash:
|
|
|||||
Цитата:
|
Часовой пояс GMT +4, время: 01:05. |
|
« Предыдущая тема | Следующая тема » |
|
|