从Python SimpleCookie中检索值并在SELECT查询中使用它

时间:2012-04-25 09:32:52

标签: python cookies cgi

我昨天发了一个问题: Redirect python script to another python script for validation of login credentials

在我完成这一点之后,我遇到了与cookie有关的另一个问题。我在python脚本代码的头部发送了cookie:

        #Create Cookie
        C= Cookie.SimpleCookie()
        #take the value of usernameLogin into the variable username
        username= form.getvalue('usernameLogin')
        #Set-Cookie header with the usernameLogin key
        C['usernameLogin'] = username

此代码位于上一个python脚本 validate.py

我想将Cookie发送到下一个脚本 page1.py 这是 page1.py 的代码:

import cgi
import cgitb
import sqlite3
import Cookie
import os

user_name=""
user_id=""
useridDb=""
resultid=""
resultname=""
idUser=""
if os.environ.has_key("HTTP_COOKIE"):
    C= Cookie.SimpleCookie(os.environ.get("HTTP_COOKIE",""))
    if C.has_key("usernameLogin"):
        user_name= C['usernameLogin'].value
        print user_name

form= cgi.FieldStorage()
cgitb.enable()

#Open connection
conn= sqlite3.connect("manager.db")


page1head= """

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>Excursions</title>
    <link rel='stylesheet' type='text/css' href='/page1.css/' />
    <script lang="javascript" type="text/javascript" src="/suggestions.js/"> </script>

</head><body>

    <div id="container">
        <div id="header">
            <h1>Field Note Manager</h1>
            <p class="description">Observe...Record...Save!</p>
        </div>

        <!-- Content Section -->
        <div id="wrapper">
        <!-- Main Content Section -->
            <div id="content">

                <h2>Excursions</h2>


                    <table CELLPADDING="10" ><tr><th> <strong> Location </strong> </th><th> <strong> Date </strong> </th> <th> Time </th></tr>"""

page2head="""</table>


            </div>
        </div>

        <!-- Logout Section -->
        <div id="navigation">

             <input type="hidden" name="greeting"/>
                         <form action="http://localhost:8000/cgi-bin/logout.py">
             <p><input type="submit" name="logoutBtn" value="Logout" /> </p>
            </form>
        </div>

        <!-- Extra Section for Queries -->
        <div id="extra">
            <h2>Quick Links</h2>            


            <dl> <dd><a href="http://localhost:8000/cgi-bin/query.py"/>Query the Database</a> </dd></dl>
            <dl> <dd><a href="http://localhost:8000/cgi-bin/addFieldNote.py"/>Add Field Note</a> </dd></dl>


        </div>

        <!-- Footer -->
        <div id="footer">
            <p>Copyright  42578647, 2012</p>
        </div> 
    </div>
"""

page1foot= """

</body>
</html>
"""


print "Content_type: text/html\n\n"
print page1head

#print excursion details
cur=conn.cursor()
resultid= cur.execute("SELECT userid FROM login WHERE username=?",[user_name])
cur.fetchone()
for data in resultid:
    idUser= int(data)
resultname= cur.execute("""SELECT location,excurDate,excurTime FROM excursion WHERE user=?""",[idUser])
cur.fetchall()
for record in resultname:
    print"<tr><td>",record[0],"</td><td>",record[1],"</td><td>",record[2],"</td></tr>"
print page2head
print page1foot

它打印页面,但不会生成任何查询。是因为cookie没有被检索和解析,或者SELECT语句有问题吗?

1 个答案:

答案 0 :(得分:0)

我找到了答案。尚未在之前的validate.py

标题之前设置Cookie