如何使用ASP在自己的网站建立投票机制(一)
翻译整理
一个很不错的建立自己的投票系统的ASP程序大家仔细读读,只要能够理解中间的关键技术,就能够在自己的网站上建立自己的投票站了。文件整理得很仓促,希望大家谅解。 版权所有: ASP Polls version 1.0 Tipped Cow Development and Adrenalin Labs 结构简单介绍: ACCESS数据库设计结构: poll表主要字段名称:PollName,PollCreator,PollQuestion,Password,Choice1,Choice2 Choice3,Choice4,Choice5,ID(自动编号),GetName pollresults表字段:PollID,PollAnswer,Name 1.文件db.inc <% Application("ASP_Poll") = "ASP_Poll" cnString = "DRIVER={Microsoft Access Driver (*.mdb)}; " cnString = cnString & "DBQ=" & Server.MapPath("Events.mdb") Application("ASPPollDSN") = cnString %> 1.文件creat_poll1.asp <% Title="Poll Generator" %> <head> <link rel="STYLESHEET" type="text/css" href="style.css"> <title><%=Title%></title> </head> <body> <div align="left"><img src=http://cfan.net.cn/info/"asp_poll.gif" width="231" height="90"><br>Another joint product from <a href="http://www.ncws.com/tippycow">Tipped Cow Development</a> and <a href="http://dstoflet.calweb.com">Adrenalin Labs</a> <br><br> </div> <center>
<% Response.Write "<font face=arial>" If Request("errormessage") <> "" Then Response.Write "<b>Error! </b>" & Request("errormessage") Else Response.Write "Please complete the form below to begin creating your own poll." End If %>
<br><br> <table border=2 cellspacing=0 cellpadding=0><tr><td> <form method="post" action="create_poll2.asp">
<table border=0 cellspacing=0 cellpadding=10 width=500><tr> <td colspan=2 bgcolor=#000000 align=center class="bold2"> Enter Your Name as the Poll Creator </td> </tr><tr> <td bgcolor=#ffffff width=25% class="bold">Poll Creator:</td> <td bgcolor=#ffffff> <input type="text" name="creator" value="<%=Request("creator")%>" size=20 class="input"> </td> </tr>
</td></tr> <tr><td>
<table border=0 cellspacing=0 cellpadding=10 width=500><tr> <td colspan=2 bgcolor=#000000 align=center class="bold2"> Create a Password For Your Poll So That You Can Modify It At A Later Time </td> </tr><tr> <td bgcolor=#ffffff width=25% class="bold">Poll Admin Password:</td> <td bgcolor=#ffffff> <input type="password" name="password" value="<%=Request("password")%>" size=10 maxlength=10 maxsize=10 class=input> </td> </tr>
</td></tr> <tr><td>
<table border=0 cellspacing=0 cellpadding=10 width=500><tr> <td colspan=2 bgcolor=#000000 align=center class="bold2"> Give Your Poll a Unique Name </td> </tr><tr> <td bgcolor=#ffffff width=25% class="bold">Poll Name:</td> <td bgcolor=#ffffff> <input type="text" name="name" value="<%=Request("name")%>" size=20 class=input> </td> </tr>
<table border=0 cellspacing=0 cellpadding=10 width=500><tr> <td colspan=2 bgcolor=#000000 align=center class="bold2"> Do you want to have the user enter their name? </td> </tr><tr> <td bgcolor=#ffffff width=25% class="bold">Require user to enter their name:</td> <td bgcolor=#ffffff class="bold"> Yes<input type="radio" name="GetName" value="1"><br> No <input type="radio" name="GetName" value="0" CHECKED> </td> </tr>
</td></tr> <tr><td>
<table border=0 cellspacing=0 cellpadding=10 width=500><tr> <td colspan=3 bgcolor=#000000 align=center class="bold2"> Select Poll Type </td> </tr><tr>
<td colspan=2 bgcolor=#ffffff class="bold">What type of poll question do you wish to create?</td> <td bgcolor=#ffffff class="bold"> <input type="radio" name="polltype" value="yes_no">Yes/No<br> <input type="radio" name="polltype" value="multiple_choice">Multiple Choice<br> </td> </tr>
</td></tr> <table width=500><tr> <td colspan=3 align=right> <input type="submit" value=" Next " class="inline"> </td></tr>
</center> </body> </html> 3.文件connect.asp <% id = Request("id") If id = "" Then id = 0 End If num = Request("choice")
If num <> "" Then
Set conn = Server.CreateObject("ADODB.Connection") dsnpath = "DRIVER={MICROSOFT ACCESS DRIVER (*.mdb)}; " dsnpath = dsnpath & "DBQ=" & Server.MapPath("Events.mdb") conn.open dsnpath Set rs = Server.CreateObject("ADODB.RecordSet") rs.Open "PollResults", conn, 3, 3 rs.AddNew rs("PollID") = Cint(id) rs("Name") = Request("Name") rs("PollAnswer") = Cint(num) rs.Update rs.Close set rs = Nothing conn.Close set conn = Nothing End If
If Request("return_page") <> Empty Then Response.Cookies("PollID") = id Response.Redirect Request("return_page") End If %>
<html> <body bgcolor="#4f4f4f" text="#c0c0c0" link=#f5fcdc vlink=#f5fcdc> <center>
<% If num <> "" Then %> <br><br> <table border=0 cellspacing=0 cellpadding=0><tr>
<td colspan=3 align=center><font face="verdana"> Your selection has been recorded. </td></tr>
<% End If %> <br><br> <%
Set conn = Server.CreateObject("ADODB.Connection") sql = "select * from Poll where ID = " & Cint(id) dsnpath = "DRIVER={MICROSOFT ACCESS DRIVER (*.mdb)}; " dsnpath = dsnpath & "DBQ=" & Server.MapPath("Events.mdb") conn.open dsnpath Set rs = Conn.Execute(sql) If rs.EOF = False Then %> <table border=1 cellspacing=0 cellpadding=5 width=500 bordercolor=#2f2f4f><tr> <td colspan=3 bgcolor=#2f2f4f align=center><font face="verdana" color=#f5fcdc> <%=rs("PollQuestion")%> </td></tr> <% Dim Choices(6) Dim Responses(6) For I=1 To 5 choice = rs("Choice" & I) Choices(I) = choice If choice <> "" Then Set conn2 = Server.CreateObject("ADODB.Connection") sql = "select COUNT(PollAnswer) from PollResults where PollID = " & Cint(id) & " AND PollAnswer=" & I dsnpath = "DRIVER={MICROSOFT ACCESS DRIVER (*.mdb)}; " dsnpath = dsnpath & "DBQ=" & Server.MapPath("Events.mdb") conn2.open dsnpath Set rs2 = Conn.Execute(sql) If rs2.EOF = False Then Response.Write "<tr><td colspan=2 bgcolor=#4f4f4f align=center width=400><font face=verdana color=#f5fcdc>" Response.Write choice Response.Write "</td>" Responses(I) = rs2(0) Response.Write "<td colspan=1 bgcolor=#4f4f4f align=right><font face=verdana color=#f5fcdc><b>" & rs2(0) & "</b></td>" Response.Write "</tr>" End If rs2.Close conn2.Close End If Next End If %>
<br><br>
<table > <td colspan=3 align=center><font face="arial"> <font face="ms sans serif"><b> Polls Results</b></font> </td></tr>
<% Total = 0 For I=1 To 5 responseCount = Responses(I) If responseCount <> "" Then Total = Total + Cint(responseCount) End If Next For I=1 To 5 choice = Choices(I) responseCount = Responses(I) If choice <> "" Then Response.Write "<tr><td colspan=1 align=left><font face=arial>" Response.Write choice Response.Write "</td>" Response.Write "<td colspan=2 width=400><table border=1 cellspacing=0><tr><td bgcolor=blue align=center width=" & ConvertToPix(responseCount) & "><font face=ms sans serif color=white><b>" & ConvertToPercent(responseCount) & "</td></tr></td>" Response.Write "</tr>" End If Next
Function ConvertToPix(sz) If sz = 0 Then ConvertToPix = 0 Else ConvertToPix = Cint(400/Total * sz) End If End Function
Function ConvertToPercent(sz) If sz = 0 Then ConvertToPercent = "0%" Else ConvertToPercent = FormatPercent(sz/Total, 2) End If End Function
%>
<% If num = "" Then %> <br><br> <table border=0 cellspacing=0 cellpadding=0><tr>
<td colspan=3 align=center><font face="verdana"> <a href="default.asp?ID=<%=id%>">Add Your Vote</a> </td></tr>
<% End If %>
<br><br> <table width=100%><tr><td align=right> <table border=1 cellpadding=5 cellspacing=0 bordercolor=#f5fcdc><tr><td bgcolor=#2f2f4f> <font face=verdana size=+1><a href=javascript:history.back()>Back</a> </td></tr> </td></tr>
</center> </body> </html>
-------------------------------------------------
如何使用ASP在自己的网站建立投票机制(二)
翻译整理
4、文件default.asp <% ID = Request("ID") If ID = "" Then ID = 30 End If Title = "Polls (Create your own poll)" %>
<html>
<head><link rel="STYLESHEET" type="text/css" href="style.css"> <title>ASP Polls</title>
<script language="JavaScript">
function gatherForm(form){ if(form.Mode[0].checked){ form.submit(); }else{ form.action="collect.asp"; form.submit(); } }
</script> </head>
<body> <div align="left"><img src=http://cfan.net.cn/info/"asp_poll.gif" width="231" height="90"><br>Another joint product from <a href="http://www.ncws.com/tippycow">Tipped Cow Development</a> and <a href="http://dstoflet.calweb.com">Adrenalin Labs</a> <br><br> </div> <table width="100%" cellspacing="0" cellpadding="2"> <tr> <td align="left" width="25%" valign="top" class="bold"> <form action="default.asp"> <table width="100" border="1" bordercolor=#ccccff> <tr> <td> <table border=0 cellspacing=0 cellpadding=5 bgcolor=#4f4f4f><tr> <td colspan=3 bgcolor=#000000 align=center class="bold2">Select A Poll</td> </tr><tr> <td colspan=3 bgcolor=#000000 align=center> <select name="ID" onChange="gatherForm(this.form)" class="input"> <% Set conn = Server.CreateObject("ADODB.Connection") conn.Open Application("ASPPollDSN") sql = "select * from Poll" Set rs = conn.Execute(sql) Do While Not rs.EOF %>
<option value="<%=rs("ID")%>"><%=rs("PollName")%>
<% rs.MoveNext Loop %>
</select> </tr>
<tr> <td colspan=3 align=right bgcolor=#FFFFFF class="bold"> Vote In Poll:<input type="radio" name="Mode" value="Vote" CHECKED><br> View Results:<input type="radio" name="Mode" value="View"> </td></tr>
<tr> <td colspan=3 align=right bgcolor=#000000 align=center> <input type="button" value=" Go " onClick="gatherForm(this.form)" class="inline"> </td></tr>
</td> </tr> </form><br> <div align="left" class="bold"> <a href="create_poll1.asp">Create your own poll</a><br> <a href=javascript:history.back()>Back</a> </div> </td>
<td align="center" width="75%" valign="top"> <table width="100" border=1 cellspacing=2 cellpadding=0 bordercolor=#ccccff><tr><td> <form method="post" action="collect.asp"> <input type="hidden" name="id" value="<%=id%>">
<% Set conn = Server.CreateObject("ADODB.Connection") conn.Open Application("ASPPollDSN") sql = "select * from Poll where ID = " & ID Set rs = conn.Execute(sql) If rs.EOF = False Then %>
<table border=0 cellspacing=0 cellpadding=10 bgcolor=#4f4f4f><tr> <!-- <td colspan=3 bgcolor=#2f2f4f align=center><font face="verdana" color=#f5fcdc> Poll: <%=rs("PollName")%> </td> --> </tr><tr> <td colspan=3 bgcolor=#000000 align=left class="bold2"><%=rs("PollQuestion")%> </tr> <% For I=1 To 5 choice = rs("Choice" & I) If choice <> "" Then %> <tr> <!-- <td width=50 colspan=1 bgcolor=#4f4f4f> </td> --> <td colspan=2 bgcolor=#FFFFFF class="bold" align="left"> <%=choice%></td><td bgcolor=#FFFFFF align="left"><input type="radio" name="choice" value="<%=I%>"> </td></tr> <% End If Next %>
</tr> <% If rs("GetName") = "1" Then %> <tr><td colspan=1 align=right bgcolor=#FFFFFF class="bold"> Your Name:</td> <td colspan=2 align=right bgcolor=#FFFFFF> <input type="text" name="Name"> </td></tr> <% End If %> <tr> <td colspan=3 align=right bgcolor=#000000 align=center> <input type="submit" value="Submit Vote" class="inline"> </td></tr>
<% Else Response.Write "Invalid Poll Id Request!" End If %> </td></tr></form>
</td> </tr>
</body> </html>
5、文件global.asa <SCRIPT LANGUAGE="VBScript" RUNAT="SERVER">
Sub Application_OnStart Application("ASP_Poll") = "ASP_Poll" cnString = "DRIVER={Microsoft Access Driver (*.mdb)}; " cnString = cnString & "DBQ=" & Server.MapPath("Events.mdb") Application("ASPPollDSN") = cnString End Sub </SCRIPT>
6、文件pool.inc <% DBPath = Server.MapPath("/poll/Events.mdb") ID = 28 If Request.Cookies("PollID") = CStr(ID) Then ShowDisplay Else ShowVote End If
Function ConvertToPercent(total, sz) If sz = 0 Then ConvertToPercent = "0%" Else ConvertToPercent = FormatPercent(sz/total, 2) End If End Function
Sub ShowVote
%>
<div align=right> <table width=125 border=1 cellspacing=0 cellpadding=0><tr><td> <form method="post" action="/poll/collect.asp"> <input type="hidden" name="id" value="<%=id%>"> <input type="hidden" name="return_page" value="<%=Request.ServerVariables("PATH_INFO")%>"> <% Set conn = Server.CreateObject("ADODB.Connection") dsnpath = "DRIVER={MICROSOFT ACCESS DRIVER (*.mdb)}; " dsnpath = dsnpath & "DBQ=" & DBPath conn.open dsnpath sql = "select * from Poll where ID = " & ID Set rs = conn.Execute(sql) If rs.EOF = False Then %>
<table width=125 border=0 cellspacing=0 cellpadding=2 bgcolor=#4f4f4f> <tr> <td colspan=3 bgcolor=#2f2f4f align=center> <%=rs("PollQuestion")%> </td> </tr> <% For I=1 To 5 choice = rs("Choice" & I) If choice <> "" Then %> <tr> <td colspan=2 bgcolor=#000000 valign=top width=80%> <%=choice%> </td><td valign=top colspan=1 width=20% bgcolor=#000000> <input type="radio" name="choice" value="<%=I%>"> </td></tr> <% End If Next %>
<tr> <td colspan=3 align=center bgcolor=#2f2f4f align=right> <input type="submit" value="Submit" class=nav> </td></tr>
<% End If %>
</td></tr></form>
</center>
<%
End Sub
Sub ShowDisplay
Set conn = Server.CreateObject("ADODB.Connection") sql = "select * from Poll where ID = " & Cint(ID) dsnpath = "DRIVER={MICROSOFT ACCESS DRIVER (*.mdb)}; " dsnpath = dsnpath & "DBQ=" & DBPath conn.open dsnpath Set rs = Conn.Execute(sql) If rs.EOF = False Then Dim Choices(6) Dim Responses(6) For I=1 To 5 choice = rs("Choice" & I) Choices(I) = choice If choice <> "" Then Set conn2 = Server.CreateObject("ADODB.Connection") sql = "select COUNT(PollAnswer) from PollResults where PollID = " & Cint(id) & " AND PollAnswer=" & I dsnpath = "DRIVER={MICROSOFT ACCESS DRIVER (*.mdb)}; " dsnpath = dsnpath & "DBQ=" & DBPath conn2.open dsnpath Set rs2 = Conn.Execute(sql) If rs2.EOF = False Then Responses(I) = rs2(0) End If rs2.Close conn2.Close End If Next %> <div align="right"> <table border=1 cellspacing=0 cellpadding=2><tr><td> <table width=125 border=0 cellspacing=0><tr> <td colspan=2 bgcolor=#2f2f4f align=center class=orgbold>ASP Poll </td></tr> <tr><td colspan=2 align=center bgcolor=#ccccff class=black> Q:<%=rs("PollQuestion")%> </td></tr>
<% Total = 0 For I=1 To 5 responseCount = Responses(I) If responseCount <> "" Then Total = Total + Cint(responseCount) End If Next For I=1 To 5 choice = Choices(I) responseCount = Responses(I) If choice <> "" Then Response.Write "<tr><td colspan=1 align=left><font face=verdana size=-1 color=#f0f0f0>" Response.Write choice Response.Write "</td>" Response.Write "<td>" & ConvertToPercent(total, responseCount) & "</td>" Response.Write "</tr>" End If Next Response.Write "</td></tr></div>" End If End Sub %> </div>
|