为了调查了解站点访问者对特定问题的立场,我们可以在站点中设置投票程序,站点访问者直接选择答案,程序自动对所有答案进行统计和显示.
下面是一个简单的flash版的投票程序,后台使用xml+ asp+ mysql:因为大多web工作
者对asp比较熟悉,xml可以将复杂的问题简化,采用mysql的原因是access我没有安装,程序不需要任何存储过程,所以无需动sql server ,oracle等重兵器.
问题分析:本投票程序是选择题,故我们用一个字段存储用户的答案即可.
建立数据库和表:表名称和数据库名称任意,字段定义如下:
voteid无符号整数自动编号
result短整数存储用户选择本程序范围在0-2
userip char (25)用户ip地址实际长度21
message char(255)附加消息//这个程序未用
使用mysql-front创建
设计flash用户界面:从window/components/flash ui components中拖三个radiobutton到舞台中,
设置标签,其他为默认值。(从属性面板和组件参数面板均可以设置)
这里将使用一个图表组件(html ui components中的subtype),你可以到mm扩充资源www.macromedia.com/exchange/flash下载.
flash端的程序非常简单只有三行:
//在时间轴的第一帧,加入下面的代码
//标签名称为"开始投票吧!"的按钮,事件句柄为sendvote,在点击后执行下面的自定义函数
function sendvote () {
_root.mytb.readdata("http://localhost/votexml.asp?selectresult="+radiogroup.getinstance());
}
服务器端程序的编写,上面你可能看到有一个votexml.asp的文件,下面我们就来建立它.
代码如下:
<%@language="vbscript" codepage="936"%>
<%
set conn=server.createobject("adodb.connection")
conn.open "dsn=mysql"
set rec=server.createobject("adodb.recordset")
%>
<% if request("selectresult")<>"" then
userip= request.servervariables("remote_addr")
selectresult=request.querystring("selectresult")
rec.open "select count(*) as count from votetable where votedate>'"&now()-0.125 & "' and userip='"&userip&"'",conn
if rec("count")>0 then
bzh="重复投票无效"
rec.close
'response.write("请不要重复投票")
else
rec.close
bzh="投票有效"
conn.execute "insert into votetable(userip,result) values('"&userip&"',"& selectresult&")"
end if
else
bzh="查看投票"
end if
rec.open "select result,count(*) as count from votetable group by result order by result asc",conn
t0=cint(rec("count"))
rec.movenext
t1=cint(rec("count"))
rec.movenext
t2=cint(rec("count"))
tcount=t0+t1+t2
response.contenttype="text/xml"
%>
<% response.write "<?xml version='1.0' encoding='gb2312'?>"
response.write("<root bz='"&bzh&"'>")
response.write "<base><data value='相信' color='0xff00cc'/><data value='不相信' color='0x0000cc'/><data value='现在还不清楚' color='0x00cc00'/></base>"
response.write("<record value='共"&tcount&"票' color='0x0000cc'>")
response.write("<data value='"&t0/tcount&"'/>")
response.write("<data value='"&t1/tcount&"'/>")
response.write("<data value='"&t2/tcount&"'/></record>")
%>
<%
response.write "</root>"
rec.close
set rec=nothing
conn.close
set conn=nothing
%>将文件保存为votexml.asp,放置到web路径为"/"的目录中,即可. 备注:实际应用到web服务器的时候,请在flash中使用相对路径.flash movie和votexml.asp可以放置到任何目录中.
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器