脚本请求
<script src="http://www.yoursite.com/static.asp?id=***"></script>
图片请求
<img src="http://www.yoursite.com/static.asp?id=***"/>
活动框架请求
<iframe width="0" height="0" scrolling="no" src="http://www.yoursite.com/static.asp?id=***"/></iframe>
使用最为方便的就是脚本请求,因为服务器统计完成之后不需要返回任何数据,相对也最为安全。
以下介绍用数据库实现简单计数器'下面存为count.asp
<%
Set conn=Server.CreateObject("ADODB.Connection")
conn.Open "driver={Microsoft Access Driver (*.mdb)}dbq="&Server.MapPath("count.mdb")
%>
<%on error resume next%>
<%sql="update count set hit=hit+1%><%conn.Execute(sql)%>
<%sql = "select * from count
set rs=conn.execute(sql)
%>
<%
'更新每周每日数据
lasthit=rs("lasthit")
tdate=year(Now()) &"-" &month(Now()) &"-" &day(Now())
if trim(lasthit)=trim(tdate) then
sql="update site set dayhit=dayhit+1 where id="&request("id")
conn.Execute(sql)
' response.write "success"
else
sql="update site set dayhit=1 where id="&request("id")
conn.Execute(sql)
' response.write "error"
end if
sql="update site set lasthit='"&tdate&"' where ID="&request("id")
conn.Execute(sql)
p_year=CInt(year(Now()))-CInt(year(lasthit))
p_month=CInt(month(Now()))-CInt(month(lasthit))
p_day=CInt(day(Now()))-CInt(day(lasthit))
period_time=((p_year*12+p_month)*30+p_day)
if cint(period_time)=<cint(7) then
sql="update site set weekhit=weekhit+1 where id="&request("id")
conn.Execute(sql)
else
sql="update site set weekhit=1 where id="&request("id")
conn.Execute(sql)
end if
%>
document.write('<tr><td width="100%">今日访问<%=rs("dayhit")%>次,本周访问<%=rs("weekhit")%>次,总访问<%=rs("hit")%>次</td></tr>')
<%rs.close
set rs=nothing%>
'用<script language="JavaScript1.1" src="count.asp"></script>在要统计的页面调用即可.
建立数据库:建一个count的MDB库,再建一个表count,表中字段为
hit 数字型
dayhit 数字型
weekhit 数字型
lasthit 日期型
静态:
在静态页面中显示文章被阅读的次数
在文章发布系统中采用服务器端生成静态页面的方法可以有效减轻服务器的负担,特别是对大流量网站非常有效。但是既然生成的是静态页面,生成时是什么样,显示就是什么样了,对于文章常见文章被阅读次数怎么显示呢?
经考虑,可用如下方案解决:
生成静态页面时会产生一个文章的id存到数据库中,那么我们在制作文章的模板的时候就可以在这个文章的id上做文章,文章模板包含以下语句:
<SCRIPT src="counter.asp?articleId=<%=#articleId#%>"></SCRIPT >
<b>说明:</b>
在利用模板生成文章时,把"#articleId#"进行模式匹配,替换为新添加的文章的id号。
counter.asp 文件为实现记数的asp文件
<%
'###################
'######开始#########
'BY 王向超
'###################
dim articleId,sqlStr,hits
articleId=int(trim(request.querystring("articleId")))
sqlStr="update articles set hits=hits+1 where articleId=" &articleId
'给文章点击数加1
conn.execute(sqlStr)
'读出文章点击数
hits=conn.execute("select hits from articles where articleId=" &articleId)(0)
%>
'打印出文章点击数
document.write(<%=hits%>)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)