Ir para conteúdo

POWERED BY:

Arquivado

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

Henrique Coutinho

Erro com senhas de usuários

Recommended Posts

Olá galera, estou criando um sistema de chamados em asp com banco de dados acces. Tive um problema com a parte de senhas. Se um usuário possuir uma senha igual a outro usuário, é exibida uma mensagem de erro, segue a mensagem:

 

ADODB.Recordset (0x800A0CC1)

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

 

Agora, se eu altero a senha de um dos usuários, volta a funcionar perfeitamente. http://forum.imasters.com.br/public/style_emoticons/default/upset.gif

 

Se alguem souber o que pode ser, agradeço desde já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual a linha do erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo de erro:

ADODB.Recordset (0x800A0CC1)

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

/chamados/validacao.asp, line 30

 

<!-- #include file = "bd.asp" -->
<!-- #include file = "conexao.asp" -->
<html>
<body>

<%
	Call SetAppVariables
	
	Dim Conn
	Set Conn = CreateCon
	
	UserName = Replace(Trim(Request.Form("userName1")),"'","''")
	Password = Replace(Trim(Request.Form("password1")),"'","''")
	

	
	If UserName = "" OR Password = "" Then Response.Redirect "login_invalido.asp"
	
	SQL = "Select idUsuario, userName, nomeCompleto, nivel, [senha] From login WHERE userName = '"&UserName&"'"
	Set RS = Conn.Execute(SQL)
	

		While Not RS.EOF
[u][i][b]			If UserName = RS("userName") And Password = RS("senha") Then[/b][/i][/u]
				Session("permissao") = True
				Session("nivel") = RS("nivel")
				Level = RS("nivel")
				Session("UserName") = UserName
				Session("Level") = RS("nivel")
				DIM atrSQL, rs, Login
					Login = Session("UserName")
					atrSQL = "SELECT nomeCompleto, nivel , siglaDep FROM login WHERE senha = '"&Password&"'"
					SET rs=conn.execute(atrSQL)
					Session("Nome") = rs("nomeCompleto")
					Session("nivel")= rs("nivel")
					Session("SiglaDEP")= rs("siglaDep")

			Else
				Response.Redirect "login_invalido.asp"		
			End If
			
			RS.MoveNext
		Wend
		
	If Session("permissao")	= True Then
		If Session("nivel") = 1 Then Response.Redirect "chamadosAdm.asp" End If
		If Session("nivel") = 2 Then Response.Redirect "chamados.asp" End If

	End If

%>
</body>

</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao entendi a necessidade de usar um loop neste caso

Compartilhar este post


Link para o post
Compartilhar em outros sites

se voce vai selecionar os dados de um usuario porque recupera com loop?

Compartilhar este post


Link para o post
Compartilhar em outros sites

ADODB.Recordset error - O artigo não pode ser encontrado na coleção que corresponde ao nome. Verifique se você não esta tentando trabalhar com um RecordSet que não faz parte da coleção de registros. Isso acontece na maioria das vezes por que existe erro de ortogtafia e não confere com um campo da Base de Dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao em primeiro lugar você esta fazendo umamesma consulta de nomecompleto,xxxx 2 vezes sem necessidade

 

você so precisa faer 1 consulta

 

 

"select * from tabela where usuario='&variavelusuario&' and senha='&variavelsenha&' "

 

if rs.eof then

<bloco instrucoes para o caso que nao achou nenhum usuario com esses dados>

else

 

nem precisa de loop pk como e so um usuario que deve achar

 

basta usar rs("campo")

 

<bloco instrucoes se usuario existe>

end if

 

 

 

 

antes de criar aplicacoes teste a logica mais adequada

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
'se nao encontrar redireciona para tentar novamente
	   response.redirect("logincli_form_treina.asp?msgeof=3")
	else
		if Lcase (varsenha) <> Lcase(rs("senha")) then
'se senha for errada, redireciona
			response.redirect("logincli_form_treina.asp?msgeof=4")
			session("logado")=False
		else
'senao user = ok, senha = ok
			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.