Ir para conteúdo

POWERED BY:

Arquivado

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

Marrabel

[Resolvido] Calculo de tentativas

Recommended Posts

Utiliza o código do post #16, você pode alterá-lo para sua necessidade

Compartilhar este post


Link para o post
Compartilhar em outros sites

FINALMENTE SUCESSO!

 

Atribui a sua ideia ao meu código vinicius e deu certo. Ta contando e bloqueando certinho no BD. Valeu pessoal pela insistencia!

 

 

Como segurança é um tema MUITO IMPORTANTE em websites, deixo aqui o código completo aqui para futuras referencias.

 

Se os administradores aprovarem eu posto no laboratório de script com comentarios, etc..

 

Formulario:

 

<%Response.Expires=0
Response.Buffer=True
%>
<% if Request.QueryString("user")="logoff" then%>
Deslogado com sucesso! Volte Sempre!<p>
<%else%>
<%end if%>
<%if request.QueryString("erro")="negado" then%>
Login/Senha invalidos!<p>
<%else%>
<%end if%>
<%if request.QueryString("user")="bloqueado" then%>
Usuário Bloqueado! Acesse seu e-mail para desbloqueio!<p>
<%else%>
<%end if%>
Entre com seu login e senha
<form method="post" action="login.asp">Login: <input type="text" name="login" size="14">
Senha: <input type="password" name="senha" size="14">
<input type="submit" value="Logar"></form>

 

 

Página de validação:

 

<!--#include file="../conexao.asp"-->
<%
login = Trim(Request.Form("login"))
senha = Trim(Request.Form("senha"))

sql="SELECT * FROM usuarios where login='" & login & "' and senha='" & senha & "'"
Set rsLog = conn.execute(sql)
If rsLog.EOF then
If Len(Session("tentativas")) < "0" Then
		Session("tentativas") = "1"
	Else
		If Session("tentativas") < 3 Then
			tentativas = Session("tentativas") + 1
			Session("tentativas") = tentativas
			strSQL="UPDATE usuarios set tentativas='" & Session("tentativas") & "' WHERE login='" & login & "'"
			set rsTent=conn.execute(strSQL)
			Response.Redirect("default.asp?erro=negado")
		End if
		If Session("tentativas") = 3 or Session("tentativas") > 3 Then
			strBloq="UPDATE usuarios SET bloqueado=1 WHERE login='" & login & "' AND tentativas=3"
			set rsBloq=conn.execute(strBloq)
			Session("user")="bloqueado"
			Response.Redirect("default.asp?user=bloqueado")
		End If
End if
Else 
	sql2="SELECT * FROM usuarios"
	set rsNOK=conn.execute(sql2)
		If rsNOK("bloqueado")=1 Then
			Response.Redirect("default.asp?user=bloqueado")
		Else
			Session("status") = "ok"
			Response.Redirect("home.asp?us=" & rsLog("id_usuario") & "")
			sqlOK="UPDATE usuarios set tentativas=0,bloqueado=0 WHERE login='" & login & "'"
			set rsOK=conn.execute(sqlOK)
			Session("nome")=rsLog("nome")
		End if
End if
%>

 

Aqui está perfeito

 

Obrigado gente!

Compartilhar este post


Link para o post
Compartilhar em outros sites

A função possui alguns erros, se atente no if else... e conteúdos colocados dentro dele... por exemplo...

 

Session("status") = "ok"
Response.Redirect("home.asp?us=" & rsLog("id_usuario") & "")
sqlOK="UPDATE usuarios set tentativas=0,bloqueado=0 WHERE login='" & login & "'"
set rsOK=conn.execute(sqlOK)
Session("nome")=rsLog("nome")

 

Repare que o response redirect esta acima de uma chamativa sql e criação do session, portanto tudo abaixo dele não será executado, logo não faz sentido o uso desta maneira... o redirect deveria ser o ultimo parametro do if.

 

Session("tentativas") = "1"

 

Não é recomendado utilizar "" em apenas numeral... utiliza...

 

Session("tentativas") = 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

A função possui alguns erros, se atente no if else... e conteúdos colocados dentro dele... por exemplo...

 

Session("status") = "ok"
Response.Redirect("home.asp?us=" & rsLog("id_usuario") & "")
sqlOK="UPDATE usuarios set tentativas=0,bloqueado=0 WHERE login='" & login & "'"
set rsOK=conn.execute(sqlOK)
Session("nome")=rsLog("nome")

 

Repare que o response redirect esta acima de uma chamativa sql e criação do session, portanto tudo abaixo dele não será executado, logo não faz sentido o uso desta maneira... o redirect deveria ser o ultimo parametro do if.

 

Session("tentativas") = "1"

 

Não é recomendado utilizar "" em apenas numeral... utiliza...

 

Session("tentativas") = 1

 

Obrigado pelas observações 0cool. Só que fique ciente de que antes de eu postar eu testei tudo, e referente ao item que você destacou está executando normalmente no BD, mesmo estando abaixo do redirect

 

Mas de qualquer forma já foi alterado...Obrigado

 

Postei no laboratorio de scripts -- Aqui

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.