2017-11-13 14 views
0

登録することができるPythonファイルをプログラムしました。(名前、パスワード、EMail登録されたデータが別のテキストファイルに保存されているので、ユーザー名がすでに存在するかどうかをPythonが確認するようにします。ユーザー名が既に存在するかどうかを確認する(Python Registration Programm)

あり、このnames.txtファイルであり、それだけで 1LINEです:ユーザー名 2Line:パスワード 3Line:メールアドレスあなたはそれがTXTに最初のアカウント以下同じが表示されますここにUNT新しい入力したコードを登録 ファイル。 しかし、私はあなたの登録中にこのテキストファイルをチェックして、今のところ使用されていないか、またはユーザ名が既に存在し、別のものを取らなければならないので、このユーザ名を使用できるかどうかを確認します。あなたは、ファイルをロードし、単純なリストでユーザ名を読み込む場合は、いくつかの運動か何かをやっている場合

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

テキストファイルではなく、データベースを使用する必要があります。 –

+1

コードをアップロードして、動作しているものとそうでないものを確認します。 –

+0

@cᴏʟᴅsᴘᴇᴇᴅが正しければ、データベースを使用して、インデックスまたは主キーとして何らかの手法を使用する必要があります。それはあなたのプロジェクトを改善するでしょう。 –

答えて

0

新しいユーザ名が存在するか簡単なis ... in ...とリストにはなく、非常にクリーンなソリューションであるかどうかを確認することができますが、これは良い最初のステップですが、繰り返しますが、私が想像している問題に対するあなたの解決策は、実際のシナリオではうまくいかないと思います。

+0

私はコードを掲載しています。ドイツ語の印刷括弧内のテキストを無視してください –

+0

このコードが自動的に保存されているフォルダのnames.txtファイルを削除するとわかりましたnames.txtという名前の新しいテキストファイルを作成しましたが、このテキストファイルが残っていて削除しないと、最後に登録情報が追加されます –

関連する問題