首页 > 代码库 > linux网络编程实现投票功能

linux网络编程实现投票功能

投票系统

1.说明:

写了一个投票系统,过程是先配置好服务器,在写一个网上投票功能,要实现网上投票功能。

其实功能实现还是很简单的,麻烦一点的在于过程比较繁杂,要做的东西还是挺多的!

2.过程:

第一步:配置httpd服务器

先配置好httpd服务器。我先下载好了和http服务器的包后,由于fedorahttpd配置相对比较简单,所以我也只是简单的做了一下修改,如下:

把:

<Directory"/var/www/cgi-bin">

AllowOverrideNone

OptionsNone

Requireall granted

</Directory>

修改为:

<Directory"/var/www/cgi-bin">

AllowOverrideNone

AddHandlercgi-script py sh cgi

OptionsExecCGI

Orderallow,deny

Allowfrom all

Requireall granted

</Directory>

然后在开启httpd服务器就好了。

第二步:建立数据库

由于投票要涉及到数据库的修改与更新,所以要事先建立好一个数据库,我建立了一个名为poll的数据库,并为poll数据库建立了一个名为poll_name的表,里面添加了namenum两个字段,并插入了

alop“ ,0与 “ daoyan“ 0两个值,用于投票,需要注意的是,建立数据库只是为了投票后要进行数据更新在返回页面,所以,如果想简单一点的话,我觉得用文件就足够了。不够这个例子是因为数据极为简单,但要是若有很多复杂的操作的话,还是建立数据库比较方便!

第三步:写cgi程序

这是最关键的一步了,这一步要完成的是当用户投票之后,通过通信技术返回给服务器之后,服务器该如何处理的问题,毫无疑问,这次我们要做的就是当客服端选择某个人,如”alop“,并点击,服务器收到这个消息后,要对数据库的里”alop”num+1即可,这里我是用python写的程序,如下:

#!/usr/bin/envpython

#coding=utf-8

importcgi, cgitb

importMySQLdb

db= MySQLdb.connect("localhost", "root", "","poll")

cursor= db.cursor()

sql_update= "UPDATE poll_name SET num = num + 1 WHERE name = ‘%s‘"

sql_query= "SELECT num FROM poll_name"

results= ()

form= cgi.FieldStorage()

name= form.getvalue(‘name‘)

sql_update= sql_update % name

cursor.execute(sql_update)

db.commit()

cursor.execute(sql_query)

results= cursor.fetchall()

print"Content-type:text/html\r\n\r\n"

print"<html>"

print"<head>"

print"<title>Radio - Fourth CGI Program</title>"

print"</head>"

print"<body>"

print‘<form action="/cgi-bin/election.py" method="post">‘

print‘<input type="radio" name="name" value=http://www.mamicode.com/"alop"/> alop %d 
‘ % results[0][0]>

整个程序还是很简单的。

这样,就完成了整个过程:

3.效果

效果如下:


当点击alop后,如下


这样,整个过程就完成了。