站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
建站程序
开发
服务器
办公软件
开发教程
服务器教程
软件使用教程
运营教程
热门电子书
WordPress教程
宝塔面板教程
CSS教程
Shopify教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
ASP实例如3
”
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
个能对访问者进行编号、记录访问次数、IP、时间的统计制作实例 我做了一个网站,www.zydn.net 当然啦,跟大家一样,也摆了个计数器在上面,每天看计数器都在不断的翻,心里很高兴,不过后来我又想,到底是谁看了我的网站啊?是新朋友还是老朋友啊?也不知他们来了多少次,我还想给他们都编上号,于是我申请了 免费统计,不过一连换了N个都不满意,唉,看来,只有自己动手才能丰衣足食了,说干就干,水平臭臭,还望高手笑话之于,不访指教。 <br> 我以[[ACCESS]]库为例子,其实用SQL SERVER库也只要改一下链接库的语句就得啦, <br> 库结构如下 <br> 库文件名: CONT.ASP 本来是CONT.MDB但在建好后把扩展名改为了ASP,以防库被下载。 <br> 表名:tab <br> 字段名 数据类型 说明 <br> ID 自动编号 访客的编号 <br> IP 文本 用于记录访客的IP <br> dat1 日期时间 用于记录访客最后访问的时间 <br> dat 日期时间 用于记录访客第一次访问的时间 <br> CS 数字,整型 用于记录访客访问次数 <br> 程序很简单,只有两个文件,dispcont.asp 用于显示统计结果,contpage.asp用于统计信息, <br> 先看看CONTPAGE.ASP 是乍么统计的,代码如下: <br> 〈% Set Conn=Server.CreateObject("ADODB.Connection") <br> Connstr="DBQ="+server.mappath("cont.asp")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};" <br> Conn.Open connstr '*****以上语句用于连接库,cont.asp是库文件名。<br> keren=request.cookies("keren") '读取cookies,cookies的名为:“keren”,哈哈。。阿余的E文学的臭,只懂用拼音啦。 <br> if keren="" then '判断cookees是不是空,如果是空,那么肯定是新朋友啦,否则是老朋友。 <br> sql="SELECT * FROM tab where id=-1" <br> set rs=server.createobject("ADODB.Recordset") <br> rs.Open sql,conn, 1, 3 <br><br> rs.addnew '如果是新访客的话,在库中新增一条记录。 <br> rs("cs")=1 '记下访问次数为1 <br> rs("ip")=request.servervariables("remote_addr") '记下IP, <br> rs("dat")=now '记下当前的日期时间, <br> rs("dat1")=date '记下当前的日期,以后用来做第一次访问的日期, <br> response.cookies("keren")=rs("id") '写入一个cookies,内容就和ID一样。 <br> response.cookies("keren").expires=date+365 '设置cookies的有效日期从现在开始,365天, <br> else '以上是新朋友的处理办法,对老朋友怎么办呢?看下面的: <br> sql="SELECT * FROM tab where id="&keren '到库中去找出我们老朋友的记录 <br> set rs=server.createobject("ADODB.Recordset") <br> rs.Open sql,conn, 1, 3 <br> rs("cs")=rs("cs")+1 '好啦,找到啦,把访问次数加上1 <br> rs("ip")=request.servervariables("remote_addr") '看看他的IP是多少了,记下来。 <br> rs("dat")=now '记下现在的时间,也就是最后一次访问的时间, <br> response.cookies("keren")=rs("id") '再把cookies写进去,我不知这句是否多余,没有试。 <br>response.cookies("keren").expires=date+365 '设置cookies过期时间,免得一年到了我就不认得他了。 <br> end if <br> rs.update '该记的都记下了,更新库吧。 <br>rs.close '关闭recordset对象。 <br> set conn=nothing '释放conn,我还是认为connection要随开随关才对,放到SESSION中我认为最不可取。4 %〉 <br> 好啦,记录就做好啦,有二十几行代码,很简单的一个小程序,但我想,高手肯定还有高招,有高招的朋友不忘了教教阿余, <br> 程序写好了,怎么放到页面中呢?很简单,在首页上随便找个地方,加上这行代码:〈img src="contpage.asp" width="0" height="0"〉就行了。 <br> 接下来就是把记录显示出来,这个能做得比阿余好的人多的是,不过还是来现个丑。 <br> 文件名:dispcont.asp , 请看代码:<br> 〈% <br> Set Conn=Server.CreateObject("ADODB.Connection") <br> Connstr="DBQ="+server.mappath("cont.asp")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};" <br> Conn.Open connstr '*****以上语句用于连接库,cont.asp是库文件名。 <br> page3=request("pag") <br> if page3="" then page3=session("contpag") '分页数,当前分页 <br> if page3="" then page3="1" <br> pa=request("pa") <br> if pa="" then pa=session("contpa") '每页显示数 <br>if pa="" then pa=15 '默认每页显示15条,可任意改 <br> session("contpag")=page3 <br> session("contpa")=pa <br> pages=pa '每页显示数量***************以上一段程序用于实现分页功能 <br> SQL="SELECT * FROM tab order by -dat,-id" <br> dim rs <br> Set rs=Server.CreateObject("ADODB.RecordSet") <br> rs.Open sql,conn,1,1 <br> csi=0 <br> cs1=0 <br> cs100=0 <br> csdat1=0 <br> do while not rs.eof <br> csi=csi+rs("cs") <br> if rs("cs")=1 then cs1=cs1+1 <br> if rs("cs")〉=100 then cs100+1 <br> if datevalue(rs("dat"))=date then <br> csdat1=csdat1+1 <br> end if <br> rs.movenext <br> loop <br> ZS=RS.RECORDCOUNT <br> '*****************************************************8以下一段程序用于分页显示 <br>%〉<br> 〈head〉 <br> 〈title〉卓越电脑统计〈/title〉 <br> 〈/head〉 <br> 〈body style="font-size: 9pt" bgcolor="#D8EDF8"〉 <br> 共有〈%Response.Write zs%〉条记录,现在是第〈%Response.Write page3%〉页 每页显示:[〈a href="dispcont.asp?pag=〈%=page3%〉&pa=15"〉15]条、[〈a <br>href="dispcont.asp?pag=〈%=page3%〉&pa=20"〉20]条、[〈a href="dispcont.asp?pag=〈%=page3%〉&pa=30"〉30]条、[〈a href="dispcont.asp?pag=〈%=page3%〉<br>&pa=40"〉40]条 <br> [〈a href="dispcont.asp"〉刷新] <br> 〈div align="left"〉 <br> 〈table border="0" cellpadding="0" style="font-size: 9pt"〉 <br> 〈tr〉〈td〉页码〈/td〉〈%page2=1 <br> for i=1 to zs step pages <br> if page3=cstr(page2) then <br> %〉〈td 〉[〈%Response.Write page2%〉]〈/td〉 <br> 〈% else %〉 <br> 〈td 〉〈a href="dispcont.asp?pag=〈%Response.Write page2%〉"〉[〈%Response.Write page2%〉]〈/td〉 <br> 〈% end if <br> page2=page2+1 <br> next <br> sn=pages*(page3-1) '当前记录号=每页显示数*页数-每页显示数 <br> if sn〉zs then sn=0 <br> rs.move sn,1 <br> '**********************************以上一段用于分页 <br> %〉 〈/tr〉〈/table〉 <br> 〈/div〉 〈table style="font-size: 9pt" width="100%" bordercolorlight="#000000" border="1" bordercolordark="#FFFFFF" bgcolor="#A4D1E8" <br>cellspacing="0" cellpadding="3"〉 <br> 〈tr〉〈td〉编号〈/td〉〈td〉最后访问首页〈/td〉〈td〉最后访问IP〈/td〉〈td〉首页次数〈/td〉〈td〉首次访问日期〈/td〉〈/tr〉〈% <br> for i=1 to pages <br> Response.Write "〈/tr〉" <br> Response.Write "〈td〉"&rs("ID")&"〈/td〉" <br> Response.Write "〈td〉"&rs("dat")&"〈/td〉" <br> Response.Write "〈td〉"&rs("IP")&"〈/td〉" <br> Response.Write "〈td〉"&rs("CS")&"〈/td〉" <br> Response.Write "〈td〉"&rs("DAT1")&" 〈/td〉" <br> Response.Write "〈/tr〉" <br> rs.movenext <br> if rs.eof then exit for <br> next <br> rs.close <br> %〉 <br> 〈tr〉〈td〉合计〈%=zs%〉〈/td〉〈td〉访问次数为100次以上的有〈%=cs100%〉 〈/td〉〈td〉访问次数为1的有:〈%=cs1%〉〈/td〉〈td〉总访问次数〈%=csi%〉〈/td〉〈td〉今天访问量:〈%=csdat1%〉〈/td〉〈/tr〉 <br> 〈/table〉 <br> [[category:ASP]]
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)