Jump to content
plm

comparar username e password a partir de um ficheiro

Recommended Posts

plm

Boa noite,

Queria construir um sistema que faz o registo e login com interface gráfica.

Eu faço o registo e guarda num ficheiro dat e depois ao fazer login e compara username e password para fazer login, só que ao fazer login diz que está sempre incorrecto.

Não sei se estou a ler do ficheiro da maneira correcta se é a estou a escrever no ficheiro de maneira errada.

classe Registo:

private static GuardaFicheiro fichEscrita = new GuardaFicheiro();
public void registo() {
String user,passw,repPassw;
ArrayList<Registo> registo=new ArrayList<Registo>();
try{
user=textUser.getText();
passw=textPassword.getText();
repPassw=textRepPassword.getText();
Registo reg=new Registo(user,passw,repPassw);
fichEscrita.EscreveFicheiro(registo,"Registo.dat");
JOptionPane.showMessageDialog(null,"Registado com Sucesso");
setVisible(false);
new JanelaLogin().setVisible(true);
}catch(ValidaRegisto v){
JOptionPane.showMessageDialog(null,v.getMessage());
}
}

classe Login:

private static LeFicheiro fichLeitura = new LeFicheiro();

public void login() {
String user,passw;
ArrayList<Registo> registo=new ArrayList<Registo>();
registo=(ArrayList<Registo>)fichLeitura.LeDoFicheiro("Registo.dat");

try{

user=textUser.getText();
passw=textPassword.getText();

//if(textUser.getText().equals("teste") && textPassword.getText().equals("123")){

if((user.equals(registo) && (passw.equals(registo)))){
Login log=new Login(user,passw);
JOptionPane.showMessageDialog(null,"Login com sucesso!!");
setVisible(false);
new JanelaMenuInicial().setVisible(true);
}else
JOptionPane.showMessageDialog(null,"Username ou Password Incorrecta");

}catch(ValidaLogin v){
JOptionPane.showMessageDialog(null,v.getMessage());
}
}

Edited by Rui Carlos
GeSHi

Share this post


Link to post
Share on other sites
HappyHippyHippo

que magia acontece nestas duas funções ?

fichEscrita.EscreveFicheiro(registo,"Registo.dat");

// ...

fichLeitura.LeDoFicheiro("Registo.dat");


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
plm

pois esqueci-me de colocar as funções de ler e escrever ficheiro :)

public class GuardaFicheiro {
public GuardaFicheiro(){	
}
public void EscreveFicheiro(Object obj, String nomeFicheiro) {	
 try {
//ObjectOutputStream mostraFicheiro=new ObjectOutputStream(new FileOutputStream(new File(nomeFicheiro),true));
FileOutputStream mostraFicheiro = new FileOutputStream(nomeFicheiro,true);
	 ObjectOutputStream mostraObjecto = new ObjectOutputStream(mostraFicheiro);
	 mostraObjecto.writeObject(obj);
	 mostraFicheiro.flush();
	 mostraObjecto.close();
	 mostraFicheiro.close();

 }
 catch(Exception ex) {
	 System.out.println(ex.getMessage());
}

}
}

public class LeFicheiro {
public LeFicheiro(){
}

public Object LeDoFicheiro(String nomeFicheiro){
 try{
	 Object objectoTemporario=null;

	 FileInputStream in = new FileInputStream(nomeFicheiro);
	 ObjectInputStream inputObjecto = new ObjectInputStream(in);
	 objectoTemporario = (Object) inputObjecto.readObject();
	 inputObjecto.close();

	 return objectoTemporario;
 }
 catch(FileNotFoundException ef){					
	 return null;
 }
 catch(Exception ex){
	 return null;
 }
}
}

Edited by Rui Carlos
GeSHi

Share this post


Link to post
Share on other sites
plm

Ja resolvi e fica aqui o código para quem precisar. nao consegui comparar por causa da variável password.

public void login() {
String user,passw;
boolean valida=false;
ArrayList<Registo> listaRegisto=new ArrayList<Registo>();
user=textUser.getText();
passw=new String(textPassword.getPassword());

if (fichLeitura.LeDoFicheiro("registo.dat") != null) {
listaRegisto=(ArrayList<Registo>)fichLeitura.LeDoFicheiro("registo.dat");    
}
    for (Registo obj : listaRegisto){
        if((user.equals(obj.getUsername()) && (passw.equals(obj.getPassword())))){
        valida=true;
        }    
}
try{
        if(valida){
        Login log=new Login(user,passw);
JOptionPane.showMessageDialog(null,"Login com sucesso!!\nBemVindo "+user);
setVisible(false);
new JanelaMenuInicial().setVisible(true);
        }
        else
        JOptionPane.showMessageDialog(null,"Username ou Password Incorrecta");
}catch(Exception ex){
JOptionPane.showMessageDialog(null,ex.getMessage());
}        

}

Edited by Rui Carlos
GeSHi

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.