2013-10-01 34 views
1

我正在嘗試實現購物網站。點擊結帳按鈕,我試圖檢查用戶是否已經登錄或沒有。如果是想要向他顯示付款表格,請登錄表格。如何在HTML中存儲和使用會話ID

雖然他正在提供正確的信息(用戶名和密碼),但在登錄腳本中,我嘗試創建一個會話。

// On providing correct username and password 

use CGI::Session qw(); 
my $s = CGI::Session->new; 
$s->param(User_id => 12); 
my $id = $s->id; # e.g. '4cd29ac608405e4d0a463d153e64defd' 

我想利用該會話ID。

我的問題是如何將會話ID存儲在HTML中,並利用它根據此會話ID顯示不同的表單。

非常感謝您的幫助。

Devesh

+3

客戶端(瀏覽器)需要傳遞迴Web服務器,因此它通常存儲在cookie中。這是迄今爲止最簡單的方法。 – ikegami

+0

如果您想將它作爲CGI參數傳遞給您,您需要生成一個帶有值的隱藏字段和/或附加到發送給客戶端的頁面中的URL。 – ikegami

+0

我不會推薦基於隱藏輸入字段發送的id的授權,因爲它可能會引入安全問題。 – Sedi

回答

0

我就從閱讀此頁開始:http://perldoc.perl.org/CGI/Cookie.html

CGI :: Cookie對象將允許你存儲會話ID在瀏覽器的cookie。

這是例如如何保存和讀取cookies:

$cookie_sid = CGI::Cookie->new(-name=>'SID',-value=>$session_id); 

print header(-cookie=>[$cookie_sid]); 

# reading cookies 
%cookies = CGI::Cookie->fetch; 
$id = $cookies{'SID'}->value;