Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
contraseñas login y bases de datos postgresql
#1
Buenas:

Como dice el título estoy teniendo problemas a la hora de crear una pequeña aplicación de login basada en base de datos.

En principio todo funciona correctamente siempre y cuando indiques la contraseña correcta, pero si te equivocas y tratas de rectificar el resultado es que siempre aparece el mensaje de contraseña no válida como si fuera un bucle a pesar de que la contraseña que estás introduciendo de nuevo corrigiendo la anterior sí es correcta. (No sé si me explico bien). ¿Puede que necesite hacer una "reconexión a la base de datos en la sentecia elif?.

Como una imagen vale mil palabras os pongo el código que estoy usando. Esta es la función que se conecta a la base de datos y comprueba que la contraseña es correcta).

  1. def abrisapp():
  2.  
  3. # PARAMETERS CONNECTION
  4.  
  5. psql_HOST = "127.0.0.1"
  6. psql_PORT = "5432"
  7. psql_USER = "postgres"
  8. psql_PASS = "2208"
  9. psql_DB = "cronas"
  10.  
  11. usur = self.comusu.get()
  12. valid = self.enusu.get()
  13. CAT = self.comusu.get()
  14. query = "SELECT passwor FROM claves WHERE usuario="+"'" + usur + "'" + ";"
  15.  
  16. try:
  17. connstr = "host=%s port=%s user=%s password=%s dbname=%s" % (psql_HOST, psql_PORT, psql_USER, psql_PASS, psql_DB)
  18. conn = psycopg2.connect(connstr)
  19. cur = conn.cursor()
  20. cur.execute(query)
  21. row = cur.fetchall()
  22. conn.commit()
  23. cur.close()
  24. conn.close()
  25.  
  26. def printpasswor():
  27.  
  28. self.usuval.insert(0, row)
  29.  
  30. if self.usuval.get() == valid:
  31.  
  32. #CAT = self.comusu.get()
  33.  
  34. self.prinapp = Tk()
  35. self.prinapp.title("CENTRO DE CONTROL DE DATOS")
  36. self.prinapp.geometry('1680x1050')
  37. self.prinapp.resizable(False, False)
  38. self.prinapp.protocol("WM_DELETE_WINDOW", nocerrprinapp)
  39.  
  40.  
  41. # FRAMES PRINAPP
  42.  
  43. self.frameprinapp1 = ttk.Frame(self.prinapp, style="Frames.TFrame")
  44. self.frameprinapp1.grid(row=0, column=0)
  45.  
  46. self.frameprinapp2 = ttk.Frame(self.prinapp, style="Frames.TFrame")
  47. self.frameprinapp2.grid(row=1, column=0)
  48.  
  49. # LABELS PRINAPP
  50.  
  51. self.labprinappcat = ttk.Label(self.frameprinapp1, text='C.A.T', font=('Gentium', 12, 'bold'), relief='groove', borderwidth=5, background='light green')
  52. self.labprinappcat.grid(row=0, column=0, pady=3)
  53.  
  54. self.labprinappCAT = ttk.Label(self.frameprinapp1, text=CAT, font=('Gentium', 20, 'bold'), relief='sunken', background='#EAFF92', borderwidth=2, foreground='dark blue')
  55. self.labprinappCAT.grid(row=1, column=0, padx=5)
  56.  
  57.  
  58. # MENU PRINAPP
  59.  
  60. self.menubar = Menu(self.prinapp, tearoff = False, font=('Gentium', 10, 'bold'), relief='ridge', activebackground='light green')
  61. self.menuprinapp = Menu(self.menubar, tearoff = False, font=('Gentium', 10, 'bold'), activebackground='light green')
  62. self.menuprinapp1 = Menu(self.menubar, tearoff = False, font=('Gentium', 10, 'bold'), activebackground='light green')
  63. self.menuprinapp2 = Menu(self.menubar, tearoff = False, font=('Gentium', 10, 'bold'), activebackground='light green')
  64. self.menuprinapp3 = Menu(self.menubar, tearoff = False, font=('Gentium', 10, 'bold'), activebackground='light green')
  65. self.menuabci = Menu(self.menuprinapp, tearoff = False, font=('Gentium', 10, 'bold'), activebackground='light green')
  66. self.menuabci1 = Menu(self.menuprinapp, tearoff = False, font=('Gentium', 10, 'bold'), activebackground='light green')
  67. self.menuabci2 = Menu(self.menuprinapp, tearoff = False, font=('Gentium', 10, 'bold'), activebackground='light green')
  68.  
  69. self.menuprinapp.add_cascade(label='Centro Control Logístico', menu=self.menuabci)
  70. self.menuprinapp.add_cascade(label='Centro Control Geográfico', menu=self.menuabci1)
  71. self.menuprinapp1.add_command(label='Ir a ...')
  72.  
  73. self.menuabci.add_command(label= 'Abrir', command=abreCCL, state='disabled')
  74. self.menuabci.add_command(label= 'Cerrar', command=cierraCCL)
  75.  
  76. self.menuabci1.add_command(label= 'Abrir')
  77. self.menuabci1.add_command(label= 'Cerrar')
  78.  
  79.  
  80. self.menuprinapp.add_separator()
  81. self.menuprinapp.add_command(label= "Salir de Aplicación", command=quitapp)
  82.  
  83. self.menubar.add_cascade(label = "Centros de Control", menu=self.menuprinapp)
  84. self.menubar.add_cascade(label = "Circulares", menu=self.menuprinapp1)
  85. self.menubar.add_cascade(label = "Procedimientos", menu=self.menuprinapp2)
  86. self.menubar.add_cascade(label = "Manual", menu=self.menuprinapp3)
  87.  
  88. self.prinlog.destroy()
  89. self.prinapp.configure(menu=self.menubar)
  90. openCCL(self)
  91.  
  92. elif self.usuval.get() != valid:
  93. messagebox.showinfo(message='La contraseña no es válida', title='ADVERTENCIA')
  94.  
  95. printpasswor()
  96.  
  97. except:
  98. print("Error en la conexión a la base de datos")
Responder


Mensajes en este tema
contraseñas login y bases de datos postgresql - por Myszowor - 05-09-2019, 07:40 AM

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)