簡體   English   中英

似乎無法在Python(2.4)中訪問cookie

[英]Can't seem to access cookie in Python (2.4)

我有一個CGI腳本,已經為它成功設置了一個cookie(可以在Firefox / Chrome中看到它!),它具有(說)名稱uid和內容1。我似乎不明白如何訪問此cookie。來自另一個CGI腳本-我正在使用Python 2.4,因此我發現的許多示例可能都不適用。

此代碼顯示“無法獲取uid”,然后顯示頁面的其余部分:

c = Cookie.SimpleCookie(os.environ.get("HTTP_COOKIE"))
print("Content-Type: text/html")
print c.output()
print("\n\n")
uid = c.get("uid")
#uid = c["uid"].value # this would create an error and page would fail totally
if uid is None: 
    print("can't get uid")
    uid = 1 # set manually to prevent the rest of the page from failing

我沒有對cookie應用於的域做任何麻煩的事情,所以我不明白為什么它沒有抓住uid值。 順便說一句,如果我嘗試打印c.output(),則為空白。

首先,您確定Web服務器或框架正在設置HTTP_COOKIE環境變量嗎? 否則,在您的腳本之一中,您可能需要將cookie存儲在文件系統的CookieJar文件中,並從那里訪問設置的cookie。

import cookielib

COOKIEFILE = 'Cookies.lwp'
cookiejar = cookielib.LWPCookieJar()
cookiejar.load(COOKIEFILE)
cookiejar["uid"] = 1
cookiejar.save(COOKIEFILE)

加載相同的cookiejar並在其他腳本中獲取uid。

好吧,我想我明白了! 我確認os.environ.get(“ HTTP_COOKIE”)正在獲取某些東西,然后在我的小型測試中按照元素的順序進行播放,直到它起作用為止。 然后,我在更復雜的腳本中重現了該順序。 (特別是:內容類型聲明,兩個換行符,獲取cookie,從cookie獲取值以及其他所有內容。)

我對Python和CGI的主要了解是,元素的順序(從內容類型聲明開始)非常繁瑣。 非常感謝正確方向的提示。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM