首先祝大家新年好!在网页上如何做一个计数器?

licrazy5201 2004-01-02 09:11:29
我想在网站上增加一个计数器,应该如何做?谢谢!
如何提供首页产品推荐功能,增加产品后台编辑?
如何做数据统计功能?例如:这个网站一天有多少人在访问,访问了那些东西,
想把这个功能做到后台管理中去,应该如何来实现?谢谢
...全文
120 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
PPLUNCLE 2004-01-02
  • 打赏
  • 举报
回复
你自己到www.51base.com去搜索"HTTP_X_FORWARDED_FOR"
注意是要搜索内容!
starboy1413 2004-01-02
  • 打赏
  • 举报
回复
http://www.asp300.com
yt_yule 2004-01-02
  • 打赏
  • 举报
回复
PPLUNCLE(转向.NET):
上面的地址没有找到文章呀?

谢谢关注!
PPLUNCLE 2004-01-02
  • 打赏
  • 举报
回复
http://www.51base.com/article/search.asp?action=search
yt_yule 2004-01-02
  • 打赏
  • 举报
回复
up

yt_yule 2004-01-02
  • 打赏
  • 举报
回复
X_FORWARDED_FOR 不是resquest的头呀
PPLUNCLE 2004-01-02
  • 打赏
  • 举报
回复
在 ASP 中使用 Request.ServerVariables("REMOTE_ADDR") 来取得客户端的 IP 地址,但如果客户端是使用代理服务
器来访问,那取到的就是代理服务器的 IP 地址,而不是真正的客户端 IP 地址。要想透过代理服务器取得客户端的真实
IP 地址,就要使用 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 来读取。
  不过要注意的事,并不是每个代理服务器都能用 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 来读取客户端
的真实 IP,有些用此方法读取到的仍然是代理服务器的 IP。
  还有一点需要注意的是:如果客户端没有通过代理服务器来访问,那么用 Request.ServerVariables
("HTTP_X_FORWARDED_FOR") 取到的值将是空的。因此,如果要在程序中使用此方法,可以这样处理:

......
userip = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If userip = "" Then userip = Request.ServerVariables......

  ("REMOTE_ADDR")
即:如果客户端通过代理服务器,则取 HTTP_X_FORWARDED_FOR 的值,如果没通过代理服务器,就取 REMOTE_ADDR 的
值。
yt_yule 2004-01-02
  • 打赏
  • 举报
回复
IP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
是怎么定义的?
licrazy5201 2004-01-02
  • 打赏
  • 举报
回复
1.online
2.tongjionline
这二个是表吧?
xeimm 2004-01-02
  • 打赏
  • 举报
回复
楼上的兄弟已经把答案给你了~~~~~~~~~~
PPLUNCLE 2004-01-02
  • 打赏
  • 举报
回复
上面数据表没添完整:
---------------------------------------------------------
online:
---------------------------------------------------------
字段 类型 说明
ID 自动编号 主键
onlineIP 文本 在线IP
onlinename 文本 在线分配的随机数
lasttime 日期/时间 最近活动时间
---------------------------------------------
tongjionline
---------------------------------------------
maxonline 文本
maxdate 文本
totalonline 文本


stwfa 2004-01-02
  • 打赏
  • 举报
回复
这方面的网上很多,你可以尝试自己找找
PPLUNCLE 2004-01-02
  • 打赏
  • 举报
回复
楼主新年快乐
下面是我写的一个计数器,功能就只是实现了当前多少人在线,历史最高在线人数以及发生的时间,至于其他功能,有些我觉得没那个必要,楼主自己需要自己改改吧.还有楼主说的后台管理,可以取下载些源代码研究研究.
------------------------------------------------
计数器:
------------------------------------------------
代码:

<%
set conn=server.CreateObject("ADODB.Connection")
conn.open "Driver={Microsoft Access Driver (*.mdb)};dbq="&server.MapPath("jishu.mdb")

'得到用户IP
IP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
if IP = "" then
IP = Request.ServerVariables("REMOTE_ADDR")
end if
notsql="select onlinename from online"
set notrs=conn.execute(notsql)
sql="select * from online where onlineIP='"& IP &"'" '判断此IP用户是否在线
set rs=server.CreateObject("ADODB.Recordset")
rs.open sql,conn,1,3
if rs.eof then '表示没有此IP用户不在线。
'设置区分在不在线的有效时间(5分钟)
uptotal="update tongjionline set totalonline=totalonline+1 where ID='1'"
conn.execute(uptotal)
effecttime=5
onlinetime=now()
ranNum=int(90000*rnd)+10000
onlinename=year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&ranNum
'给这个用户添加在线信息。
insql="insert into online(onlineIP,onlinename,lasttime) values('"& IP &"','"& onlinename &"','"& onlinetime &"')"
conn.execute(insql)
'对其他在线用户进行操作.
dels="select * from online"
set srs=server.CreateObject("ADODB.Recordset")
srs.open dels,conn,1,3
for n=0 to srs.recordcount
'response.Write srs("lasttime")&"<br>"
'删除有效时间内无任何操作的用户(似为离开)
if DateDiff("n",srs("lasttime"),now())>5 then
deluser=srs("onlinename")
delsql="delete from online where onlinename='"& deluser &"'"
conn.execute(delsql)
end if
srs.movenext
if srs.eof then exit for
next
'对其他在线用户的最近活动时间进行更新
upsql="update online set lasttime='"& onlinetime &"'"
conn.execute(upsql)
else '表示此IP用户已经在线
effecttime=2
onlinetime=now()
dels="select * from online"
set srs=server.CreateObject("ADODB.Recordset")
srs.open dels,conn,1,3
for n=0 to srs.recordcount
'删除有效时间内无任何操作的用户(似为离开)
'response.Write srs("lasttime")&"<br>"
if DateDiff("n",srs("lasttime"),now())>5 then
deluser=srs("onlinename")
delsql="delete from online where onlinename='"& deluser &"'"
conn.execute(delsql)
end if
srs.movenext
if srs.eof then exit for
next
'对其他在线用户的最近活动时间进行更新
upsql="update online set lasttime='"& onlinetime &"'"
conn.execute(upsql)
end if

'统计当前在线人数和历史最高在线人数.
num1sql="select count(onlinename) as nums from online"
set num1rs=conn.execute(num1sql)
nowonlinenum=cint(num1rs("nums")) '取得当前在线人数.
num2sql="select * from tongjionline"
set num2rs=conn.execute(num2sql)
num2rs.movefirst
if not num2rs.eof then
'如果当前在线人数大于最高统计在线人数则更新。
if cint(nowonlinenum)>cint(num2rs("maxonline")) then
maxdate=now() '取得新的最高在线人数发生时间。
nowonlinenum=cstr(nowonlinenum)
upnumsql="update tongjionline set maxonline='"& nowonlinenum &"',maxdate='"& maxdate &"' where ID='1'"
conn.execute(upnumsql)
end if
else
maxdate=now() '取得新的最高在线人数发生时间。
innumsql="insert into tongjionline(maxonline,maxdate) values('"& nowonlinenum &"','"& maxdate &"')"
conn.execute(innumsql)
end if
maxsql="select * from tongjionline where id='1'"
set maxrs=conn.execute(maxsql)
maxonline=maxrs("maxonline") '取得最高在线人数
maxdate=maxrs("maxdate") '取得最高在线人数发生时间。
'释放对象:
rs.close
set rs=nothing
notrs.close
set notts=nothing
srs.close
set srs=nothing
num1rs.close
set num1rs=nothing
num2rs.close
set num2rs=nothing

set totalrs=server.CreateObject("ADODB.Recordset")
totalsql="select * from tongjionline where ID='1'"
totalrs.open totalsql,conn,1,3
totalrs.movefirst
totalonline=totalrs("totalonline")
conn.close
%>
<table width="425" border="1">
<tr>
<td>总访问量:<%=totalonline%>====<%=uptotal%></td>
</tr>
</table>
数据表:
online:
字段 类型 说明
ID 自动编号 主键
onlineIP 文本 在线IP
onlinename 文本
Tal 2004-01-02
  • 打赏
  • 举报
回复
http://www.china-code.net/
troopers 2004-01-02
  • 打赏
  • 举报
回复
在网上搜索一个源代码,嵌入你的网页就可以了。你先知道怎么样调用程序。以后有时间再慢慢研究代码。

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧