Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Despre compania de aministrare Sq...

Durere taietura deget dupa 2 luni

Dalți gravare lemn

Didgeridoo
 Motorola Edge 50 Ultra

Gaura perete apartament cu evitar...

Orientare antena prime focus

Problema conectare mail yahoo
 comisioane asociatie proprietari

Primul sistem de televiziune cu p...

Internetul este neutilizabil fara...

Eroare cloud burn icopy face id
 DermaRoller ce este ?

Articole limba Germana

Cum se imparte legal o mostenire ...

Avem sanse sa avem energie electr...
 

Problema cu verificarea autentificarii

- - - - -
  • Please log in to reply
18 replies to this topic

#1
tepesdanu

tepesdanu

    Junior Member

  • Grup: Junior Members
  • Posts: 40
  • Înscris: 23.09.2017
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
LuvRaluK

LuvRaluK

    Active Member

  • Grup: Members
  • Posts: 1,578
  • Înscris: 27.09.2006
"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
tepesdanu

tepesdanu

    Junior Member

  • Grup: Junior Members
  • Posts: 40
  • Înscris: 23.09.2017

 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?
Nu returneaza nimic. Nici eroare macar.

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
romio79

romio79

    Active Member

  • Grup: Members
  • Posts: 1,655
  • Înscris: 30.03.2005
Pai e normal. In while ala intra doar daca query-ul returneaza ceva

#5
tepesdanu

tepesdanu

    Junior Member

  • Grup: Junior Members
  • Posts: 40
  • Înscris: 23.09.2017

 romio79, on 05 octombrie 2017 - 16:43, said:

Pai e normal. In while ala intra doar daca query-ul returneaza ceva
Nu. while se incheie inainte de catch.

#6
romio79

romio79

    Active Member

  • Grup: Members
  • Posts: 1,655
  • Înscris: 30.03.2005
Asa crezi tu

#7
tepesdanu

tepesdanu

    Junior Member

  • Grup: Junior Members
  • Posts: 40
  • Înscris: 23.09.2017

 romio79, on 05 octombrie 2017 - 16:44, said:

Asa crezi tu
http://prntscr.com/gtn1f9
Asa spune si eclipse.

Edited by tepesdanu, 05 October 2017 - 16:45.


#8
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,596
  • Înscris: 30.07.2003
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
tepesdanu

tepesdanu

    Junior Member

  • Grup: Junior Members
  • Posts: 40
  • Înscris: 23.09.2017

 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.
parantezele alea arata unde se incheie anume ciclu while.
Daca totusi e asa cum ziceti, ajutati-ma va rog  sa inteleg de ce ?

Edited by tepesdanu, 05 October 2017 - 16:52.


#10
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,596
  • Înscris: 30.07.2003
while (rs.next())
{
se intra aici daca rs are inregistrari.
}

#11
tepesdanu

tepesdanu

    Junior Member

  • Grup: Junior Members
  • Posts: 40
  • Înscris: 23.09.2017

 neagu_laurentiu, on 05 octombrie 2017 - 16:53, said:

while (rs.next())
{
se intra aici daca rs are inregistrari.
}
Serios ? Scuza-ma dar cred ca stiam asta.

#12
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,596
  • Înscris: 30.07.2003
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
LuvRaluK

LuvRaluK

    Active Member

  • Grup: Members
  • Posts: 1,578
  • Înscris: 27.09.2006
@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
tepesdanu

tepesdanu

    Junior Member

  • Grup: Junior Members
  • Posts: 40
  • Înscris: 23.09.2017

 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.
Multumesc. M-ai ajutat . Ceilalti incercau sa ma convinga precum campul while nu se termina mai devremedecat credeam eu . Ceea ce era gresit .

#15
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,231
  • Înscris: 24.02.2007
Codul are probleme grave de securitate. Ti se duce baza de date in cateva secunde daca se supara vreun utilizator.

#16
tepesdanu

tepesdanu

    Junior Member

  • Grup: Junior Members
  • Posts: 40
  • Înscris: 23.09.2017

 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.
Nu stiu sa securizez o aplicatie,  inca. Atata timp cat serverul nu se contine in cod si nici numele bazei de date e atat  de sensibila la daunatori ?Cum as putea sa o imbunatatesc?

Edited by tepesdanu, 05 October 2017 - 21:22.


#17
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,231
  • Înscris: 24.02.2007
Un prim pas: nu concatenezi niciodata stringuri pentru a forma o interogare, folosesti mereu parametrii.

#18
romio79

romio79

    Active Member

  • Grup: Members
  • Posts: 1,655
  • Înscris: 30.03.2005
Sau daca concatenezi, intai trebuie sa faci escape pe caracterele speciale

Anunturi

Second Opinion 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

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate