即使瀏覽器已關閉,我也希望用戶不必登錄。我的cookies將在一個月後過期。Perl CGI永久性Cookies
當成功地
$session = CGI::Session->new (undef, undef, {Directory=>'tmp/'})
or die CGI::Session->errstr;
$session->param('username', $username);
$session->expire('+1M');
$cookie = $cgi->cookie(-name=>$session->name, -value=>$session->id);
print $cgi->header(-cookie=>$cookie);
用戶登錄然後它們被重定向到他們,只要他們不要關閉瀏覽器訪問另一個頁面。這是第二頁中的代碼:
my $cookie = $cgi->cookie('CGISESSID');
if ($cookie){
print $cgi->header(-cookie => $cookie);
else{
//ask them to relog in
}
我可以看到在tmp /中創建的會話。如何在瀏覽器關閉後加載現有的cookie。我如何知道基於用戶/瀏覽器加載哪個會話?
謝謝。我已閱讀文檔,這就是爲什麼我不確定爲什麼我的$ cookie = $ cgi-> cookie('CGISESSID');沒有返回任何東西?我正在第二個文件中創建一個新的cgi對象,也許這就是爲什麼? – Jabda
@Jabda你是否檢查過你的瀏覽器實際上收到了cookie,並且它有正確的會話ID?在Firefox中,您可以通過編輯 - >首選項 - >隱私 - >刪除單個Cookie來完成此操作。您會看到所有存儲的Cookie列表,按站點排列。還有一個搜索功能。 – ThisSuitIsBlackNot
是的,我只在關閉瀏覽器之前纔看到cookie。當我重新打開瀏覽器並返回到頁面時,瀏覽器中沒有cookie(它們位於/ tmp中) – Jabda