ASP网站如何记录操作日志?

比如谁在后台里做过什么操作,访问了什么网页,它能自动记录。麻烦详细点,数据库表改怎么建,建什么类型的?程序代码怎么写?请详细点问题2,用ASP怎么控制一个页面的开始和关闭... 比如谁在后台里做过什么操作,访问了什么网页,它能自动记录。

麻烦详细点,数据库表改怎么建,建什么类型的?程序代码怎么写?请详细点

问题2,用ASP怎么控制一个页面的开始和关闭,就是在台可以随时设置它开或者关的那种
第二个就是说.在后台有个选项,控制着这个页面是否给别人访问
展开
 我来答
百度网友66a8d48e5
2008-12-11
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
不就写日记吗?

一般比较合理的作法是,先将操作中进行一闪的格式。
比如:一个管理员对数据库做了一些调整,他删除了某一个用户,那么在删除用户的同时应该向日志中记录。

这个肯定是管理员,首先它是登陆的,那么可以用session("userID")保存其登陆状态的,同时取出该值,向日记数据库中记录,这样首先做到了定位人的目的,当然这个操作是在删除用户中进行的,那么可以在动作中注明的。所以数据库的建立很清楚了:
userid datetime active
userid是用存放是谁做的动作
datetime用来存放在何时的动作
active用来指明动作,比如删除用户等文本方式存储
如有需要可以对该数据表进行扩充。
管理员在删除用户时,先将动作写入了日记数据库,然后才开始做删除用户的动作。这样完全记录了管理员的动作。

访问网页,可以在登陆后进行的。
比如有一个网页是abc.asp
那么在abc.asp最开始的地方测试session("userid")如果存在则,向日记数据库中插入记录,userid插入session("userid"),当前时间插入到datetime中,将字符串“访问了abc网页”插入到active中,这样你取出记录可以看到,某一用户在某一时间,访问了abc网页。当然如果访问网页过多,可以将这一段写出来,导入到每个网页中。就可以了!

至于怎么控制网页的开始,这是一个重定向的问题。
比如,你在后台中写了关闭网站中的某个页面,则可以用一个application("vis")变量来控制。点击关闭时,执行了一个事件,application("vis")="false",反之,将这个值取为true,在application-start事件中先义其打开或关闭。

运行该网页时最开始,去取application("vis")的值,若是true,则显示该页,不用有动作,若是false则将网页定向到另一个提示网页中!

当然,我这里是以application为例的,其实你也可以存入数据库中的,所以存入的作为配置。这样即使重启服务器也不会丢失的!只不过这里的原理就是这样!

简单不?它和写普通页面没有什么区别的!所谓的后台只不过是管理员登陆的!实际上对于开发来说是不分前台后台的。这个名词只是网页功能的区分而已!
klooong
2008-12-13
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
四种办法:

1.每页生成一个不同session,如果该页结束,将值付给变量传递到数据库保存。
2.为每条记录设置新建时的日期,修改时的日期,分别保存在数据库中,显示在管理页面,如果看到哪条记录是新修改的,就会是新的日期,新建的日期是不会变的。
3.放置一个访问统计页,统计每位后台管理者访问过的路径,我有用访问统计,能查看到来者的每个脚印,和对方的IP,不过是用在前台,当然后台也可以用的。
4.如果你想控制管理者的操作权限,可以设置多个管理组,为不同的组设置不同的管理权限,就像window一样,有管理员权限和guest权限,这样有些用户只能看而不能修改。

我就一直用第二种办法,查看更新情况的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pshuwen
2008-12-11
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
第一个很简单

CREATE TABLE eventlog(
cid int primary key not null,
csort varchar(50) null,
cusername varchar(50) null,
ctime datetime,
cdo varchar(250) null,
cip varchar(20)
)

程序
先调用数据库
然后
<%
Function events(csort,cusername,cdo)
cip = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If cip = "" Then
cip = Request.ServerVariables("REMOTE_ADDR")
End If
ctime=now()
safesql="select * from tb_eventlog"
set rsyss=server.CreateObject("adodb.recordset")
rsyss.open safesql,con,1,3
rsyss.addnew
rsyss("csort")=csort
rsyss("cusername")=cusername
rsyss("cdo")=cdo
rsyss("ctime")=ctime
rsyss("cip")=cip
rsyss.update
rsyss.close
End Function
%>

在执行操作或进入某页时调用
<%'如在用户登录时
events "用户登录",session("username"),"成功登录后台管理"

'在信息修改时
events "企业荣誉",session("username"),"修改荣誉分类名称"

%>这样子就可以了

第二个没看懂你说的是什么意思
那你在页面前面加一个判断不就行了
先设定一个表
页面 值(0/1)
在每页

if Request.ServerVariables("SERVER_PORT")<>"80" then
userurl = "http://"&Request.ServerVariables("SERVER_NAME")& ":" & Request.ServerVariables("SERVER_PORT")& Request.ServerVariables("URL")
else
userurl = "http://"&Request.ServerVariables("SERVER_NAME")& Request.ServerVariables("URL")
end if
取你的网址
userurl=right(UserUrl,InstrRev(UserUrl,"/")+1)取你网址中的网页名
然后
读你表里网页名相同的 在进行判断 如果值为0就是关闭了如果值为1就是可以看
你后台里在做一个页来控制页是否关闭就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
出海小达人
2008-12-10
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
简简单单做吧!
哎,你天天问!

参考资料: ASP

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
?>

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式