今天来讲讲如何将计数值保存到ACCESS里,并且计数值不随刷新而增长。
首先新建count文件夹,建立一个ACCESS数据库取名为counter,新建一表:mycount,可以给这个表只建立一个字段,那就是:hits。文件的命名及变量的命名只要遵循其规则,你可以任意取,只要方便自己记住,不过数据库还是用E文好点吧!
打开DW吧,咱得先使ASP文件和数据库联通一下,然后再让计数值移动,嘿嘿,做个小广告,;)
连接数据库的方法有几种,有点让大家失望了,这段代码是偶从别人那里偷来的。
<%
dim conn,strCon
Set conn = Server.CreateObject("ADODB.Connection")
strCon = "dbq="+server.mappath("./counter.mdb")+";defaultdir=;driver={microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;ImplicitCommitSync=Yes;MaxBufferSize=512;MaxScanRows=10;PageTimeout=10; SafeTransactions=0;Threads=3;UserCommitSync=Yes;"
conn.Open strCon
%>
这里要注意数据库与文件的路径,否则会出错的,因为俺把ASP文件与ACCESS文件放在同一目录下面,如果你要把ACCESS放在一个专门的文件夹里,更改一下server.mappath的路径。
打开了数据库别忘了再加上那么一段话在适时的时候关闭对象,过河拆桥还是有好处的,至少可以释放点内存。
<%
function closedb()
conn.close()
set conn=nothing
end function
%>
OK,弄好了这个开始index.asp文件的编码工作了,别忘了把这个conn.asp指引到文件里来,否则连不上数据库,沟通就有问题了。
现在要做的就是对的mycount进行搜索,将其计数值取出,并赋给一个变量hits保存,如果你对ACCESS的条添加,更新,删除,查询四条基本语句不是太了解的话,最好还是先补充一下基本的SQL的知识吧 。接下来要做的就是将数据库里的计数值取出并保存到变量hits里。
<%
dim rs,hits
set rs=conn.execute("select hits from mycount")
hits = rs("hits")
rs.close():set rs=nothing
%>
对象用完记得关闭,别过了河就不拆桥了,嘿嘿。就这么几句话已经将计数值取出来了并赋给了hits变量,是不是有点不太相信!
那如何才能让计数不随页面的刷新而增长呢?!用Cookies或是Session吧
Cookies是服务器丢给客户机的一个称作"小甜瓶"文件,它默认会被保存在客户机的硬盘上,我们可以通过ASP代码来让读取里面的数据。而Session是服务器端产生的一个临时变量,默认存活时间只有20分钟,我们可以通过IIS或Timeout属性来修改它的存活时间,只是每生成一个Session,服务器的负担也就会加大那么一点,两者各有千秋。Cookies因为是保存在客户机上的,所以一些人就会通过查看这个东西来盗取服务器抛在客户电脑里的一些个人信息,而Session因为是服务器生成的,所以一旦生成的Session越多,服务器的负担也就会超重了,而且浏览器一旦被关闭,所有的Session也就被终止了,可见安全性比Cookies高了点吧,还是用Cookies吧,至少它可以长时间的保存在客户机上。如何将信息种植在电脑里呢,一句话就可以搞定:response.cookies("mycookies")=value,是不是有点想尖叫的感觉,呆会吧,为了让这个value多存活一段时间,比如两个小时吧,我们还得给它加上一句话,否则浏览器一关闭,COOKIES的值也就跟着完蛋了:<% response.Cookies("mycookies").expires = dateadd("h",2,now())%>
现在要做的是读取cookies看看我们种值在这台电脑里的信息是否存在,如果存在说明它已经是浏览过的了,不需要对数据进行处理,直接输入上面的hits。读取COOKIES也非常简单,request.cookies("mycookies")就可以搞定了,现在我们继续下面的代码吧
<%
if request.cookies("mycookies")="" then
hits = hits+1
' 将得到的变量更新到数据库里保存
conn.execute("update mycount set hits = "&hits)
end if
'别急,还没完呢,咱还得扔个小甜甜在客户上呢,嘿嘿,要让它知道记得咱撒,即使电脑上已经有了也不要紧,所谓有病治病,无病强身,让它多活一点时间也不是什么坏事。这里的值你可以随便写些什么东西,比如你BF或是GF的NAME
response.cookies("mycookies")="打倒小日本"
response.cookies("mycookies").expires=dateadd("h",2,now())
'好了,这个计数器就算是做好了,现在咱们把它给显示出来吧。
response.write hits
%>
怎么样,不是太难吧,上次咱们FSO做的计数器里是用图片把结果输入出来的,你现在也可以试试用图片做为计数器,嘿嘿,有兴趣的话可以把COOKIES放到FSO的留言本里,没事别老让它刷新吧。
累呀,小学作文从来没写过这么长的,有点象古时候女人们的那个什么什么布的,嘿嘿,下次咱们来做一个很牛B的投票系统吧。
相关文件:
点这儿打开