Python Cookie已设置,但apache表示会话变量不存在

Python Cookie已设置,但apache表示会话变量不存在,python,session,cgi,Python,Session,Cgi,我使用cgi python实现一个登录页面,其中包含以下函数。这些函数存储在一个单独的文件下,该文件根据需要导入。checkCookie()抛出一个异常,称为cookie['session']不存在。但我将setCookie()的输出作为setCookie:session=admin;最大年龄=3600当我关闭从登录页面到主页的重定向时 def setCookie(): print "Content-type: text/html\n\n" c=Cookie.SimpleCo

我使用cgi python实现一个登录页面,其中包含以下函数。这些函数存储在一个单独的文件下,该文件根据需要导入。
checkCookie()
抛出一个异常,称为cookie['session']不存在。但我将
setCookie()
的输出作为
setCookie:session=admin;最大年龄=3600
当我关闭从登录页面到主页的重定向时

def setCookie():
     print "Content-type: text/html\n\n"
     c=Cookie.SimpleCookie()
     c['session']='admin'
     c['session']['max-age']=60*60
     print c
     return True

def checkCookie():
    cookie=Cookie.SimpleCookie()
    if os.environ.has_key('HTTP_COOKIE'):
        cookie.load(os.environ['HTTP_COOKIE'])
        if cookie['session'].value=='admin':
            return True
    return False
额外信息:上述函数位于一个名为
commons.py
的文件中。
setCookie()
verify.py
checkCookie()
调用,这两个函数都位于同一目录中。此外,大部分脚本都是在PHP5中完成的。Python CGI仅用于管理界面

为什么不读取cookie


另外,如何在python cgi中取消设置cookie?

首先,您确实不应该使用cookie进行授权。用户所要做的就是在本地设置一个cookie,其中session=admin和bam,它们在您的admin中,不需要登录。也就是说,COOKIE.load()之前的os.environ['HTTP_COOKIE']值是多少?
csrftoken=e1919a9b86275205a0019298519c9beb sessionid=ee73be9c82db1fcdacbded23978f75
php COOKIE也会影响python cgi COOKIE吗?它们会不同吗?我不知道php COOKIE是否会干扰;这取决于PHP代码到底在做什么。他们很容易互相干扰。无论如何,这些cookie没有“session=admin”条目,这就是为什么cookie['session']是一个键错误。您的setCookie在content-type下面有两个换行符,这意味着set-cookie头实际上进入了响应体。。。你需要改变很多事情才能让它正常工作。我建议只使用现有的Python会话库,这也将避免信任用户提供的cookie的安全漏洞。此外,表单是否可以提交到cgi Python中的函数而不是文件中?我相信这在django中是可能的