2009-11-24 101 views
-1

我已經試過沒有成功使用Perl CGI設置cookie。如何使用Perl CGI設置Cookie?

我的代碼如下所示:

$qry = new CGI 

$cookie = $qry->cookie(-name=>'SERVER_COOKIE', 
         -value=>'USER_NAME', 
         -path=>'/'), 
$qry->header(-cookie=>$cookie) 

的頁面不拋出任何錯誤,但沒有Cookie會設置!

我正在使用Firefox 3.5.5和附加組件來查看Cookie。

我在做什麼錯了?

迦特

+3

您似乎缺少語句末尾的分號。 – 2009-11-24 13:54:55

+1

對不起,但實際代碼中有分號。 – gath 2009-11-24 14:09:25

+3

那麼,你爲什麼不顯示實際的代碼?總是儘量減少你的問題到一個小測試程序,然後發佈該程序。不要從你的溼件內存中輸入代碼。而且,現在你知道這是錯誤的,那麼解決你的問題怎麼樣? – 2009-11-25 13:56:05

回答

5

如果你缺少分號只是貼上你的問題的神器,這裏的關鍵問題是,你需要調用printheader爲它獲取發送到瀏覽器。

print $qry->header(-cookie=>$cookie); 
+1

我試過了,但它只是在瀏覽器上顯示輸出set_cookie命令,但沒有設置cookie! – gath 2009-11-24 14:10:30

+5

@gath:如果您在瀏覽器中看到輸出,那是因爲您在此之前已經在某處輸出了HTTP標頭。這行必須是CGI腳本輸出的第一個東西。 – 2009-11-24 14:17:01

+1

確實如此,當打印CGI-> header(-cookie => $ cookie)是腳本的第一行時,它確實設置了cookie。我現在還想知道,在填補我的空白之後,爲什麼不同的價值將cookie設置爲...讓我想想 – gath 2009-11-24 15:17:51