Avatar billede rosgaard Nybegynder
16. marts 2005 - 11:08 Der er 25 kommentarer og
1 løsning

Password Check

Hej alle hjerner :DD

Har et lille problem eller to :)

Jeg har et login system som virker sådan nogenlunde, men der er hvert fald to fejl. Når jeg laver en ny bruger, tror jeg den gemmer den 3 gange, og kan ikk se hvorfor...

Og når jeg så skal logge ind , kan jeg ikk finde ud af at få sammenlignet de kodeordet med det brugernavn jeg har ...

Her er lidt af den kode som skal Checke om password er rigtigt ...

////////////////////
    public void load() {
        //map = (HashMap)obj.read();
        list = (ArrayList) obj.read();

    }


    public void OkButton_actionPerformed(ActionEvent e) {
        boolean PassCheck = false;
        //MainMenuFrame MMF = new MainMenuFrame();
        load();
        String u = list.get(0).toString();
        String p = list.get(1).toString();
        String pp = new String(UserPassTextF.getPassword());
        if (u.equalsIgnoreCase(UserNameTextF.toString()) == true) {
            System.out.println("Asdad");
            if (p.equalsIgnoreCase(pp) == true) PassCheck = true;

//////////


Hele koden kan hentes her : http://grob.1go.dk/bikecpu3.rar


Kan godt skrive hele koden her istedet, syntes bare det er sådan lidt besværligt ...

Håber nogle vil hjælpe

//Rosgaard
Avatar billede rosgaard Nybegynder
16. marts 2005 - 11:16 #1
Forresten, den kommer aldrig ud og skriver "System.out.println("Asdad");" ...Men jeg kan stadig ikk finde ud af hvad der er galt :(
Avatar billede kalp Novice
16. marts 2005 - 11:18 #2
se mit login system her:) men vil gerne se på din kode også
http://eksperten.dk/spm/596220
Avatar billede kalp Novice
16. marts 2005 - 11:22 #3
if (u.equalsIgnoreCase(UserNameTextF.toString()) == true){

hvorfor skriver du == true.. ? har aldrig arbejdet med hashmap.. bliver måske nød til at downlaode det du linker til hehe
Avatar billede kalp Novice
16. marts 2005 - 11:22 #4
if (u.equalsIgnoreCase(UserNameTextF.toString()) && p.equalsIgnoreCase(pp)) {
            System.out.println("Asdad");
         

burde den ikke være sådan
Avatar billede rosgaard Nybegynder
16. marts 2005 - 11:29 #5
Det virker stadig ikk, den får ikk lov at spamme "Asdad" ud :/
Avatar billede kalp Novice
16. marts 2005 - 11:30 #6
if (u.equalsIgnoreCase(UserNameTextF.toString()) && p.equalsIgnoreCase(pp)) {
            PassCheck = true;
else
System.out.println("Asdad");
}

skal den udskrive Asdad hvis man ikke findes?
Avatar billede rosgaard Nybegynder
16. marts 2005 - 11:33 #7
String u = list.get(0).toString();
        String p = list.get(1).toString();
        String pp = new String(UserPassTextF.getPassword());
        if (u.equalsIgnoreCase(UserNameTextF.toString()) && p.equalsIgnoreCase(pp)) {
       
        //if (u.equalsIgnoreCase(UserNameTextF.toString()) == true) {
            System.out.println("Asdad");
            if (p.equalsIgnoreCase(pp) == true) PassCheck = true;
        }

        System.out.println(u);
        System.out.println(p);
        System.out.println(pp);


Når jeg udskriver de 3 tilsidst for at teste, skriver den

Rosgaard

[C@18941f7

123

jeg ved ikk helt om jeg forstår det rigtigt, men den kan vel ikk finde ud af at sammenligne det password som er gemt sammen med brugernavnet, med det som jeg skriver i tekstboksen ??
Avatar billede rosgaard Nybegynder
16. marts 2005 - 11:34 #8
det der asdad, var bare for at se hvor langt den nåede .. Den når jo ikk engang igennem den første if sætning ... mere er der ikk i den .. :) hvis du forstår
Avatar billede kalp Novice
16. marts 2005 - 11:39 #9
okay er der flere brugere i systemet? for så skal det i hvertfald lige ind i en løkke
Avatar billede kalp Novice
16. marts 2005 - 11:39 #10
downloader lige din kode hehe
Avatar billede rosgaard Nybegynder
16. marts 2005 - 11:41 #11
ja, det havde jeg tænkt mig ... Men ville bare gerne have det til at virke med 1 bruger først ... Men hvis du har et helt andet forslag, så kigger jeg gerne på det ^^
Avatar billede arne_v Ekspert
16. marts 2005 - 11:44 #12
prøv at erstat

String p = list.get(1).toString();

med

String p = new String((char[]list.get(1));
Avatar billede rosgaard Nybegynder
16. marts 2005 - 11:51 #13
arne så siger den de her 2 fejl...

"LoginFrame.java": ')' expected at line 170, column 38
"LoginFrame.java": illegal start of expression at line 170, column 50
Avatar billede rosgaard Nybegynder
16. marts 2005 - 11:52 #14
bah kan starte med at læse hva der står inden jeg spørg en anden gang :P
har set fejlen
Avatar billede rosgaard Nybegynder
16. marts 2005 - 11:55 #15
så gik den amok arne_v ... Men først når jeg trykker på knappen ... Jeg kan godt compile lortet :(

java.lang.ClassCastException

    at bikecpu.LoginFrame.OkButton_actionPerformed(LoginFrame.java:170)

    at bikecpu.LoginFrame_OkButton_actionAdapter.actionPerformed(LoginFrame.java:222)

    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786)

    at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839)

    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)

    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)

    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245)

    at java.awt.Component.processMouseEvent(Component.java:5100)

    at java.awt.Component.processEvent(Component.java:4897)

    at java.awt.Container.processEvent(Container.java:1569)

    at java.awt.Component.dispatchEventImpl(Component.java:3615)

    at java.awt.Container.dispatchEventImpl(Container.java:1627)

    at java.awt.Component.dispatchEvent(Component.java:3477)

    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)

    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)

    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)

    at java.awt.Container.dispatchEventImpl(Container.java:1613)

    at java.awt.Window.dispatchEventImpl(Window.java:1606)

    at java.awt.Component.dispatchEvent(Component.java:3477)

    at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)

    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)

    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)

    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)

    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)

    at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
Avatar billede arne_v Ekspert
16. marts 2005 - 11:56 #16
Hm

System.out.println(p);

skal vel helst udskrive en password string

Jeg syntes bare at det lignede en char[] ...
Avatar billede _carsten Nybegynder
16. marts 2005 - 16:41 #17
UserNameTextF er et JTextField, så gu skal bruge getText() - ikke toString()

if (u.equalsIgnoreCase(UserNameTextF.getText()) == true) {
            System.out.println("Asdad");

Så ruller det sikkert, har ikke kigget efter flere fejl !!
Avatar billede _carsten Nybegynder
16. marts 2005 - 16:41 #18
gu = du :)
Avatar billede rosgaard Nybegynder
16. marts 2005 - 23:56 #19
Kigger lige på det i morgen ... :) Men tak ellers :DD
Avatar billede rosgaard Nybegynder
23. marts 2005 - 16:42 #20
hmm kalp ... Jeg har lavet det helt om, og valgt at tage det som du henviser til i det her spørgsmål http://eksperten.dk/spm/596220 ... Men jeg vil så gerne have at jeg selv kan lave brugeren, og at den gemmer det i en fil ... Er det noget du kan/gider hjælpe med :))
Avatar billede kalp Novice
23. marts 2005 - 16:44 #21
Det er let nok.. oprette brugere og gemme..
men er det i orden jeg laver det engang i aften? for er på vej til træning, bio og en masse andet:/

men kan have det klar til dig en gang i aften så har du det i morgen tidligt i hvertfald.
Avatar billede kalp Novice
23. marts 2005 - 20:21 #22
Du få alle klasserne herinde..


package mypackage;
import java.io.Serializable;

public class Bruger implements Serializable
{

private String brugernavn;
private String password;

  public Bruger(String user, String psw)
  {
  brugernavn = user;
  password = psw;
  }
 
  public boolean tjeck(String psw, String user)
  {
    if(psw.equalsIgnoreCase(password) && user.equalsIgnoreCase(brugernavn))
    {
      return true;
    }
    else return false;
  }

}








package mypackage;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;

public class Brugere implements Serializable
{

private ArrayList brugere;

  public Brugere()
  {
try {
      FileInputStream fis = new FileInputStream("data.dat");
      ObjectInputStream ois = new ObjectInputStream(fis);
      brugere = (ArrayList)ois.readObject();
      ois.close();
     
    }catch(Exception e){
    System.out.println(e);
    brugere = new ArrayList();
    }
  }
 
  public void gem()
  {
    try{
    FileOutputStream fos = new FileOutputStream("data.dat");
    ObjectOutputStream oos = new ObjectOutputStream(fos);
    oos.writeObject(brugere);
    oos.close();
   
    }catch(Exception e)
    {
     
    }
  }
 
  public void nybruger(String navn, String password)
  {
    brugere.add(new Bruger(navn, password));
    gem();
  }
  public boolean tjeck(String password, String brugernavn)
  {
    boolean test = false;
    for (int i = 0; i < brugere.size(); i++)
    {
    test = ((Bruger)brugere.get(i)).tjeck(password, brugernavn);
    if(test)
    {
      return test;
    }
    }
    return test;
  }
 
  public boolean tjeck(Bruger bruger)
  {
    for (int i = 0; i < brugere.size(); i++)
    {
      if(bruger.equals(((Bruger)brugere.get(i))))
      return true;
    }
    return false;
  }

}




package mypackage;
import javax.swing.JFrame;
import java.awt.Dimension;
import javax.swing.JPanel;
import java.awt.Rectangle;
import java.awt.Color;
import javax.swing.JLabel;
import java.awt.Font;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class GUI extends JFrame
{
  private JPanel jPanel1 = new JPanel();
  private JLabel jLabel1 = new JLabel();
  private JPanel jPanel2 = new JPanel();
  private JLabel jLabel2 = new JLabel();
  private JLabel jLabel3 = new JLabel();
  private JLabel jLabel4 = new JLabel();
  private JTextField jTextField1 = new JTextField();
  private JTextField jTextField2 = new JTextField();
  private Brugere brugere = new Brugere();
  private JButton jButton1 = new JButton();
  private JLabel jLabel5 = new JLabel();
  private JButton jButton2 = new JButton();
  public GUI()
  {
    try
    {
      jbInit();
    }
    catch(Exception e)
    {
      e.printStackTrace();
    }

  }

  private void jbInit() throws Exception
  {
    jPanel1.setVisible(false);
    this.getContentPane().setLayout(null);
    this.setSize(new Dimension(400, 300));
    this.setTitle("Login");
    jPanel1.setBounds(new Rectangle(0, 0, 395, 275));
    jPanel1.setForeground(new Color(107, 146, 214));
    jPanel1.setBackground(new Color(124, 178, 209));
    jPanel1.setLayout(null);
    jLabel1.setText("DU ER LOGGET IND I DEN HEMMELIGE ZONE");
    jLabel1.setFont(new Font("Tahoma", 1, 16));
    jLabel1.setBounds(new Rectangle(15, 110, 365, 20));
    jPanel2.setBounds(new Rectangle(0, 0, 395, 275));
    jPanel2.setToolTipText("null");
    jPanel2.setLayout(null);
    jLabel2.setText("Login");
    jLabel2.setBounds(new Rectangle(80, 95, 145, 25));
    jLabel2.setFont(new Font("Tahoma", 1, 19));
    jLabel3.setText("Brugernavn");
    jLabel3.setBounds(new Rectangle(80, 135, 150, 15));
    jLabel3.setFont(new Font("Tahoma", 1, 15));
    jLabel4.setText("Password");
    jLabel4.setBounds(new Rectangle(95, 160, 90, 15));
    jLabel4.setFont(new Font("Tahoma", 1, 15));
    jLabel4.setToolTipText("null");
    jTextField1.setBounds(new Rectangle(175, 130, 140, 20));
    jTextField2.setBounds(new Rectangle(175, 155, 140, 20));
    jButton1.setText("Login");
    jButton1.setBounds(new Rectangle(245, 190, 70, 30));
    jButton1.addActionListener(new ActionListener()
      {
        public void actionPerformed(ActionEvent e)
        {
          jButton1_actionPerformed(e);
        }
      });
    jLabel5.setBounds(new Rectangle(250, 240, 125, 25));
    jButton2.setText("opret brugere");
    jButton2.setBounds(new Rectangle(90, 15, 150, 35));
    jButton2.addActionListener(new ActionListener()
      {
        public void actionPerformed(ActionEvent e)
        {
          jButton2_actionPerformed(e);
        }
      });
    jPanel1.add(jLabel1, null);
    jPanel2.add(jButton2, null);
    jPanel2.add(jLabel5, null);
    jPanel2.add(jButton1, null);
    jPanel2.add(jTextField2, null);
    jPanel2.add(jTextField1, null);
    jPanel2.add(jLabel4, null);
    jPanel2.add(jLabel3, null);
    jPanel2.add(jLabel2, null);
    this.getContentPane().add(jPanel2, null);
    this.getContentPane().add(jPanel1, null);
  }

  private void jButton1_actionPerformed(ActionEvent e)
  {
  boolean test = brugere.tjeck(jTextField2.getText(), jTextField1.getText());
  if(test)
  {
    jPanel2.setVisible(false);
    jPanel1.setVisible(true);
  }
  else
  {
    jLabel5.setText("Du findes da vist ikke!!");
  }
  }

  private void jButton2_actionPerformed(ActionEvent e)
  {
  Nybruger s = new Nybruger();
  s.setVisible(true);
  }
}









package mypackage;
import javax.swing.JFrame;
import java.awt.Dimension;
import javax.swing.JButton;
import java.awt.Rectangle;
import javax.swing.JTextField;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JLabel;

public class Nybruger extends JFrame
{
  private JButton jButton1 = new JButton();
  private JTextField jTextField1 = new JTextField();
  private JTextField jTextField2 = new JTextField();
  private Brugere brugere = new Brugere();
  private JLabel jLabel1 = new JLabel();
  public Nybruger()
  {
    try
    {
      jbInit();
    }
    catch(Exception e)
    {
      e.printStackTrace();
    }

  }

  private void jbInit() throws Exception
  {
    this.getContentPane().setLayout(null);
    this.setSize(new Dimension(400, 300));
    jButton1.setText("Opret");
    jButton1.setBounds(new Rectangle(245, 170, 75, 23));
    jButton1.addActionListener(new ActionListener()
      {
        public void actionPerformed(ActionEvent e)
        {
          jButton1_actionPerformed(e);
        }
      });
    jTextField1.setText("brugernavn");
    jTextField1.setBounds(new Rectangle(165, 75, 165, 20));
    jTextField1.setToolTipText("null");
    jTextField2.setText("password");
    jTextField2.setBounds(new Rectangle(165, 110, 165, 20));
    jLabel1.setBounds(new Rectangle(235, 135, 140, 15));
    this.getContentPane().add(jLabel1, null);
    this.getContentPane().add(jTextField2, null);
    this.getContentPane().add(jTextField1, null);
    this.getContentPane().add(jButton1, null);
  }

  private void jButton1_actionPerformed(ActionEvent e)
  {
  brugere.nybruger(jTextField1.getText(), jTextField2.getText() );
  jLabel1.setText("Bruger oprettet");
  }
}



package mypackage;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.UIManager;
import java.awt.Dimension;
import java.awt.Toolkit;

public class Start
{
  public Start()
  {
    Frame frame = new GUI();
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    Dimension frameSize = frame.getSize();
    if (frameSize.height > screenSize.height)
    {
      frameSize.height = screenSize.height;
    }
    if (frameSize.width > screenSize.width)
    {
      frameSize.width = screenSize.width;
    }
    frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
    frame.addWindowListener(new WindowAdapter()
      {
        public void windowClosing(WindowEvent e)
        {
          System.exit(0);
        }
      });
    frame.setVisible(true);
  }

  /**
  *
  * @param args
  */
  public static void main(String[] args)
  {
    try
    {
      UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    }
    catch(Exception e)
    {
      e.printStackTrace();
    }

    new Start();
  }
}
Avatar billede kalp Novice
23. marts 2005 - 20:21 #23
og et svar evt.
Avatar billede arne_v Ekspert
23. marts 2005 - 20:40 #24
Jeg synes ikke at det er en god løsning.

1)  password kan med lidt held aflæse ved hjælp af notepad

2)  ved en ændring af Brugere klassen kan man risikere ikke at kunne
    genindlæse brugerne
Avatar billede kalp Novice
24. marts 2005 - 01:23 #25
Tjah jeg lavede bare det der blev efterspurgt:)
Avatar billede rosgaard Nybegynder
28. marts 2005 - 11:35 #26
ohh tak .. har lige været væk i påsken, men det ser ud som om jeg godt kan bruge det ....
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester