Second Opinion
Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale. Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit. www.neurohope.ro |
Problema cu verificarea autentificarii
Last Updated: Oct 06 2017 08:59, Started by
tepesdanu
, Oct 05 2017 16:17
·
0
#1
Posted 05 October 2017 - 16:29
Salut. Am o problema . Cand incerc sa verific daca loginul si parola introdusa in textfield corespunde cu cea din baza de date , se logheaza si imi afiseaza mesajul de succes, dar nu afiseaza nimic cand introduc date la intamplare.
Am afisat codul mai jos , daca puteti sa ma ajutati, va rog. btnlogin.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { if(arg0.getSource()==btnlogin) { try { rs=stmt.executeQuery("SELECT * FROM users WHERE login='"+tf_login.getText()+"' AND Password='"+tf_password.getText()+"'"); while (rs.next()) { if(tf_login.getText().equals(rs.getString("login"))){ if(tf_password.getText().equals(rs.getString("password"))){ JOptionPane.showMessageDialog(btnlogin, "Logare cu succes!"); student_login.setVisible(false); question_panel.setVisible(true); } else { System.out.println("Error"); JOptionPane.showMessageDialog(btnlogin, "Incorect password"); } } else { System.out.println("Error"); JOptionPane.showMessageDialog(btnlogin, "Incorect login"); } } } catch(Exception e2) { e2.printStackTrace(); } } } }); Scuzati ca am gresit compartimentul. Edited by tepesdanu, 05 October 2017 - 16:22. |
#2
Posted 05 October 2017 - 16:37
"dar nu afiseaza nimic cand introduc date la intamplare."
"The next method moves the cursor to the next row, and because it returns false when there are no more rows in the ResultSet object, it can be used in a while loop to iterate through the result set." Ce returneaza query-ul atunci cand sunt introduse date la intamplare? |
#3
Posted 05 October 2017 - 16:42
LuvRaluK, on 05 octombrie 2017 - 16:37, said:
"dar nu afiseaza nimic cand introduc date la intamplare." "The next method moves the cursor to the next row, and because it returns false when there are no more rows in the ResultSet object, it can be used in a while loop to iterate through the result set." Ce returneaza query-ul atunci cand sunt introduse date la intamplare? Ce e foarte straniu daca schimb conditia sa arate succesul in caz ca totul e introdus la intamplare nu merge si merge doar else. M-am referit la codul de mai jos . btnlogin.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { if(arg0.getSource()==btnlogin) { try { rs=stmt.executeQuery("SELECT * FROM users WHERE login='"+tf_login.getText()+"' AND Password='"+tf_password.getText()+"'"); while (rs.next()) { if(!tf_login.getText().equals(rs.getString("login"))){ if(!tf_password.getText().equals(rs.getString("password"))){ System.out.println("sUCCES"); student_login.setVisible(false); question_panel.setVisible(true); } else { System.out.println("Error"); JOptionPane.showMessageDialog(btnlogin, "Incorect password"); } } else { System.out.println("Error"); JOptionPane.showMessageDialog(btnlogin, "Incorect login"); } } } catch(Exception e2) { e2.printStackTrace(); } } } }); Edited by tepesdanu, 05 October 2017 - 16:42. |
#4
Posted 05 October 2017 - 16:43
Pai e normal. In while ala intra doar daca query-ul returneaza ceva
|
#5
Posted 05 October 2017 - 16:44
#7
Posted 05 October 2017 - 16:45
romio79, on 05 octombrie 2017 - 16:44, said:
Asa crezi tu Asa spune si eclipse. Edited by tepesdanu, 05 October 2017 - 16:45. |
#8
Posted 05 October 2017 - 16:50
Ce vrei tu sa demonstrezi cu acele acolade? Nu returneaza executia, nu se intra in while. Restul e cancan.
Edited by neagu_laurentiu, 05 October 2017 - 16:50. |
#9
Posted 05 October 2017 - 16:51
neagu_laurentiu, on 05 octombrie 2017 - 16:50, said:
Ce vrei tu sa demonstrezi cu acele acolade? Nu returneaza executia, nu se intra in while. Restul e cancan. Daca totusi e asa cum ziceti, ajutati-ma va rog sa inteleg de ce ? Edited by tepesdanu, 05 October 2017 - 16:52. |
#10
Posted 05 October 2017 - 16:53
while (rs.next())
{ se intra aici daca rs are inregistrari. } |
|
#11
Posted 05 October 2017 - 16:59
#12
Posted 05 October 2017 - 17:08
Si care-i linia ce crezi tu ca ti-ar spune ca nu-s date valide?
Eu nu o vad (daca mai vad bine): try { rs=stmt.executeQuery("SELECT * FROM users WHERE login='"+tf_login.getText()+"' AND Password='"+tf_password.getText()+"'"); while (rs.next()) { } } catch(Exception e2) { e2.printStackTrace(); } |
#13
Posted 05 October 2017 - 19:52
@tepesdanu eu ti-am dat raspunsul acum 3 (trei) ore dar tu te incapatanezi sa nu intelegi. In acelasi timp ii iei la misto pe cei care incearca sa te lamureasca (cum e neagu_laurentiu).
O sa mai incerc o data sa iti explic, poate vei intelege: I) faci o interogare la baza de date (partea cu "stmt.executeQuery") II) la pasul urmator zici "cat timp baza de date imi returneaza un rezultat" (partea cu while(rs.next())) - aici ai 2 variante: 1) baza de date ti-a returnat ceva; in acest caz la pasii urmatori verifici valoare campului "login", apoi cea a campului "password" si afisezi niste mesaje in functie de verificarile alea 2) baza de date n-a gasit nici o inregistrare care sa corespunda parametrilor (acel "introduc date la intamplare"); in acest caz corpul while-ului NU SE EXECUTA, iar deoarece nu a aparut nici un fel de exceptie (o eroare mai pe romaneste pentru tine) nu are ce sa iti logheze printStackTrace-ul ala. |
#14
Posted 05 October 2017 - 20:51
LuvRaluK, on 05 octombrie 2017 - 19:52, said:
@tepesdanu eu ti-am dat raspunsul acum 3 (trei) ore dar tu te incapatanezi sa nu intelegi. In acelasi timp ii iei la misto pe cei care incearca sa te lamureasca (cum e neagu_laurentiu). O sa mai incerc o data sa iti explic, poate vei intelege: I) faci o interogare la baza de date (partea cu "stmt.executeQuery") II) la pasul urmator zici "cat timp baza de date imi returneaza un rezultat" (partea cu while(rs.next())) - aici ai 2 variante: 1) baza de date ti-a returnat ceva; in acest caz la pasii urmatori verifici valoare campului "login", apoi cea a campului "password" si afisezi niste mesaje in functie de verificarile alea 2) baza de date n-a gasit nici o inregistrare care sa corespunda parametrilor (acel "introduc date la intamplare"); in acest caz corpul while-ului NU SE EXECUTA, iar deoarece nu a aparut nici un fel de exceptie (o eroare mai pe romaneste pentru tine) nu are ce sa iti logheze printStackTrace-ul ala. |
#15
Posted 05 October 2017 - 21:00
Codul are probleme grave de securitate. Ti se duce baza de date in cateva secunde daca se supara vreun utilizator.
|
|
#16
Posted 05 October 2017 - 21:13
dani.user, on 05 octombrie 2017 - 21:00, said:
Codul are probleme grave de securitate. Ti se duce baza de date in cateva secunde daca se supara vreun utilizator. Edited by tepesdanu, 05 October 2017 - 21:22. |
#17
Posted 05 October 2017 - 21:27
Un prim pas: nu concatenezi niciodata stringuri pentru a forma o interogare, folosesti mereu parametrii.
|
#18
Posted 06 October 2017 - 08:23
Sau daca concatenezi, intai trebuie sa faci escape pe caracterele speciale
|
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users