一个简单的PHP投票程序源码

2021-01-23 10:04:50721

分析:

我们利用一个文件(data.dat)来存储投票栏目.每个栏目占据一行.

这样一来,便可随意加入和减去想要投票的栏目.

我们再利用一个文件(votes.dat)来存储我们的投票结果.

并纪录最近一位投票者的IP地址,简单的防止一人多投.

所以,您应该在该程序目录下自行建立两个文件data.dat和votes.dat

程序运行过程部分

程序运行时应该先有一个投票的HTML表单,等待投票.

当有人在HTML表单上投票时,判断它的IP是否为最近一位投票者的IP,

如果此人刚刚投过票,则两个值应该相等,显示"您已投过票了,谢谢您的参与!"

如果此人没投过票,则两个值不等,将它的投票写入文件(votes.dat)

(这里得到投票者的IP方法是:Web客户机在对服务器发送请求时需要提供一个表识,

这个表识就存储在环境变量REMOTE_ADDR里,我们引用它就可以了.)

最后是显示投票结果,通常我们是以"条形图表+百分数"来显示投票情况.

所以,我们要选择一个颜色单一的矩形图形,以适应横向缩放的要求.

--------------------------------------------------------------------------------

程序代码部分可下载程序代码

//投票栏目存储文件,您可更改文件名

$data="data.dat";

//投票结果储存文件

$votes="votes.dat";

//用以显示投票结果比例的图形文件名图形文件名,

//用单一颜色的矩形较好,方便投票结果横向缩放,

//自行上传到本程序目录下

$path_img="vote.gif";

//投票标题

$poll_name="您喜欢我的哪个栏目?";

//以下部分不需改动//

//打开投票栏目文件,并以数组的形式将全部内容存在变量$dataf中备用

$dataf=file($data);

if($go!=1)

{

//显示投票程序表单

echo"$poll_name
n";

echo"";

for($i=0;$i<=count($dataf)-1;$i++)

{

echo"$dataf[$i]
n";}

echo"";

echo"

";

echo"";

echo"查看结果";

}

else

{

//$go==1表示有人投票,//现在将投票情况以另外一种方式从文件中读出$file_votes=fopen($votes,"r");

$line_votes=fgets($file_votes,255);

fclose($file_votes);

//并将数据按指定的字串切开,再将字串传回到阵列变量中

$single_vote=explode("|",$line_votes);

//准备写入投票结果

if($result!=1)

{

//检查IP地址是否重复

$file_votes=file($votes,"r");

if($REMOTE_ADDR==$file_votes[1])

{

echo"

您已投过票了,谢谢您的参与!   ";

exit;

}

//如果IP不重复,则执行以下程序

$ficdest=fopen($votes,"w");

for($i=0;$i<=count($dataf)-1;$i++)

{

//判断投了那一个栏目

if($i==$vote)

{

$single_vote[$i]+=1;

}

//将数据写回文件

fputs($ficdest,"$single_vote[$i]|");

}

//写入投票者IP

fputs($ficdest,"n$REMOTE_ADDR");

fclose($ficdest);

$result=1;//投票成功

}

//写入投票结果后并显示投票结果

if($result==1)

{echo"";

for($i=0;$i<=count($dataf)-1;$i++)

{

//取得投票总数

$tot_votes+=$single_vote[$i];

}

for($i=0;$i<=count($dataf)-1;$i++)

{

//计算百分比

$stat[$i]=$single_vote[$i]/$tot_votes*100;

echo"

";

echo"$dataf[$i]

";

echo"";

//输出百分数printf("%.1f","$stat[$i]");

echo"%";//输出本栏目投票数

echo"$single_vote[$i]";echo"

";

}

echo"

";

echo"总投票数:$tot_votes";

}

}

?>

点击这里复制本文地址 以上内容由聚米学院网友整理呈现,如对侵犯您的权益,请联系邮箱:fzsbm@qq.com

支持Ctrl+Enter提交

城乡投票源码php_一个简单的PHP投票程序源码相关推荐

  1. JAVA毕业设计vue开发一个简单音乐播放器计算机源码+lw文档+系统+调试部署+数据库

    JAVA毕业设计vue开发一个简单音乐播放器计算机源码+lw文档+系统+调试部署+数据库 JAVA毕业设计vue开发一个简单音乐播放器计算机源码+lw文档+系统+调试部署+数据库 本源码技术栈: 项目 ...

  2. 小程序源码:宝宝起名神器微信小程序源码下载-多玩法安装简单

    这款小程序支持输入姓氏自动起名,不满意还可以点击换一换来找到满意的 支持起两个字或者三个字的名字 另外小编也给该款小程序添加了几个流量给大家 下面就来看看小编的测试演示图吧! 小程序源码下载地址:小程 ...

  3. 最新版南风表情包小程序独立版源码 独家最火表情包小程序源码+完整后台API+小程序前端

    南风表情包小程序独立版源码 独家最火表情包小程序源码+完整后台API+小程序前端 南风表情包小程序源码,独家分享网传最火表情包小程序源码,带有独立版完整后台 API.小程序前端,并附带安装搭建说明.最 ...

  4. 【源码】紫色UI趣味测试小程序源码各种测试(趣味测试、爱情测试、缘分测试、性格测试)

    该源码里面包含了多种评测,每一种评测都包含大多小细节 小编也给它加了几个流量主位置以便大家可以更好的运营. 这款小程序测试非常舒服 没发现任何问题,可以直接发布. 也满觉得有趣也算是精品!   小程序 ...

  5. 基于微信小程序云开发的职业学校招生报名小程序源码,职业学校招生报名微信小程序源码 ,职业学校招生报名小程序源码

    功能介绍 这是一个以报名为核心的职业学校招生小程序,目的是方便想要系统学习技能,入门某项技能或者领域的初高中毕业生,了解该学校的基本情况及各个专业,并提供报名路径,致力于技能型人才培养. 本程序前后端 ...

  6. Uniapp壁纸小程序源码/双端微信抖音小程序源码

    正文: Uniapp壁纸小程序源码,双端微信抖音小程序源码. WordPress后台的小程序.为一些做壁纸类自媒体的朋友解决变现难的问题 抖音壁纸常见的图片取号码,微信的壁纸公众号小程序均可使用该小程 ...

  7. 微信小程序实战视频教程附源码课件与多个微信小程序源码 14课

    课程介绍: 两天微信小程序实战,结合豆瓣API开发豆瓣小程序,附带微信官方小程序开发工具win版与mac版.还有几个小程序源码可供剖析. 课程目录: 第一天 01-内容介绍 02-微信小程序开发工具的 ...

  8. 如何实现一个简单的课程网(源码+论文)

    1.功能设计 可以分为三个角色管理员.教师.学生,各自的功能如下 2.功能分析 用户注册模块:普通游客只能浏览首页或进入课程中心观看视,但可通过此功能注册成为本站的学生用户,获得更多使用权限. 用户登 ...

  9. 加油站会员管理系统源码php_分享一下:关于一对一直播源码的重要组成部分

    随着传统直播的普及,"直播"是开发热潮的来临,一对一直播俨然成为了直播行业又一次火爆的应用领域.和传统的直播搭建形式相同,一对一直播源码开发也要通过一套功能全面的一对一直播源码来完 ...

最新文章

  1. 九度 题目1548:平面上的点
  2. poj 3040 Allowance
  3. MFC全局函数开局——AfxGetApp解剖
  4. 病毒c语言代码大全,谁有C语言编写的病毒源代码?
  5. 超算和服务器性能,烽火GPU高性能服务器助力武大超算中心建设
  6. WebStorm笔记-配置js的webpack识别alias(别名)
  7. Python面试题之如何用Python来发送邮件?
  8. 20-10-020-安装-KyLin-2.1.3单机版安装(MAC)
  9. [Liferay6.2]Liferay Dynamic Query API示例
  10. 测试tf卡读写速度软件,U盘测速图文教程,优盘读写速度测试,移动硬盘TF卡SD内存卡测速...
  11. 计算机桌面维护的相关知识,电脑维护知识
  12. Telegram、Telethon
  13. SpringBoot将图片/文件传至前端
  14. 【Splay 总结】
  15. 基于多源大数据的武汉市区域空间格局研究
  16. windows上datax的使用记录
  17. [DonkeyCar][树莓派]基础01 - 首次配置 - WIFI
  18. 基于众包采集定量数据的自适应结果推理
  19. 什么是“ parentalcontrolsd”,为什么它在我的Mac上运行?
  20. python爬虫文献综述_Python爬虫入门(1):综述

热门文章

  1. matlab常见的图像增强技术(包括基于幂次变换,对图像进行均衡化处理,巴特沃斯低通,理想低通,梯形低通滤波, 均值滤波,中值滤波,最大,最小值滤波,修正后的阿尔法滤波器)
  2. 概率算法c++语言,计算结果总和的概率的算法
  3. 基于遗传算法的供水泵站节能降耗优化
  4. php react路由部署,react路由
  5. 【译】求你不要再写没用的提交信息了
  6. SRC混子的漏洞挖掘之道
  7. 双11中的产业带:天猫集中爆发,“京多”紧急布局
  8. Linux 5.4内核 exFAT格式U盘所需配置项
  9. 【转】详解硬盘MBR
  10. MAC怎么获取文件路径 MAC获取文件路径的四种方法