Gazua
(usa Debian)
Enviado em 12/05/2020 - 15:16h
Olá à todos,
Bem, eu fiz um formulário com dois campos, login e senha, também criei uma página de cadastros que armazena o nome e senha um banco de dados sqlite. Então, gostaria de saber como faço para quando inserir logina e senha, ambos sejam buscados na tabela do banco de dados, caso contrário o login não pode ser efetuado.
Aqui está o HTML da página de login:
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Acessar</title>
</head>
<body onload="login.focus()">
<header><h2>Acessar</h2></header>
<section>
<form action="perfil.html" method="get" onsubmit="return validar(this)">
<fieldset>
<legend>Coloque seus dados para acessar</legend>
<label for="login">Login: <input type="text" name="" id="login"></label>
<p><label for="pass">Senha: <input type="password" name="" id="pass"></label></p>
<input type="submit" value="Acessar">
<input type="button" value="Limpa" onclick="limpa()">
<p><a href="cadastrar.html">Cadastre-se</a></p>
</fieldset>
</form>
</section>
</body>
<script src="cadastrar.js"></script>
</html>
Esse é o script da página de cadastro, onde se encontra o banco de dados:
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Cadastro</title>
<script>
var db = openDatabase('Meu banco', '2.0', 'My base', 10000)
db.transaction(function(criar){
criar.executeSql('CREATE TABLE users(ID PRIMARY KEY, nome TEXT, email TEXT, senha TEXT)')
})
</script>
</head>
<body>
<header><h2>Página de cadastros</h2></header>
<section>
<form action="cadastrar.js" onsubmit="return valida(this)">
<fieldset>
<legend>Informe seus dados</legend>
<label for="nome">Nome:</label><input type="text" name="nomePhp" id="nome">
<p><label for="email">E-mail:</label><input type="text" name="emailPhp" id="email"></p>
<p><label for="senha">Senha:</label><input type="password" name="" id="senha"></p>
<label for="senhaConfirma">Confirme a senha:</label><input type="password" name="" id="senhaConfirma">
<p><input type="submit" value="Enviar">
<input type="button" value="Limpar" onclick="limpar()"></p>
</fieldset>
</form>
</section>
</body>
<script src="cadastrar.js"></script>
</html>
e aqui é o arquivo js, que valida ambos formulários, tanto a página de login, quanto a do cadastro.
//script da pagina de cadastro
function valida(frm){
//window.alert(navigator.appVersion)
if(frm.nome.value == 0 || frm.senha.value == 0 || frm.senhaConfirma.value == 0 || frm.email.value == 0){
alert('Preencha todos os campos!')
return false
}
if(frm.email.value.indexOf('@') == -1 || frm.email.value.indexOf('.') == -1){
alert('E-mail inválido!')
frm.email.focus()
return false
}
if(frm.senha.value != frm.senhaConfirma.value){
alert('As senhas não conferem!')
frm.senha.focus()
return false
}
var nome = frm.nome.value
var email = frm.email.value
var senha = frm.senha.value
document.write('<p>Verique seus dados</p>'+
'Nome: '+nome+'<br><br>'+
'E-mail: '+email)
document.write('<p></p>')
var btn = document.createElement('button')
var btn2 = document.createElement('button')
var butConfirma = document.createTextNode('Confirma')
var butLimpa = document.createTextNode('Voltar')
btn.appendChild(butLimpa)
btn2.appendChild(butConfirma)
document.body.appendChild(btn)
document.write('  ')
document.body.appendChild(btn2)
btn2.onclick= function salvar(){
db.transaction(function(armazenar){
armazenar.executeSql("INSERT INTO users (nome, email, senha) VALUES (?,?,?)", [nome, email, senha])
})
window.location.reload()
}
btn.onclick = function voltar(){
window.location.reload()
}
}
function limpar(){
nome.value = ''
email.value = ''
senha.value = ''
senhaConfirma.value = ''
nome.focus()
}
//fim do script
//script da pagina de login
function validar(frm){
if(frm.login.value == 0 || frm.pass.value == 0){
alert('Preencha os campos!')
return false
} else{
//Isso foi que tentei para verificar o nome de usuário(sem sucesso, por isso nem tentei com a senha)
var buscarNome = db.transaction(function(busca){
busca.executeSql('SELECT nome FROM users')
if(frm.login.value != buscarNome){
alert('Usuário incorreto!')
return false
}
})
}
}
function limpa(){
login.value = ''
senha.value = ''
login.focus()
}
Pra ficar mais explicito entendimento.
Eu fiz uma tela de logina com usúario e senha, este, precisa ser buscado na tabela sqlite pra ver se existem, caso contrário tem u link que leva até a página de cadastro para inserir o usúario e senha que ainda não existem. O que quebra minha cabeça é, como faço para quando for logar, tanto usuário quanto senhas, sejam verificados no banco sqlite, para poder dar acesso.