2009-10-14 95 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.