如何检查CGI脚本中的数据库中是否存在用户名?

时间:2018-11-28 12:35:42

标签: python-3.x sqlite cgi

我是新手。

我正在编写一个cgi python3脚本,该脚本将允许用户登录到网页并查看数据库信息。用户的用户名和密码也存储在此数据库中。

如果输入的密码与数据库中用户名的密码不匹配,我当前的脚本将成功退出该脚本,但是如果用户名不存在,则不会退出。 (第[1]行包含用户名,第[2]行包含密码)

为什么脚本会检查密码是否匹配,但用户名不匹配?我要使用什么命令脚本来检查用户名是否匹配?

#!/usr/bin/python3
import cgi
import cgitb
cgitb.enable()

# HTML Content - BEGIN
print("<h1>User Login</h1>")
data = cgi.FieldStorage()
username= data['username'].value    
password= data['password'].value    

#prints form data submission
print("username= " + username)
print("    password= " + password)

#Import Database
import sqlite3
conn = sqlite3.connect('/directory/path/database.db')
c = conn.cursor()


# ***WORK IN PROGRESS***
for row in c.execute(f"SELECT * FROM Table WHERE username = '{username}'"):
    if row[1] != username:
        print("ERROR! No Username!")
        sys.exit()
    if row[2] != password:
        print("ERROR! Wrong password!")
        sys.exit()
#***WORK IN PROGRESS***

#Display personal information
print ("<h1>personal information</h1>")
#HTML CONTENT - END

谢谢。

0 个答案:

没有答案