2009-10-14 126 views
0

在flash中登录页面,用户将发送用户名和密码到一个php文件(login.php)。如果登录成功,它将返回回声“成功”并在那里创建会话。然后在闪光灯中,当我点击购物按钮,它会去www.domain.com/shopping/index.php,该index.php会做会话检查访问者是否已登录。但似乎,我需要再次登录才能进入页面。我在login.php中创建的会话变量在哪里?如何在Flash AS3和PHP之间共享会话?

如何在Flash和php之间共享会话变量?

+0

没有人回答我的问题:((((((使用 – blueredgreed 2009-10-14 11:18:06

+0

这个网站是一个很好的网站,但现在,没有任何反应,太失望了!!!!!!!!!!! !!!!!!!!!!!!! – blueredgreed 2009-10-14 11:36:06

+3

你刚刚问过这个问题几个小时,请耐心等待。这里的人们没有回答问题的回报:) – 2009-10-14 14:32:15

回答

0

这听起来像它可能不是一个闪光的问题?您可以测试以查看会话数据是否在两个普通页面之间持续存在?

就PHP和ActionScript共享变量而言,最好的办法是设置一个AMF remoting server。您可以使用Remoting Framework向服务器发送请求并获取本机ActionScript对象作为响应。 PHP应该能够跟踪用户会话并响应与会话相关数据的AMF请求。

希望这会有所帮助!

0

我现在正在解决同样的问题。我真的不知道如何在stackoverflow.com上标记或书签问题,但我向你保证我自己必须解决这个问题。当我完成后,我会尽快回复您

问候!

+0

我明白了,你可以通过点击下方的星形图标来进行评论:http://meta.stackexchange.com/questions/23670/can-i-bookmark -a-问题上堆栈溢出 – 2010-10-28 13:18:23

1

我明白了。

您可以执行从Flash到PHP的异步调用来获取会话。例如:

在你Actionscript.as:

public function session(continuation:Function) 
    { 
     var request:URLRequest = new URLRequest("backend.php"); 
     var loader:URLLoader = new URLLoader(); 
     loader.addEventListener(Event.COMPLETE, continuation); 
     loader.load(request); 
    } 

    public function function_that_uses_session() 
    { 
     this.session(function(evt:Event) 
     { 
      var omg_session = evt.target.data; 
     } 
    } 

在你backend.php

<?php echo $_SESSION['id']?> 

你也可以做JSON语法(或者如果你是受虐狂,做XML)为更复杂的数据结构。其余的就在于你的想象;)

我希望我不是太晚尚未解决你的答案

0

当你发送请求到PHP,闪光灯应该通过当前的会话ID吧,可惜闪光不这样做,所以需要将会话ID作为URL变量传递给PHP页面,以便您的PHP获得该会话。更多信息检查this.