Python脚本将用户名设为空

2024-04-25 23:58:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我的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.')

当我登录(注册后)时,会出现这样一条消息:用户名不应为空。我不明白为什么会将我键入的用户名设为空?谁能给我解释一下吗


Tags: nameinbrformidforinputdata
1条回答
网友
1楼 · 发布于 2024-04-25 23:58:04

在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.')

相关问题 更多 >