Ir para conteúdo

POWERED BY:

Arquivado

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

kania

Log de Acessos

Recommended Posts

Olá pessoal,

 

Acabei de terminar um site para um pessoal, este site possui um painel de controle completo, tudo é modificado através deste painel de controle, porem eles me pediram agora para criar algo que mostre a eles tudo que esta sendo feito no painel de controle, as inserções, modificações, exclusões, acessos, tudo, um relatório completo, pois o site tera varios usuários e cada um podera fazer determindas coisas que foi pré designado pelo administrador, e o administrador quer saber tudo que cada usuário esta fazendo no site, com data e hora de cada evento, ex.

 

Se eu entrar no Pianel de Controle agora o sistema ja cria um log no BD informando a data e hora que eu entrei no site.

Se eu cadastrar uma noticia no site o sistema informa que o usuário tal cadastrou uma noticia no dia e hora tal.

Se eu colocar uma foto o sistema informa que o usuário tal colocou uma foto no dia e hora tal.

 

enfim um sistema de controle de acesso completo, que me diga todos os passos dos usuários do sistema, é claro que depois que eu fazer o sistema eu vou criar um filtro para que o Administrador possa verificar os logs de cada membro separadamente, mas primenro eu preciso saber como desenvolver o sistema.

Procurei na net inclusive aqui no forum e no site da Imasters mas não achei nada, cheguei a achar um aqui http://www.imasters.com.br/artigo/1453/asp...de_estatisticas porem este é mais um sistema de estatísticas e não de log pelo que vi.

 

Também acredito que posso utilizar o comando Request.ServerVariables(variavel) mas não tenho certeza se funcionará, por que alguns comando que estudei ele me retorna somente o endereço que o usuário veio, mas como informar que o usuário efetuou modificações na pagina tal? Ou somente que ele entrou, logou no sistema na data e hora tal.

 

Se alguem puder me dar uma força para desenvolver este sistema, desde já agradeço.

 

Abraços e Sucesso a todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

ééé, isso sim...bom eu nunca fiz um negocio assim tao a fundo de log, mais eu faria a base mais o menos assim:1- criava uma tabela com todas as atividades que os usuarios realizam.2- criava uma tabela realmente de log com id do usuario, data etc etc, e relacionava com a tabela de acões (tabela acima).3. dai no programa sei la você cria uma funcao que grava log e talz.sei la, +/- isso hehehefalow, abcs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, criei uma tabela assim

 

Tabela [acessos]

 

colunas:

 

id: auto numeração (chave primaria)

id_usuario: vou criar uma session para o id do usuario para depois inserir no BD

usuario: igual acima vou criar uma session do login e inserir no BD

origem: vou tentar utilizar o comando Request.ServerVariables("HTTP_REFERER") e inserir no BD

ip: vou tentar utilizar o comando Request.ServerVariables("REMOTE_ADDR") e inserir no BD

servidor: vou tentar utilizar o comando Request.ServerVariables("SERVER_NAME") e inserir no BD

data: vou tentar utilizar o comando now() direto no insert do BD

 

Cara se vai dar certo só Deus sabe, mas vou tentar desta forma, depois eu crio uma tabela para imprimir na tela para o Administrador visualizar, vamos ver se da certo, caso de eu posto o código aqui para todos.

 

Se alguém ai que ja viu que não vai dar certo quiser dar uma dica melhor, manda ai.

 

beleza http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

mais axo q você vai precisar dar informacoes precisas para o aadministrador, do tipo:Fulano 13/02/2007alterou tal coisa;inclui isso;tirou akilo;tranformou isso.axo q você vai precisar guradar mais infos não???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um LOG de AÇÕES deve ser feito gravando-se cada alteração efetuada pelo usuário, preferencialmente no mesmo momento da mesma. Caso seja um LOG de ACESSOS a forma como está planejando funciona.

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho desnecessário gravar o nome de usuário já que o id_usuário estará relacionado a tabela usuários

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal terminei o Log que estava tentando fazer, acho que ficou mais ou menos do jeito que precisava, vou colocar o código aqui para alguém que queira utilizar ou melhorar ele.

 

PAGINA QUE CRIA O LOG E INSERE NO BD [ SAVE_LOG.ASP ]

 

<%'#### SETO AS VARIAVEIS A SER UTILIZADA ####Dim id_usuario, usuario, urlorigem , iporigem, serverorigem'#### RECUPERO OS VALOR QUE SERÃO INSERIDOS NO BD ####id_usuario=session("id")usuario=session("logar")urlorigem = Request.ServerVariables("Path_info")iporigem = Request.ServerVariables("REMOTE_ADDR")servidor = Request.ServerVariables("SERVER_NAME")'#### AQUI CRIEI APENAS PARA QUE O SISTEMA ME DIFERENCIE ALGUMAS DAS PAGINAS ACESSADAS ####'#### ISTO VAI INTERFIRIR NA HORA DA LISTAGEM DO RELATÓRIO'#### NO MEU CASO EU MUDEI A COR DO TEXTO ####'#### SOMENTE PARA FACILITAR PARA O ADMINISTRADOR ####if urlorigem="http://www.suportetelextreme.com.br/" thenurlorigem="Usuário entrou no Sistema pelo site principal"end ifif urlorigem="/painel/logout.asp" thenurlorigem="Usuário saiu do sistema"end ifif urlorigem="/painel/verifica_login.asp" thenurlorigem="Usuário entrou no sistema"end if'#### ABRO O BANCO DE DADOS ####Set rs=server.createobject("ADODB.Recordset")rs.ActiveConnection = conn'#### FAÇO A INSERÇÃO NO BD ####rs.open "INSERT INTO acessos (id_usuario, usuario, origem, ip, server, data) values ('"&id_usuario&"','"&usuario&"','"&urlorigem&"','"&iporigem&"','"&servidor&"','" & now() & "')"%>
PAGINA QUE LISTARÁ O RELATÓRIO [ MOSTRA_RELATORIO.ASP ]

 

<html><head><title>Documento sem título</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body leftmargin="0" topmargin="0"><table width="100%" border="0" cellspacing="0" cellpadding="0">  <tr> 	<td width="15"> </td>	<td><font color="#FF9900" size="5" face="Geneva, Arial, Helvetica, sans-serif"><strong>Relatório 	  de Acessos</strong></font></td>  </tr>  <tr> 	<td height="3" bgcolor="#999999" colspan="2"></td>  </tr>  <tr> 	<td width="15"> </td>	<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Veja todos 	  os Acessos efetuados no Painel de controle do site.</font></td>  </tr></table>'#### CRIO UM LINK PARA O ADMINISTRADOR PODER LIMPAR O RELATÓRIO ####<div align="center"><br>  <font size="4"><strong>[</strong></font>  <a href="apaga.asp"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Apagar   Relatório</font></a>  <strong><font size="4">] </font></strong><br><br></div><table width="100%" border="0" cellspacing="0" cellpadding="0">  <tr>	<td>	<table width="100%" border="0" cellspacing="5" cellpadding="0">		<tr bgcolor="#000000"> 		  <td> <div align="center"><font color="#FFFFFF" size="1"><strong><font face="Verdana, Arial, Helvetica, sans-serif">ID 			  DO USUÁRIO</font></strong></font></div></td>		  <td> <div align="center"><font color="#FFFFFF" size="1"><strong><font face="Verdana, Arial, Helvetica, sans-serif">USUÁRIO</font></strong></font></div></td>		  <td> <div align="center"><font color="#FFFFFF" size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong>PAGINA 			  ACESSADA</strong></font></div></td>		  <td> <div align="center"><font color="#FFFFFF" size="1"><strong><font face="Verdana, Arial, Helvetica, sans-serif">IP 			  DE ACESSO</font></strong></font></div></td>		  <td> <div align="center"><font color="#FFFFFF" size="1"><strong><font face="Verdana, Arial, Helvetica, sans-serif">DATA</font></strong></font></div></td>		</tr>		<tr> 		  <td height="5" colspan="6" bgcolor="#000000"></td>		</tr>		<%'#### ABRO O BANCO DE DADOS ####Set RS = Server.CreateObject("adodb.recordset")SQL = "select * from acessos order by data desc" RS.Open SQL,Conn,3,3IF RS.EOF then    Response.Write "nenhum registro encontrado"   Response.End 'paramos o programa		ELSEtotal = rs.recordcount   x = 0   do while x < total      origem=RS("origem")'#### IMPRIMO OS DADOS CONTIDOS NO BD ####   %>		<tr bgcolor="#FFFFFF"> 		  <td><div align="center"><font color="#0000FF" size="1" face="Verdana, Arial, Helvetica, sans-serif"><%=Rs("id_usuario")%></font></div></td>		  <td><div align="center"><font color="#0000FF" size="1" face="Verdana, Arial, Helvetica, sans-serif"><%=Rs("usuario")%></font></div></td>		  <td> <div align="center"><font color="#0000FF" size="1" face="Verdana, Arial, Helvetica, sans-serif"> 			  <font color="#FF0000"> 			  <%if origem = "Usuário entrou no sistema" then%>			  <%=origem%> 			  <%else if origem ="Usuário saiu do sistema" then%>			  </font> <font color="#006600"><%=origem%> 			  <%else%>			  </font><font color="#669900"> <font color="#0000FF"><%=origem%> 			  <%end if			  end if%>			  </font> </font> </font></div></td>		  <td><div align="center"><font color="#0000FF" size="1" face="Verdana, Arial, Helvetica, sans-serif"><%=Rs("ip")%></font></div></td>		  <td><div align="center"><font color="#0000FF" size="1" face="Verdana, Arial, Helvetica, sans-serif"><%=Rs("data")%></font></div></td>		</tr>		<%  x = x + 1  rs.movenext  loop  end if  rs.close%>	  </table></td>  </tr></table><%'#### CRIO UM LINK PARA O ADMINISTRADOR PODER LIMPAR O RELATÓRIO ####<div align="center"><br>  <font size="4"><strong>[</strong></font>  <a href="apaga.asp"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Apagar   Relatório</font></a>  <strong><font size="4">] </font></strong></div><br></body></html>
PAGINA QUE DELETA TODOS OS REGISTROS DO BD [ DELETA_RELATORIO.ASP ]

 

<%Set rs=server.createobject("ADODB.Recordset")rs.ActiveConnection = connrs.open "DELETE * from acessos"%><!--#include file="save_log.asp"--><%response.Redirect("relatorio.asp")%>
EM TODAS AS PAGINAS QUE EU QUERO QUE O SISTEMA INFORME QUE ALGUM USUÁRIO ESTE NELA E EFETUOU MODIFICAÇÕES NA MESMA COLOQUEI A SEGUINTE LINHA NO INICIO DA PAGINA.

 

<!--#include file="save_log.asp"-->
Pessoal, muitos talvez perguntarão porque utilizer a variavel Path_info em vez da HTTP_REFERER, é que eu quero que só apareça parte do caminho, afinal não preciso dele inteiro.

Aos que quiserem utilizar o sistema fiquem a vontade para efetuar modificações, gostaria só de pedir para postarem aqui as modificações efetuadas, podem ser de grande auxilio a todos.

 

Abraços e Sucesso a todos

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.