Python скрипт принимает имя пользователя как пустое - PullRequest
0 голосов
/ 28 мая 2018

У меня проблема с моим кодом скрипта Python. Python играет роль сервера.Это моя форма входа в систему:

<form id="registration" action=>
            <label id = "kjo" for="button">EMAIL:</label>
            <input type="text" name="uname" id="username" placeholder="USERNAME"><br><br>
            <label for="button">PASSWORD:</label>
            <input type="password" name="PASS" id="userpwd" placeholder="PASSWORD"><br><br>
            <input type="submit" value="LOGIN" id="butt">
            <br><br>
            <a href="register.html">Premiere Connexion? </a>
        </form>

и это мой скрипт на python:

print('Cache-Control: no-cache')
print('Content-type: text/plain; charset=utf-8')
print('')


data_file = open('../data/user.dat','rb')
data = pickle.loads(data_file.read())
data_file.close()


form_data = dict()

form = cgi.FieldStorage()
for name in form.keys():
    if name.lower() == 'userpwd':
        form_data[name] = hashlib.sha512(form.getfirst(name).encode('utf-8')).hexdigest()
    else:
        form_data[name] = form.getfirst(name)


if not 'username' in form_data:
    print('The username should not be empty')
elif not 'userpwd' in form_data:
    print('Le mot de pass ne doit pas être vide.')
elif form_data['username'] == data['username'] and form_data['userpwd'] == data['userpwd']:
    print("Bonjour %s %s !" % (data['firstname'], data['lastname']))
else:
    print('Le nom d\'utilisateur et le mot de pass sont invalides.')

Когда я вхожу (после регистрации), появляется сообщение: Имя пользователяне должно быть пустым. Я не понимаю, почему имя пользователя, которое я ввожу, вводится как пустое?Может кто-нибудь объяснить мне, пожалуйста?

1 Ответ

0 голосов
/ 28 мая 2018

В форме HTML имя поля имени пользователя 'uname', поэтому вы должны проверить это.

form = cgi.FieldStorage()
for name in form.keys():
    if name.lower() == 'userpwd':
        form_data[name] = 
hashlib.sha512(form.getfirst(name).encode('utf- 
8')).hexdigest()
     else:
         form_data[name] = form.getfirst(name)

if not 'uname' in form_data:
     print('The username should not be empty')
 elif not 'userpwd' in form_data:
     print('Le mot de pass ne doit pas être vide.')
 elif form_data['uname'] == data['username'] and 
 form_data['userpwd'] == data['userpwd']:
     print("Bonjour %s %s !" % (data['firstname'], 
 data['lastname']))
 else:
      print('Le nom d\'utilisateur et le mot de pass sont invalides.')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...