摘 要:校園學(xué)生活動(dòng)中公開民主投票評(píng)選是學(xué)生工作中非常重要的一塊,利用網(wǎng)絡(luò)技術(shù)開展這類活動(dòng)已成為當(dāng)今的一種趨勢(shì),如何配合校園學(xué)生活動(dòng)的開展,實(shí)現(xiàn)便捷地對(duì)投票結(jié)果進(jìn)行統(tǒng)計(jì)公開成為我們的主要課題。
關(guān)鍵詞:評(píng)選投票ASP
中圖分類號(hào):TP2文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1674-098X(2011)05(b)-0028-02
評(píng)選活動(dòng)一直以來在學(xué)生活動(dòng)當(dāng)中都扮演了相當(dāng)重要的地位,為了顯示公平、公開原則,民主投票是我們最經(jīng)常采用的形式。因此,開發(fā)一套功能完善的網(wǎng)上評(píng)選管理系統(tǒng),對(duì)于學(xué)生活動(dòng)民主評(píng)選具有非常重要的意義。本文利用Asp作為開發(fā)技術(shù),選擇Access數(shù)據(jù)庫(kù)作為后臺(tái)數(shù)據(jù)庫(kù),開發(fā)一套完整的校園攝影作品評(píng)選管理系統(tǒng)。
1 系統(tǒng)需求分析
學(xué)生校園活動(dòng)開展需要廣泛性,評(píng)選活動(dòng)則需要公平,公開原則。隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,利用網(wǎng)絡(luò)實(shí)現(xiàn)學(xué)生在線投票評(píng)選成為必然,在線投票即可使更多的人參與進(jìn)來,又可顯示公平、公開的原則,便于對(duì)評(píng)選結(jié)果進(jìn)行統(tǒng)計(jì)、公布。一次優(yōu)秀的學(xué)生評(píng)選活動(dòng)需要良好的策劃方案,也需要一套完整的系統(tǒng)支持平臺(tái)。本文以校園攝影作品評(píng)選管理系統(tǒng)為支持,改系統(tǒng)需要能夠方便學(xué)生上傳作品,系統(tǒng)管理員對(duì)作品進(jìn)行審核顯示在頁(yè)面中供大家投票,系統(tǒng)管理員可通過后臺(tái)公布評(píng)選活動(dòng)規(guī)則、公告,管理投票時(shí)間以及留言等,大家可在投票時(shí)間內(nèi)通過相關(guān)頁(yè)面查看作品的完整信息后進(jìn)行投票和留言,評(píng)選活動(dòng)票選結(jié)果在相關(guān)頁(yè)面顯示出來。
由于網(wǎng)絡(luò)投票會(huì)存在著刷票的現(xiàn)象,我們還需對(duì)投票次數(shù)進(jìn)行限制,限制重復(fù)投票的方法很多,本文主要是針對(duì)同一個(gè)IP地址用戶一天只能對(duì)一個(gè)作品進(jìn)行一次投票,但不影響該用戶投票給其他作品。
2 系統(tǒng)設(shè)計(jì)
本系統(tǒng)分為前臺(tái)和后臺(tái)兩大模塊,前臺(tái)介紹活動(dòng)規(guī)則,活動(dòng)公告,展示攝影作品供用戶查看、進(jìn)行投票、留言討論,并將各個(gè)作品統(tǒng)計(jì)結(jié)果實(shí)時(shí)顯示出來,后臺(tái)則由管理員管理活動(dòng)信息,對(duì)作品信息上傳及留言審核。投票設(shè)置開關(guān),由后臺(tái)管理員在后臺(tái)在規(guī)定時(shí)間打開,活動(dòng)時(shí)間結(jié)束后可關(guān)閉投票功能。系統(tǒng)流程如圖1。
3 系統(tǒng)實(shí)現(xiàn)
3.1 數(shù)據(jù)庫(kù)實(shí)現(xiàn)
本系統(tǒng)采用access作為后臺(tái)數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)主要由管理員,公告,信息,作品,評(píng)論,票數(shù)統(tǒng)計(jì)等工作表組成,作品工作表主要由作品圖片、作品名稱、參賽者、專業(yè)名稱、聯(lián)系方式等信息組成。
數(shù)據(jù)庫(kù)連接代碼如下:
dim connstr,datapath,conn
datapath=\"Manage/DataBase/Db.mdb\"
connstr=\"Provider=Microsoft.JET.OLEDB.4.0;Data Source=\" Server.mappath(datapath)
Set conn=Server.CreateObject(\"ADODB.Connection\")
conn.open connstr
3.2 前臺(tái)設(shè)計(jì)
前臺(tái)首頁(yè)頁(yè)面顯示公告及所有參賽作品的簡(jiǎn)圖,每頁(yè)顯示20個(gè),每個(gè)作品下面顯示得票數(shù)及投票按鈕,每幅作品可點(diǎn)擊進(jìn)去顯示大圖以及用戶對(duì)該作品的評(píng)價(jià),也可進(jìn)行留言。首頁(yè)菜單欄上面可以進(jìn)入活動(dòng)信息介紹,以及可以查看投票排行榜和學(xué)校主頁(yè)鏈接。
用戶在進(jìn)行投票時(shí)須先進(jìn)行投票檢測(cè),判斷投票系統(tǒng)是否開啟,如果投票系統(tǒng)關(guān)閉,則提示“投票已關(guān)閉”,否則可進(jìn)行投票,具體代碼如下:
sql=\"Select info from Mu where id=4\"
set t=conn.execute(sql)
if t(0)=\"關(guān)\" then
Response.write \"\"
Response.End()
end if
為防止用戶刷票,本系統(tǒng)采用限制用戶IP地址的方法,需要獲取用戶IP地址getip=Request.ServerVariables(\"REMOTE_ADDR\"),檢測(cè)該IP地址當(dāng)天是否已經(jīng)進(jìn)行過投票,已經(jīng)投過則顯示“不能繼續(xù)投票”,具體代碼如下:
if cip(ip,id,date())=true then
Response.write\"\"
Response.End()
end if
如果該IP地址當(dāng)天沒有進(jìn)行投票則票數(shù)累加一張
rs(\"hit\")=rs(\"hit\")+1
rs.update
最終票數(shù)統(tǒng)計(jì)結(jié)果將按得票數(shù)由多到少排列顯示,主要顯示作品序號(hào)<%=rs(\"id\")%>,作品名稱<%=rs(\"name\")%>,得票數(shù)<%=rs(\"hit\")%>。
用戶在查看作品時(shí)可以參加評(píng)論,評(píng)論內(nèi)容需審核才能通過。
3.3 后臺(tái)設(shè)計(jì)
后臺(tái)設(shè)計(jì)用戶登錄界面,需驗(yàn)證才允許進(jìn)入,后臺(tái)驗(yàn)證代碼如下:
if Request(\"Action\")=1 then
If Trim(Request.Form(\"validatecode\"))=Empty Or Trim(Session(\"cnbruce.com_ValidateCode\"))<>Trim(Request.Form(\"validatecode\")) Then
response.write(\"\")
response.end
end if
SQL=\"Select * from A_d_m_i_n where name='\" R(Trim(Request(\"name\"))) \"' and pass='\" MD5(R(Trim(Request(\"pass\")))) \"'\"
set nrs=server.createobject(\"adodb.recordset\")
nrs.open SQL,conn,1,3
if nrs.Bof and nrs.Eof then
Response.Write \"\"
Response.End()
else
Session(\"Admin\")=nrs(\"name\")
Session(\"flag\")=nrs(\"flag\")
nrs.Close
Response.Redirect \"Admin_Index.asp\"
end if
end if
進(jìn)入系統(tǒng)后分為基本信息管理以及圖片管理兩個(gè)模塊。
基本信息主要是管理員用戶名和密碼的修改、公告及活動(dòng)信息的添加修改,還可以設(shè)置投票開關(guān),具體如下:
if Request(\"Action\")=1 then
if rs(\"info\")=\"開\" then
rs(\"info\")=\"關(guān)\"
else
rs(\"info\")=\"開\"
end if
rs.Update
rs.Close
Set rs=nothing
Response.Write \"\"
Response.End()
end if
圖片管理則負(fù)責(zé)對(duì)參賽作品進(jìn)行管理,包括參賽作品的信息上傳、刪除以及對(duì)參賽作品評(píng)論的審核。上傳圖片是對(duì)圖片有相關(guān)要求,代碼如下:
dim upload,file,formName,formPath,iCount,filename,fileExt
set upload=new upload_5xSoft ''建立上傳對(duì)象
formPath=\"uploadimages/\"
''在目錄后加(/)
if right(formPath,1)<>\"/\" then formPath=formPath\"/\"
iCount=0
for each formName in upload.file ''列出所有上傳了的文件
set file=upload.file(formName)''生成一個(gè)文件對(duì)象
if file.filesize<100 then
response.write \"
請(qǐng)先選擇你要上傳的圖片[ 重新上傳 ]\"
response.end
end if
if file.filesize>1000000 then
response.write \"
圖片大小超過了限制[ 重新上傳 ]\"
response.end
end if
fileExt=lcase(right(file.filename,4))
if fileEXT<>\".jpg\" and fileEXT<>\".gif\" then
response.write \"
文件格式只能為jpg和gif格式[ 重新上傳 ]\"
response.end
end if
randomize
ranNum=int(90000*rnd)+10000
filename=formPathyear(now)month(now)day(now)hour(now)minute(now)second(now)fileExt
filename1=year(now)month(now)day(now)hour(now)minute(now)second(now)fileExt
if file.FileSize>0 then ''如果 FileSize > 0 說明有文件數(shù)據(jù)
file.SaveAs Server.mappath(filename) ''保存文件
response.write \"\"
iCount=iCount+1
end if
set file=nothing
next
set upload=nothing''刪除此對(duì)象
Response.Write
\"
\"
response.end
管理圖片及圖片在首頁(yè)顯示均按每頁(yè)顯示20個(gè),具體代碼如下:
if Request(\"type\")<>\"\" then
SQL=\"Select * from Photo where ok=0 and t=\"Request(\"type\")\" order by id desc\"
else
SQL=\"Select * from Photo where ok=0 order by id desc\"
end if
set rs=server.createobject(\"Adodb.Recordset\")
rs.open SQL,conn,1,1
dim i,bgc
if not rs.eof then
pages = 20 '定義每頁(yè)顯示的記錄數(shù)
rs.pageSize = pages '定義每頁(yè)顯示的記錄數(shù)
allPages = rs.pageCount'計(jì)算一共能分多少頁(yè)
page = Request.QueryString(\"page\")'通過瀏覽器傳遞的頁(yè)數(shù)
'if語(yǔ)句屬于基本的排錯(cuò)處理
if isEmpty(page) or Cint(page) < 1 then
page = 1
elseif Cint(page) > allPages then
page = allPages
end if
rs.AbsolutePage = page
i=0
Do while not rs.eof and pages > 0
4 結(jié)語(yǔ)
本系統(tǒng)界面美觀,對(duì)于校園活動(dòng)評(píng)選投票公正公開,功能強(qiáng)大,后臺(tái)管理員管理簡(jiǎn)單輕松,可方便快捷正確統(tǒng)計(jì)出投票情況,該系統(tǒng)目前已經(jīng)用于學(xué)生校園活動(dòng)中并取得不錯(cuò)效果,可用于其余各項(xiàng)學(xué)生校園評(píng)選活動(dòng)中。
參考文獻(xiàn)
[1]張景峰.ASP程序設(shè)計(jì)教程[M].清華大學(xué)出版社,2008.
[2]李冰.ASP動(dòng)態(tài)網(wǎng)頁(yè)設(shè)計(jì)教程與實(shí)訓(xùn)[M].中國(guó)人民大學(xué)出版社,2009.
[3]尚俊杰.網(wǎng)絡(luò)程序設(shè)計(jì)—— asp[M].清華大學(xué)出版社,2009.