Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Coding issue
#1
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.
Reply
#2
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.
Reply
#3
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")
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  [split] Very basic coding issue aary 4 2,415 Jun-03-2020, 11:59 AM
Last Post: buran
  Very basic coding issue mstichler 3 2,553 Jun-03-2020, 04:35 AM
Last Post: mstichler
  Python Coding Issue! ankitdixit 3 79,982 Sep-25-2019, 06:31 AM
Last Post: rohanjoshi0894
  New member with simple coding issue shaikh 0 2,973 Apr-24-2017, 05:28 PM
Last Post: shaikh
  coding issue Lee 2 3,445 Feb-13-2017, 10:53 AM
Last Post: Lee

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020