linux网络编程投票
2015-09-20 08:19
531 查看
投票系统
把:
<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>
然后在开启httpdserver就好了。
“ alop“ ,0
与 “ daoyan“ 0两个值。用于投票,须要注意的是。建立数据库仅仅是为了投票后要进行数据更新在返回页面。所以,假设想简单一点的话,我认为用文件就足够了。不够这个样例是由于数据极为简单,但要是若有非常多复杂的操作的话。还是建立数据库比較方便!
整个程序还是非常easy的。
这样,就完毕了整个过程:
当点击alop后。例如以下
这样,整个过程就完毕了。
1.说明:
写了一个投票系统。过程是先配置好server,在写一个网上投票功能。要实现网上投票功能。
事实上功能实现还是非常easy的,麻烦一点的在于过程比較繁杂,要做的东西还是挺多的。
2.过程:
第一步:配置httpdserver
先配置好httpdserver。我先下载好了和httpserver的包后,因为fedora的httpd配置相对照较简单。所以我也仅仅是简单的做了一下改动。例如以下:把:
<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>
然后在开启httpdserver就好了。
第二步:建立数据库
因为投票要涉及到数据库的改动与更新。所以要事先建立好一个数据库,我建立了一个名为poll的数据库,并为poll数据库建立了一个名为poll_name的表,里面加入了name与num两个字段,并插入了“ alop“ ,0
与 “ daoyan“ 0两个值。用于投票,须要注意的是。建立数据库仅仅是为了投票后要进行数据更新在返回页面。所以,假设想简单一点的话,我认为用文件就足够了。不够这个样例是由于数据极为简单,但要是若有非常多复杂的操作的话。还是建立数据库比較方便!
第三步:写cgi程序
这是最关键的一步了,这一步要完毕的是当用户投票之后,通过通信技术返回给server之后,server该怎样处理的问题,毫无疑问,这次我们要做的就是当客服端选择某个人,如”alop“。并点击,server收到这个消息后。要对数据库的里”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="alop"/> alop %d </br>' % results[0][0] print'<input type="radio" name="name"value="daoyan" /> daoyan %d </br>' %results[1][0] print'<input type="submit" value="submit" />' print"</form>" print"</body>" print"</html>"
整个程序还是非常easy的。
这样,就完毕了整个过程:
3.效果
效果例如以下:当点击alop后。例如以下
这样,整个过程就完毕了。
相关文章推荐
- Socket原理
- [PHP学习教程 - 网络]003.获得当前访问的页面URL(Current Request URL)
- [PHP学习教程 - 网络]002.$_SERVER["SCRIPT_NAME"]、$_SERVER["PHP_SELF"]、$_SERVER["QUERY_STRING"]、$_SERVER["REQUEST_URI"]介绍($_SERVER URL Infomation)
- 高效通信模型之 - 网络通信I/O模式( Windows)
- PHP实现http与https转化
- 网络编程入门(1
- HTTP转HTTPS实现
- 2015沈阳网络赛 1002(HDU 5451 矩阵快速幂 + 矩阵循环群)
- 利用ASIHttpRequest框架进行网络数据请求(二)—— 利用post发送表单请求数据
- HttpClient请求返回JSON、图片
- Largest Point(2015年吉林网络赛)
- C# HttpUtility.UrlEncode 与 JAVA URLEncoder.encode 区别
- 2015沈阳网络赛总结
- http的header参数有关
- 网络协议之HTTP协议
- Jesus Is Here(2015年吉林网络赛)
- wamp Could not execute menu item和 HTTP Error 404. The requested resource is not found.
- httpd虚拟主机,压缩机制,https实现,压力测试
- Minimum Cut(2015年吉林网络赛)
- java线程join的意思(转自http://zjj1211.blog_51cto_com)