投票系统

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.效果

效果例如以下:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWxvcF9kYW95YW4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

当点击alop后。例如以下

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

版权声明:本文博主原创文章。博客,未经同意不得转载。

linux网络编程投票的更多相关文章

  1. 【深入浅出Linux网络编程】 "开篇 -- 知其然,知其所以然"

    [深入浅出Linux网络编程]是一个连载博客,内容源于本人的工作经验,旨在给读者提供靠谱高效的学习途径,不必在零散的互联网资源中浪费精力,快速的掌握Linux网络编程. 连载包含4篇,会陆续编写发出, ...

  2. 【linux草鞋应用编程系列】_5_ Linux网络编程

    一.网络通信简介   第一部分内容,暂时没法描述,内容实在太多,待后续专门的系列文章.   二.linux网络通信     在linux中继承了Unix下“一切皆文件”的思想, 在linux中要实现网 ...

  3. Linux 网络编程(IO模型)

    针对linux 操作系统的5类IO模型,阻塞式.非阻塞式.多路复用.信号驱动和异步IO进行整理,参考<linux网络编程>及相关网络资料. 阻塞模式 在socket编程(如下图)中调用如下 ...

  4. linux网络编程 no route to host 解决方案

    linux网络编程 no route to host 解决方案 [整合资料] (2013-05-13 21:38:12) 转载▼ 标签: net iptables it 分类: Linux 参考资料h ...

  5. linux网络编程-(socket套接字编程UDP传输)

    今天我们来介绍一下在linux网络环境下使用socket套接字实现两个进程下文件的上传,下载,和退出操作! 在socket套接字编程中,我们当然可以基于TCP的传输协议来进行传输,但是在文件的传输中, ...

  6. Linux网络编程&内核学习

    c语言: 基础篇 1.<写给大家看的C语言书(第2版)> 原书名: Absolute Beginner's Guide to C (2nd Edition) 原出版社: Sams 作者: ...

  7. linux网络编程_1

    本文属于转载,稍有改动,以利于学习. (一)Linux网络编程--网络知识介绍 Linux网络编程--网络知识介绍客户端和服务端         网络程序和普通的程序有一个最大的区别是网络程序是由两个 ...

  8. Linux网络编程入门 (转载)

    (一)Linux网络编程--网络知识介绍 Linux网络编程--网络知识介绍客户端和服务端         网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端. 客户 ...

  9. Linux网络编程必看书籍推荐

    首先要说讲述计算机网络和TCP/IP的书很多. 先要学习网络知识才谈得上编程 讲述计算机网络的最经典的当属Andrew S.Tanenbaum的<计算机网络>第五版,这本书难易适中. &l ...

随机推荐

  1. 足球和oracle系列(3):oracle过程排名,世界杯第二回合战罢到来!

    足球与oracle系列(3):oracle进程排名.世界杯次回合即将战罢! 声明:        这不是技术文档,既然学来几招oracle简单招式.就忍不了在人前卖弄几下.纯为茶余饭后与数朋库友的插科 ...

  2. iOS相机去黑框

    自己定义相机的时候,调用系统的相机,因为相机的分辨率,会出现短小的矩形框,总会出现黑色边框,例如以下图: 假设想实现全屏相机的话,这样做就能够了: CALayer *viewLayer = self. ...

  3. android-sdk-windows下载版

    Android SDK 4.0.3 开发和执行环境配置 近期又装了一次最新版本号的ADK环境 眼下最新版是Android SDK 4.0.3 本文的插图和文本尽管是Android2.2的 步骤都是一样 ...

  4. Mono for Android开发调研笔记

    安装完Mono for Android(简称:MonoDroid)之后,可以用MonoDevelop或Visual Studio来开发Mono for Android应用程序:目前只能在模拟器上调试和 ...

  5. linux下改动内核參数进行Tcp性能调优 -- 高并发

    前言: Tcp/ip协议对网络编程的重要性,进行过网络开发的人员都知道,我们所编写的网络程序除了硬件,结构等限制,通过改动Tcp/ip内核參数也能得到非常大的性能提升, 以下就列举一些Tcp/ip内核 ...

  6. 实现能够直接粘QQ贴截图的bug管理功能

    对于一个功能强大的协作平台来说,todo管理和bug管理是不可缺少的功能.Todo和bug往往不是通过一些简单的文字就能实现的,有时候须要配以图片的说名,之前用过的项目管理平台都是以附件的形式上传图片 ...

  7. 如何插上U盘 自动复制内容

    U盘插入自动复制,有效对付那些不肯给PPT的老师,还有一定几率拿到期末考试卷子···有图有真相!业界良心的好东西!!现在看还来得及!!! 代码优化了一下,把不是很重要的都删掉了,这次使用时看不出任何现 ...

  8. 返璞归真 asp.net mvc (9) - asp.net mvc 3.0 新特性之 View(Razor)

    原文:返璞归真 asp.net mvc (9) - asp.net mvc 3.0 新特性之 View(Razor) [索引页][源码下载] 返璞归真 asp.net mvc (9) - asp.ne ...

  9. Cocos2d-x场景变化相关功能介绍

    现场由导演级交换机Director实现.之间的相关的功能,如下面: runWithScene(Scene* scene).该函数能够执行场景.仅仅能在启动第一个场景时候调用该函数.假设已经有一个场景执 ...

  10. Android新建项目后src下没有自动生成文件

    最近开始学Android了,按照教材新建了一个项目,发现src下没有自动生成文件,怎么回事呢? 出现这种可能的原因很可能是ADT与SDK版本不同,造成不兼容. 在ADT(或者eclipse)中的hel ...