Ir para conteúdo

POWERED BY:

Arquivado

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

Rasp

Sistema de Login com SQL Server

Recommended Posts

Falaaaaa Santa Galera, tudo tranquilo com vocês?

bem... gostaria de uma ajudinha se possivel...

Peguei um sistema de login aqui no forum mesmo... e comecei a modifica-lô... porém como não sou interagido com o asp fico perdido na maior parte das vezes... mais enfim, vamos lá!

 

Pagina Index.asp

<!-- #include file="conexao.asp" --><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt-br" lang="pt-br"><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Site - Modulo Administrativo</title><link rel="shortcut icon" href="imagens/favicon.ico" /><link rel="stylesheet" href="css/screen.css" type="text/css" media="screen" /><script language="JavaScript" type="text/JavaScript"><!--function ValidaCadastro(formacesso){	   	 if (formacesso.frm_login.value == "")	 {	   alert("Login não Informado!");	   return false;	 }	 else if (formacesso.frm_senha.value == "")	 {	   alert("Senha não informada!");	   return false;	 }}--></script></head><body>	<div id="admin">		<div id="topo">			<h1 id="logo"><a href="default.asp">O Site</a></h1>		</div>		<div id="meio">			<div id="acessorestrito">				<h1 id="imgacesso">Acesso Restrito</h1>				<form name="formacesso" id="formacesso" method="post" action="valida_login.asp" onsubmit="return ValidaCadastro(this);">					<label for="frm_login">Login:</label>					<input type="text" name="frm_login" id="frm_login" size="15" />					<label for="frm_senha">Senha:</label>					<input type="password" name="frm_senha" id="frm_senha" size="15" maxlength="8" />					<input type="submit" name="enviar" id="enviar" class="botao" value="Entrar" />				</form>			</div>		</div>	</div></body></html>

 

Conexao.asp

<%set conexao = Server.CreateObject("ADODB.Connection")conexao.open "Provider=SQLOLEDB.1;SERVER=ENDEREÇODOSITE;DATABASE=USUARIOS;UID=USER;PWD=123;"%>

 

Valida_login.asp

<!-- #include file="conexao.asp" --><%' Recuperamos o dados que foram digitados no formulário e já substituimos as aspas simples por aspas duplas.login = request.form(Replace("frm_login", "'", "''"))senha = request.form(Replace("frm_senha", "'", "''"))' Verificamos se os campos não estão vazio.if login = "" thenresponse.redirect "index.asp"response.end()end ifif senha = "" thenresponse.redirect "index.asp"response.end()end if' Evitando o SQL injection, ou simplesmente a entrada forçada.login = replace(login,"'","''")login = replace(login,"#","''")login = replace(login,"$","''")login = replace(login,"%","''")login = replace(login,"¨","''")login = replace(login,"&","''")login = replace(login,"<","''")login = replace(login,">","''")login = replace(login,"=","''")login = replace(login,"'or'1'='1'","''")login = replace(login,"--","''")login = replace(login,"insert","''")login = replace(login,"drop","''")login = replace(login,"update","''")login = replace(login,"delet","''")login = replace(login,"xp_","''")login = replace(login,"select","''")login = replace(login,"*","''")' Evitando o SQL injection, ou simplesmente a entrada forçada.senha = replace(senha,"'","''")senha = replace(senha,"#","''")senha = replace(senha,"$","''")senha = replace(senha,"%","''")senha = replace(senha,"¨","''")senha = replace(senha,"&","''")senha = replace(login,"<","''")senha = replace(login,">","''")senha = replace(login,"=","''")senha = replace(senha,"'or'1'='1'","''")senha = replace(senha,"--","''")senha = replace(senha,"insert","''")senha = replace(senha,"drop","''")login = replace(login,"update","''")senha = replace(senha,"delet","''")senha = replace(senha,"xp_","''")senha = replace(senha,"select","''")senha = replace(senha,"*","''")' Vamos buscar o login e senha no banco de dados.SQL = "select * from usuarios where login_usuario = '"&login&"' and senha_usuario = '"&senha&"' "Set RS = Conexao.Execute(SQL)' Verificamos se esta tudo OK. Se nao tiver, é mostrada a mensagem abaixo.If RS.EOF Then  Response.Write "<center><b>Login ou Senha incorretos. Tente novamente!</b></center>"  Response.End()End If' Vamos colocar os dados do usuario logado numa session para usarmos mais tarde e fazer a verificação se o usuario esta logado.' OBS.: Nao utilize nomes obvios para esta session (evita a invasão).session("usr_log_ok") = RS("id_usuario")' Agora vamos gravar o IP do usuario no banco de dados.ip_usuario = Request.ServerVariables("REMOTE_ADDR")SQL2 = "Update usuarios set ip_usuario='"&ip_usuario&"' where id_usuario="&rs("id_usuario")conexao.execute(sql2)' Fecha e destroi o record set.rs.closeset rs = nothing' Fecha a conexao.conexao.close' Redirecionando para a pagina administrativa (restrita) ou para a ultima pagina q o usuario estava.If Session("pagina_restrita") = "" thenresponse.Redirect("admin.asp")elseresponse.Redirect Session("pagina_restrita")end if%>

 

Admin.asp

<!-- #include file="conexao.asp" --><%' Este trecho deve estar em todas as paginas em que o conteudo for restrito.If session("usr_log_ok")="" Then  Response.Write "Você está Logado no sistema!"  Response.redirect "index.asp"' Caso voce queira utilizar esse scripts para paginas que necessitem querystring's ou' fazer o usuario, após se logar, voltar para a pagina que estava, manhenha o codigo abaixo' lembrando que se a pagina contiver querystring's, você deve trocar o nome da variavel ID.' Se esse nao for seu caso, você pode simplesmente comentar a linha abaixo usando um ' antes da session.Session("pagina_restrita") = Request.ServerVariables("SCRIPT_NAME")&"?"&request.ServerVariables("QUERY_STRING")' Aqui para de executar o script caso a pessoa nao esteja logada.Response.End()End If' Vamos buscar o usuario no banco de dados.SQL = "select * from usuarios where id_usuario ="&session("usr_log_ok")Set RS = Conexao.Execute(SQL)If rs.eof thenResponse.write "Ocorreu um Erro!"Else%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Site - Modulo Administrativo</title></head><body>Olá, <%=rs("nome_usuario")%>. Seu IP é: <%= rs("ip_usuario")%> <p>Aqui você coloca todo seu conteudo restrito.</p></body></html><%end if%>

 

Logout.asp

<%Session.Abandon()Response.redirect("index.asp")%>

 

 

Banco de dados

 

Tabela: usuarios

Colunas: id_usuario ; login_usuario ; nome_usuario ; senha_usuario ; email_usuario ; ip_usuario

 

 

 

Gostaria se possivel de conseguir converter esse sistema para rodar em banco de dados sql server, inclusive ajuda na formatação do banco... pois ja montei a tabela do mesmo porem nao atribui nada como (nchar, nvarchar, etc...)

Desde já agradeço...

Absss

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, basicamente é alterar a conexão e deve rolar, caso os tipos de dados sejam os mesmos nos BD's.

Compartilhar este post


Link para o post
Compartilhar em outros sites

salgado

Pô você teria como me explicar ou algum link relacionado a isso? como mudar conexão de bd mbd para sql server , pois pesquisei sobre isso... e não encontrei nada que tivesse uma explicação clara! só coisa pra gente com experiencia ja!

 

vlws brother

abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Custellinha,

Cara vi o topico que por sinal é muito bom... mais nao sei qual opçao usar cara... a que eu postei ai em cima... aparentemente funciona... porem... me retorna o erro de login senha incorretos o tempo todo, tudo bem q o sistema ainda nao esta utilizando senha em md5 mais pelo menos creio que iria funcionar assim nao? ja pensei de caso a conexao esteja certa poder ser prblemas de cnfg do banco d dados... poderia me ajudar???

abs

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.