Как проверить, существует ли имя пользователя в базе данных в сценарии cgi? - PullRequest
0 голосов
/ 28 ноября 2018

Я новичок.

Я пишу скрипт 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

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...