Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

alefaith

Senha para cada usuario

Recommended Posts

 

ao inves de fazer a verificacao de login e senha na mesma SQL, utilize esta forma, onde você busca pelo login e depois , converte ele minuscolu(caso suas senhas sejam todas minuscula) e depois compara com seu bd, fica uma boa pratica de programacao, masi gerenciavel e menos vulneravel a sqlinject

ele pode ser mais completo, por exemplo, usando cookies e pegando o ultimo acesso do user e gravando em um bd

 

<% Option Explicit
'declara as var
dim varsenha, varlogin, conexao ,rs, SQL, conDBQ, constring
'recupera as var
varlogin=Trim(request.form("login"))
varsenha=Trim(request.form("senha"))
if varlogin="" then
response.redirect("logincli_form_treina.asp?msgeof=1")
end if
if varsenha="" then
response.redirect("logincli_form_treina.asp?msgeof=2")
end if
if Session("logado")=True then
response.redirect("logincli_form_treina.asp?msgeof=5")
end if 
%>
<!--#include file="conn/conexao1.asp"-->
<%
 call abreconexao
'cria o recordset
Set rs=Server.CreateObject("ADODB.Recordset")
SQL="SELECT * FROM login WHERE login='"&varlogin&"'"
rs.open SQL,conexao,1,3
	if rs.eof then
	   response.redirect("logincli_form_treina.asp?msgeof=3")
	else
		if Lcase (varsenha) <> Lcase(rs("senha")) then
			response.redirect("logincli_form_treina.asp?msgeof=4")
			session("logado")=False
		else
			session("logado")=True
			session("senha")=varsenha
			session("login")=varlogin
		response.redirect("administracao.asp")
		end if
set rs=nothing
call fechaconexao%>

Fala galera, beleza? felis Natal pra todos.

:)

Entao, respondendo a pergunta acima, realmente sou novato em ASP e em lógica. por isso que to apanhando pra fazer uma coisa "simples".

andei pesquisando e achei o innerjoin. to tentando fazer com ele, usando 2 tabelas. uma pro cadastro e outra de login e senha.

o sql está assim:

 

sql = SELECT * FROM CadastroMoradores INNER JOIN usuario ON usuario.Apto = CadastroMoradores.Apto WHERE usuario = login 

Mas nao esta funcionando. Dá o seguinte erro:

 

Erro de sintaxe

/resposta.asp, line 12, column 6

sql = SELECT * FROM CadastroMoradores INNER JOIN usuario ON usuario.Apto = CadastroMoradores.Apto WHERE usuario = login

 

affe.. tava faltando as aspas.. rs... mas agora o erro é outro:

 

sql = "SELECT * FROM CadastroMoradores INNER JOIN usuario ON usuario.Apto = CadastroMoradores.Apto WHERE usuario = "&login&""

Parâmetros insuficientes. Eram esperados 2.

/resposta.asp, line 16

Compartilhar este post


Link para o post
Compartilhar em outros sites

de um response.write isso para ver o que ta executando

 

provavelmente falta aspa simples no login mas poste o write

Compartilhar este post


Link para o post
Compartilhar em outros sites

arrumei.

ao invez de

sql = SELECT * FROM CadastroMoradores INNER JOIN usuario ON usuario.Apto = CadastroMoradores.Apto WHERE usuario = login 
é:

 

sql = "SELECT * FROM CadastroMoradores INNER JOIN usuario ON usuario.Apto = CadastroMoradores.Apto WHERE login = '"&login&"'"

porem agora é outro problema....ainda nao consegui fazer com que o usuario acesse somente oo seu apto. Com a senha e login cadastrado no banco ele consegue acessar qualquer apto...

Eu tentei colocar o innerjoin tb na pagina que deveria mostrar os resultados depois do login, mas ai dá o erro:

 

O item não pode ser encontrado na coleção correspondente ao nome ou ao ordinal solicitado.

/consulta3.asp, line 46

 

o que tem na linha 46 é:

 

<td>Apto: <STRONG><% = rs("Apto") %></STRONG></td>

 

vou continuar tentando e vou postando aqui. valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

troquei

<td>Apto: <STRONG><% = rs("Apto") %></STRONG></td>

 

por uma variavel:

 

<td>Apto: <STRONG><% response.write x %></STRONG></td>

 

e funcionou.

 

o erro está na instrução:

 

sql = "SELECT * FROM CadastroMoradores INNER JOIN usuario ON usuario.Apto = CadastroMoradores.Apto WHERE login = '"&login&"'"

ta fazendo buscar os dados de acordo com o login... se o login digitado consta no banco, ele mostra, independente de digitar a senha ou nao.... e nao mostra necessariamente os dados do login do apto especifico... mostra de qualquer um.

to perdido aqui.. rs

Compartilhar este post


Link para o post
Compartilhar em outros sites

troquei

<td>Apto: <STRONG><% = rs("Apto") %></STRONG></td>

 

por uma variavel:

 

<td>Apto: <STRONG><% response.write x %></STRONG></td>

 

e funcionou.

 

o erro está na instrução:

 

sql = "SELECT * FROM CadastroMoradores INNER JOIN usuario ON usuario.Apto = CadastroMoradores.Apto WHERE login = '"&login&"'"

ta fazendo buscar os dados de acordo com o login... se o login digitado consta no banco, ele mostra, independente de digitar a senha ou nao.... e nao mostra necessariamente os dados do login do apto especifico... mostra de qualquer um.

to perdido aqui.. rs

 

 

agora troquei a instrução para:

 

sql = "SELECT * FROM CadastroMoradores INNER JOIN usuario ON usuario.Apto = CadastroMoradores.Apto WHERE login = '"&login&"' and senha='"&senha&"'"

assim ele só abre se o login e a senha estiverem corretas, digo no mesmo registro inclusive. porem ainda nao consigo bloquear um login e senha de um apto, de abrir dados de outro apto. Acho que deveria fazer um if na validação onde eu tenho:

 

if (rs.eof) Then

Response.Write "ERRO - Login ou Senha incorretos"

Else

Session("entrada") = "sim"
Session("login") = rs("login")
Session("senha") = rs("senha")
Session("id") = rs("Codigo")
Response.redirect("consulta3.asp?Apto="&x&"&Bloco="&y&"")

End If

mas nem imagino como fazer esse if...eu teria que comparar de alguma forma dentro desse if, o ID do login e senha digitados com o Id do apto, é isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha este exemplo:

 

<% Option Explicit
'declara as var
dim varsenha, varlogin, conexao ,rs, SQL, conDBQ, constring, rsselect, sqlselect, rsinsert, sqlinsert, rsupdate, sqlupdate,data
'recupera as var
varlogin=Trim(request.form("login"))
varsenha=Trim(request.form("senha"))
varlogin=Replace(varlogin,"'","")
varsenha=Replace(varsenha,"'","")
if varlogin="" then
response.redirect("logincli_form_treina.asp?msgeof=1")
end if
if varsenha="" then
response.redirect("logincli_form_treina.asp?msgeof=2")
end if
if Session("logado")=True then
response.redirect("logincli_form_treina.asp?msgeof=5")
end if 
%>
<!--#include file="conn/conexao1.asp"-->
<%
 call abreconexao
'cria o recordset
Set rs=Server.CreateObject("ADODB.Recordset")
SQL="SELECT * FROM login WHERE login='"&varlogin&"'"
rs.open SQL,conexao,1,3
	if rs.eof then
	   response.redirect("logincli_form_treina.asp?msgeof=3")
	else
		if Lcase (varsenha) <> Lcase(rs("senha")) then
			response.redirect("logincli_form_treina.asp?msgeof=4")
			session("logado")=False
		else
			session("logado")=True
			session("senha")=varsenha
			session("login")=varlogin
			response.Redirect("administracao_treina.asp")
		end if
	end if
set rs=nothing
call fechaconexao%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.