Python Forum

Full Version: Coding issue
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi guys! I'm new to python and coding in general. I'm trying to make a program which will register new users and login registered users. My issue is when I register a user using the program and attempt to login using the same username and password, the print says 'access denied' instead of what it should say, 'access granted'. I don't know what's the issue here. It would be great if you guys could help. Thanks! Here is the code:
a = input('Logging in or new user')
registration = []
passwords = []
if a == 'logging in':
    b = input('username')
    c = input('password')
    if b in registration:
        if c in passwords:
            print('Access granted')
        else:
            print('Access Denied')
    else:
        print('Access Denied')


if a == 'new user':
    d = input('New username')
    e = input('New password')
    f = input('confirm password')
    if e == f:
        print('Welcome ' + d)
        registration.append(d)
        passwords.append(e)
(edit: everything is properly indented)

Thank you Yoriz! I will follow these instructions next time.
Each time you run this code, the lists will be empty.
There is no loop to enable a login after a user has been added without the code ending.
Note: your logic will allow any username matched with any password to login.
You can use dict to store usernames and passwords instead of list, and save dict to a file and load it each time when you run the *program check my example bellow

import json
import os 


auth_file = "auth.json"
auth = None



def loadAuth():
    if os.path.isfile(auth_file):
        return eval(open(auth_file).read())
    return {}

def saveAuth():
    json.dump(auth, open(auth_file, 'wt'))


if __name__ == '__main__':
    auth = loadAuth()

    operation = input('Login in or new user: ')

    if operation == 'login':
        username = input('username: ')
        password = input('password: ')

        if username in auth.keys() and auth[username] == password:
            print('Access granted')
        else:
            print('Access Denied - Wrong username or password')

    elif operation == 'new user':
        username = input('New username: ')
        password = input('New password: ')
        password_conf = input('confirm password: ')

        if password == password_conf:
            if username not in auth.keys():
                auth[username] = password
                saveAuth()
                auth == loadAuth()
                print('Welcome ' + username)
                print (username,auth[username])
            else:
                print ("Username already exists")