2017-11-13 2 views
0

Ich programmierte eine Python-Datei, die Sie registrieren können (Name, Passwort, EMail (mit Bestätigungs-EMail an Sie mit einem Code gesendet)) und nachdem Sie sind Registriert Ihre Daten werden jetzt in einer separaten Textdatei gespeichert Ich möchte, dass Python überprüft, ob Sie Ihren Benutzernamen eingeben, ob der Benutzername bereits existiert oder nicht.Überprüfen Sie separate Textdatei, ob Benutzername bereits existiert oder nicht (Python Registrierungsprogramm)

Es gibt diese names.txt Datei und es ist nur 1Line: Benutzername 2Line: Passwort 3Line: E-Mail-Adresse wenn Sie einen neuen hier registrieren Code eingeben unt es das gleiche unter dem ersten Konto in der txt zeigen Datei. Aber ich möchte, dass Python diese Textdatei jetzt während Ihrer Registrierung überprüft, ob Sie diesen Benutzernamen verwenden können, weil er noch nicht benutzt wurde, oder wenn der Benutzername bereits existiert und Sie einen anderen benutzen müssen.

import smtplib 
import random 
random.seed() 

registrated=False 

print("") 
print("Namen Kriterien:") 
print("-Mindestens 1 Buchstabe") 
print("-Mindestens 4 Zeichen lang, maximal 20!") 
print("-'Thats it!'") 
print("") 

fehler=1 
while fehler==1: 
    try: 
     print("") 
     name=input("Geben Sie Ihren Nutzernamen ein (4-20 Zeichen): ") 
     if len(name) > 20 or len(name) < 4: 
      print("Dein Name entspricht nicht den Kriterien!") 
     else: 
      print("") 
      print("Dein Name ist:",name) 
      print("") 
      fehler2=1 
      while fehler2==1: 
       try: 
        q1=input("Ist das richtig? (YES | NO): ") 
        q1.upper() 
        if q1=="YES": 
         print("") 
         fehler2=0 
         fehler=0 
        elif q1=="NO": 
         print("") 
         fehler2=0 


        else: 
         print("") 
         print("ERROR") 
         print("") 
         fehler2=1 
       except: 
        print("") 
        print("ERROR") 
        print("") 
        fehler2=1 

    except: 
     print("Versuche es nochmal!") 
     fehler=1 

print("Herzlichen Glückwunsch, dein Name ist",name) 
fehler1=1 
while fehler1==1: 
    try: 
     print("") 
     pw=input("Bitte gib dein Passwort ein (selbe Kriterien wie der Name): ") 
     if len(pw) > 20 or len(name) < 4: 
      print("Das Passwort entsprcht nicht den Kriterien!") 
     else: 
      pw1=input("Bitte bestätige dein Passwort: ") 
      if pw1==pw: 
       fehler1=0 
      else: 
       print("") 
       print("DEIN PASSWORT WAR FALSCH, BITTE WIEDERHOLEN!") 
       print("") 
       fehler1=1 
    except: 
     print("Versuche es nochmal!") 
     fehler1=1 
#Mail 
import smtplib 
import random 
from email.mime.text import MIMEText 
from email.mime.multipart import MIMEMultipart 
random.seed() 

while 1: 
    print("") 
    email=input("Please enter your email adress: ") 
    email1=input("Please confirm your email adress: ") 
    if email == email1: 
     break 
    else: 
     print("Something went wrongt, try again!") 

email_user='[email protected]' 
email_pw='mnstudiophytonnht1102' 
code=random.randint(10000,99999) 
body='Hi there, thanks for using mnstudio programs, your code is: '+str(code) 
subject='Registration to Mnstudio!' 
msg = MIMEMultipart() 
msg['From'] = email_user 
msg['To'] = email 
msg['subject'] = subject 
msg.attach(MIMEText(body,'plain')) 
text = msg.as_string() 


server= smtplib.SMTP('smtp.gmail.com',587) 
server.starttls() 
server.login(email_user,email_pw) 

fh=1 
fhh=1 
while fh==1: 
    try: 
     server.sendmail(email_user,email,text) 
     print("") 
     print("DONE EMAIL SENT") 
     print("") 
     print("We sent you an email with the confirmation code, please check spam as well if you cant find it!") 
     print("") 
     fh=0 
    except: 
     fhh=1 
     print("") 
     print("SOMETHING WENT WRONG WE'LL TRY AGAIN") 
     print("") 
     while fhh==1: 
      try: 
       print(email) 
       q=input("Is the email correct? (YES | NO): ") 
       print("") 
       q.upper() 
       if q=="YES": 
        fhh=0 
        fh=1 
       elif q=="NO": 
        fhh=1 
        email=input("Please enter your email again: ") 
        email1=input("Please confirm email: ") 
        if email==email1: 
         print("") 
         print("Thanks we'll try to send an email to,",email) 
         print("") 
         fhh=0 
         fh=1 
        else: 
         print("ERROR TRY AGAIN") 
         fhh=1 
         fh=1 
       else: 
        fhh=1 
        print("ANSWER WITH (YES | NO)") 
      except: 
       print("ANSWER WITH (YES | NO)") 
     fh=1 

server.quit() 


while True: 
    codeconfirm=int(input("Bitte geben Sie den Code ein: ")) 
    print("") 
    if codeconfirm==code: 
     registrated=True 
     print("CODE CORRECT") 
     print("") 
     break 
    else: 
     print("Code war falsch bitte noch einmal eingeben !") 


# 
if registrated: 
    dateihandler = open('names.txt', mode='a') 

    dateihandler.write("\n"+str(name)) 
    dateihandler.write("\n"+str(pw)) 
    dateihandler.write("\n"+str(email)) 
    dateihandler.write("\n") 

print("Danke du bist jetzt registriert! ") 
input("") 
+0

Sie sollten eine Datenbank verwenden, keine Textdatei. –

+1

Laden Sie Ihren Code hoch, damit wir sehen können, was funktioniert und was nicht. –

+0

@ cᴏʟᴅsᴘᴇᴇᴅ ist richtig, Sie sollten eine Datenbank verwenden und einige Technik als Index oder Primärschlüssel verwenden. Es wird Ihr Projekt verbessern. –

Antwort

0

Wenn Sie die Datei laden und laden Benutzernamen in einer einfachen Liste können Sie überprüfen, ob neue Benutzernamen vorhanden ist oder nicht in der Liste mit einfachen is ... in ... ist aber nicht sehr saubere Lösung, aber wenn Sie etwas Bewegung oder etwas tun, Das ist ein guter erster Schritt, aber ich wiederhole, ich denke, dass deine Lösung des Problems, das ich dir vorstelle, nicht gut in einem realen Szenario ist.

+0

Ok ich postete den Code ignorieren den Text in den Druck Klammern sein Deutsch –

+0

Ok, damit Sie wissen, wenn ich die names.txt-Datei in dem Ordner löschen, in dem dieser Code automatisch gespeichert wird erstellt eine neue Textdatei mit dem Namen names.txt, aber wenn diese Textdatei dort bleibt und Sie sie nicht löschen, wird sie Ihre Registrierungsinformationen am Ende hinzufügen Sie können es versuchen –

Verwandte Themen