【发布时间】:2010-10-17 03:11:27
【问题描述】:
我正在使用 Python 的 SimpleCookie,我遇到了这个问题,我不确定它是否与我的语法有关。此外,这是我的 Python 课程的功课,所以它旨在教授 Python,所以这与我在现实世界中的做法相去甚远。
无论如何,所以基本上我将信息输入保存在 cookie 中的表单中。我正在尝试使用输入的新信息附加到以前的 cookie。但由于某种原因,在第三次数据输入时,cookie 突然在其中获得“\”。我不确定他们来自哪里。
这是我得到的输出类型:
"\"\\"\\\\"test:more\\\\":rttre\\":more\":and more"
#!/usr/local/bin/python
import cgi,os,time,Cookie
#error checking
import cgitb
cgitb.enable()
if 'HTTP_COOKIE' in os.environ:
cookies = os.environ['HTTP_COOKIE']
cookies = cookies.split('; ')
for myCookie in cookies:
myCookie = myCookie.split('=')
name = myCookie[0]
value = myCookie[1]
if name == 'critter' :
hideMe = value
#import critterClass
#get info from form
form = cgi.FieldStorage()
critterName = form.getvalue('input')
input2 = form.getvalue('input2')
hiddenCookie = form.getvalue('hiddenCookie')
hiddenVar = form.getvalue('hiddenVar')
#make cookie
cookie = Cookie.SimpleCookie()
#set critter Cookie
if critterName is not None:
cookie['critter'] = critterName
#If already named
else:
#if action asked, append cookie
if input2 is not None:
cookie['critter'] = hideMe+":"+input2
else:
cookie['critter'] = "default"
print cookie
print "Content-type: text/html\n\n"
if ((critterName is None) and (input2 is None)):
print """
<form name="critter" id="critter" method="post" action="critter.py">
<label for="name">Name your pet: <input type="text" name="input" id="input" /></label>
<input type="submit" name="submit" id="submit" value="Submit" />
</form>
"""
else:
formTwo ="""
<form name="critter2" id="critter2" method="post" action="critter.py">
<label for="name">%s wants to: <input type="text" name="input2" id="input2" /></label>
<input type="hidden" name="hiddenVar" id="hiddenVar" value="%s" />
<input type="submit" name="submit" id="submit" value="Submit" />
</form>
[name,play,feed,mood,levels,end]
"""
print formTwo % (critterName,critterName)
if 'HTTP_COOKIE' in os.environ:
cookies = os.environ['HTTP_COOKIE']
cookies = cookies.split('; ')
for myCookie in cookies:
myCookie = myCookie.split('=')
name = myCookie[0]
value = myCookie[1]
if name == 'critter' :
print "name"+name
print "value"+value
【问题讨论】:
-
非常有趣的格式。我看了看修复它,但它是标签汤。 :) 再试一次,清理它看起来像普通的 Python 代码,然后选择代码块并单击编辑器上方的“代码示例”按钮(“101010”之一)。
-
我很抱歉,希望这会更好。
标签: python