2012-04-10 203 views
0

我在我的Perl Web應用程序中使用CGI::Session進行會話管理。我可以使用file會話驅動程序創建會話,但我無法獲取現有會話並且無法訪問會話的存儲參數。Perl會話管理

我試圖讓現有的會話,但它是創造新的 和查詢字符串$CGISESSID都是相同的,但$session我在這裏得到了不同 它是一個完全新的,所以我無法從會話獲取存儲的參數。 請幫我解決這個問題。

感謝, 克里希納

+3

請向我們展示您的代碼。 – Borodin 2012-04-10 14:14:39

+0

典型的第一次錯誤在這裏:你沒有發送會話cookie到客戶端/用戶1)在正確的時間,2)根本。正如鮑羅丁所說,沒有看到你的代碼,沒有什麼人可以幫助你。 – Ashley 2012-04-11 12:43:03

回答

0

您正在打印的HTML內容做之前 打印$會話級>頭() ?

3

如其他人指出的那樣,如果您在每個請求中獲得新會話,那麼您不會在Cookie中發送會話ID。如果您正在使用CGI.pm來處理你的HTTP頭,這樣做:

print $q->header(-cookie => $session->cookie); 

如果你正在使用CGI ::應用爲你的應用程序框架,這樣做的設置()內或cgiapp_init()(如果有的話)

$self->header_add(-cookie => $session->cookie); 

或者,你可以使用CGI :: Session的自己的頭(),默認情況下,使用CGI ::頭方法:

print $session->header() 

使用CGI :: Session的公用事業(如cookie和/或標題)因爲他們履行cookie的到期設置。