Boa Noite pessoal, estou desenvolvendo uma pequena aplicação onde a tela de login consta os campos de login e senha. Porém o diferencial dessa tela é que, a mesma verifique se o usuário existe, se a senha está incorreta, e a maior duvida da situação: cadastrar o usuário que não existe na base de dados, ou seja, esse mesmo botão que confirma o cadastro , que verifica se a senha está incorreta é o mesmo que ira cadastrar caso o email(login) e senha da pessoa não exista. No caso não é para desenvolver outra interface, é na própria interface que loga no sistema é a mesma que cadastra e acessa o sistema.
Gostaria de saber se alguém já desenvolveu algo assim. Utilização Netbeans e Mysql para desenvolvimento.
OBS: as duas primeiras etapas realizei com sucesso porém essa terceira de cadastrar no mesmo botão de logar ficou mais complicado…
Aguardo retorno…
@EnoqueBR é fácil fazer esse tipo de coisa, mas se você vai se cadastrar se não existir seu usuário de forma automática…para que serve a tela de login???
No caso basta criar um método que cadastre o usuário caso a verificação falhe…
{
if(verifica_login == false){
if(JOptionPane.showConfirmDialog(null, "Deseja cadastrar-se no sistema?", "Cadastrar usuário?", JOptionPane.YES_NO_OPTION) == 0){
metodoCadastrarUsuario();
JOptionPane.showMessageDialog(null, "Usuário cadastrado com sucesso!!", "Cadastro realizado", JOptionPane.INFORMATION_MESSAGE);
}
}
}
@Villagram valeu pela ajuda… vou tentar aqui… Também achei desnecessário essa funcionalidade no mesmo botão.
Isso faz a verificação se o login está cadastrado, ali no if está assim, se a senha cadastrada for igual a que o usuário digitou, o acesso para ir ao menu está liberado. Agora se não estiver correto, aparece uma mensagem, tira a mensagem e joga um metodo de cadastro
try {
conecta.executaSQL("SELECT * FROM login WHERE usuario= '" + campousuario.getText() + "'");
conecta.rs.first();
if (conecta.rs.getString("senha").equals(camposenha.getText())) {
Menu menu = new Menu();
menu.setVisible(true);
dispose();
} else {
JOptionPane.showMessageDialog(null, "Senha inválida! Tente novamente.");
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Usuário inválido! Tente novamente.");
}
Que tipo de conexão com o banco de dados você faz?
Fiz dessa forma ai, porém há três condições nessa questão do usuario.
a. se o email e senha estiverem ok. Sistema Abre;
b. Caso o email esteja correto mas a senha errada. Ele exibe mensagem de Erro na senha;
c. A mais complicada para mim( Caso o email digitado no campo do email não contenha na base de dados, será verificado com o Joptionpane (para cadastra ou não)…
Esse ultimo está me matando, pois normalmente desenvolvo essa parte de solicitação de cadastro em outra interface, já essa situação quer na mesma interface seja feita.
Até onde fiz com o código acima, tem um porém que o mysql não está armazenando nada. somente null,null …
Cara…pelo que vi você esta criando o usuário não está pegando os valores dos campos…só isso…
{
BeansChecks.Usuarios mod = new BeansChecks.Usuarios(); //você cria um novo
//cria a função e pede o usuário
public void Salvar(BeansChecks.Usuarios mod){
}
else{
if(true){
//está faltando isso
mod.setLogin(jTextFieldUsuario.getText());
mod.setSenha(jTextField2Senha.getText());
dao.Salvar(mod); //aqui você salva ele vazio;
}
}
Cara, eu tenho algo semelhante a isso, se o usuário não existe, mostra no meu jLabel “Usuário não cadastrado”
Agora se o usuário tá cadastrado, mostra no mesmo jLabel “Olá Fulano, bem vindo(a) de volta”
Pra fazer isso eu coloquei um evento de FocusLost no meu campo de usuário, ou seja, quando o usuario terminasse de escrever o usuario dele e mudasse pra a senha, o sistema faz a verificação se existe ou não, tá assim:
try {
conecta.executaSQL("SELECT * FROM login WHERE login= '" + campousuario.getText() + "'");
conecta.rs.first();
if (conecta.rs.getString("senha").equals(camposenha.getText())) {
} else {
//jLabel3.setText("Senha inválida, tente novamente!");
}
jLabel3.setForeground(new java.awt.Color(69,184,110));
jLabel3.setText("Olá "+campousuario.getText()+", bem vindo de volta!");
} catch (SQLException ex) {
jLabel3.setForeground(new java.awt.Color(208, 83, 83));
jLabel3.setText("Usuário não cadastrado!");
}
Boa noite pessoal ainda com algumas duvidas aqui.
Tentei realizar os procedimentos que vocês me recomendaram, porém não estou conseguindo realizar os três processos no mesmo botão… Só consigo aplicar duas formas. usuário e senha estão ok ou senha do usuário está errada. Já está ultima de cadastrar quando não encontra o usuário está bem complicada. Ele só pede para cadastrar o usuário caso o usuário já esteja cadastrado no banco, ou seja, ele duplica o usuário.
segue o código:
Como segue o caso no Banco de Dados:
Grato pela Atenção!!!
Boa noite Enoque,
Onde que tá a verificação pra ver se a senha e o usuário digitados batem com o que está no banco de dados?
Repara como eu fiz:
try {
conecta.executaSQL("SELECT * FROM login WHERE login= '" + campousuario.getText() + "'"); // aqui ele faz a verificação com a condição "where", ou seja, só vai entrar se o que foi digitado no campo de login, bater com o que ta lá (EXATAMENTE) no banco
conecta.rs.first(); //aqui puxa o primeiro resultado do banco
if (conecta.rs.getString("senha").equals(camposenha.getText())) { //aqui vai verificar a senha, se a senha for igual...
//coloca algo aqui se vc quiser
} else {
// aqui nao precisa por nada
}
} catch (SQLException ex) {
//Aqui vc coloca o esquema de cadastrar
mod.setLogin(blablabla.getText());
mod.setSenha(blablabla.getText());
dao.Salvar(mod);
}
Obrigado pela ajuda… consegui aqui… agora estou finalizando esse programa… @rodriguesabner… até a próxima…
Valeeeeu, boa sorte. Tenha um ótimo dia!