城乡投票源码php_一个简单的PHP投票程序源码
一个简单的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投票程序源码相关推荐
- JAVA毕业设计vue开发一个简单音乐播放器计算机源码+lw文档+系统+调试部署+数据库
JAVA毕业设计vue开发一个简单音乐播放器计算机源码+lw文档+系统+调试部署+数据库 JAVA毕业设计vue开发一个简单音乐播放器计算机源码+lw文档+系统+调试部署+数据库 本源码技术栈: 项目 ...
- 小程序源码:宝宝起名神器微信小程序源码下载-多玩法安装简单
这款小程序支持输入姓氏自动起名,不满意还可以点击换一换来找到满意的 支持起两个字或者三个字的名字 另外小编也给该款小程序添加了几个流量给大家 下面就来看看小编的测试演示图吧! 小程序源码下载地址:小程 ...
- 最新版南风表情包小程序独立版源码 独家最火表情包小程序源码+完整后台API+小程序前端
南风表情包小程序独立版源码 独家最火表情包小程序源码+完整后台API+小程序前端 南风表情包小程序源码,独家分享网传最火表情包小程序源码,带有独立版完整后台 API.小程序前端,并附带安装搭建说明.最 ...
- 【源码】紫色UI趣味测试小程序源码各种测试(趣味测试、爱情测试、缘分测试、性格测试)
该源码里面包含了多种评测,每一种评测都包含大多小细节 小编也给它加了几个流量主位置以便大家可以更好的运营. 这款小程序测试非常舒服 没发现任何问题,可以直接发布. 也满觉得有趣也算是精品! 小程序 ...
- 基于微信小程序云开发的职业学校招生报名小程序源码,职业学校招生报名微信小程序源码 ,职业学校招生报名小程序源码
功能介绍 这是一个以报名为核心的职业学校招生小程序,目的是方便想要系统学习技能,入门某项技能或者领域的初高中毕业生,了解该学校的基本情况及各个专业,并提供报名路径,致力于技能型人才培养. 本程序前后端 ...
- Uniapp壁纸小程序源码/双端微信抖音小程序源码
正文: Uniapp壁纸小程序源码,双端微信抖音小程序源码. WordPress后台的小程序.为一些做壁纸类自媒体的朋友解决变现难的问题 抖音壁纸常见的图片取号码,微信的壁纸公众号小程序均可使用该小程 ...
- 微信小程序实战视频教程附源码课件与多个微信小程序源码 14课
课程介绍: 两天微信小程序实战,结合豆瓣API开发豆瓣小程序,附带微信官方小程序开发工具win版与mac版.还有几个小程序源码可供剖析. 课程目录: 第一天 01-内容介绍 02-微信小程序开发工具的 ...
- 如何实现一个简单的课程网(源码+论文)
1.功能设计 可以分为三个角色管理员.教师.学生,各自的功能如下 2.功能分析 用户注册模块:普通游客只能浏览首页或进入课程中心观看视,但可通过此功能注册成为本站的学生用户,获得更多使用权限. 用户登 ...
- 加油站会员管理系统源码php_分享一下:关于一对一直播源码的重要组成部分
随着传统直播的普及,"直播"是开发热潮的来临,一对一直播俨然成为了直播行业又一次火爆的应用领域.和传统的直播搭建形式相同,一对一直播源码开发也要通过一套功能全面的一对一直播源码来完 ...
最新文章
- 九度 题目1548:平面上的点
- poj 3040 Allowance
- MFC全局函数开局——AfxGetApp解剖
- 病毒c语言代码大全,谁有C语言编写的病毒源代码?
- 超算和服务器性能,烽火GPU高性能服务器助力武大超算中心建设
- WebStorm笔记-配置js的webpack识别alias(别名)
- Python面试题之如何用Python来发送邮件?
- 20-10-020-安装-KyLin-2.1.3单机版安装(MAC)
- [Liferay6.2]Liferay Dynamic Query API示例
- 测试tf卡读写速度软件,U盘测速图文教程,优盘读写速度测试,移动硬盘TF卡SD内存卡测速...
- 计算机桌面维护的相关知识,电脑维护知识
- Telegram、Telethon
- SpringBoot将图片/文件传至前端
- 【Splay 总结】
- 基于多源大数据的武汉市区域空间格局研究
- windows上datax的使用记录
- [DonkeyCar][树莓派]基础01 - 首次配置 - WIFI
- 基于众包采集定量数据的自适应结果推理
- 什么是“ parentalcontrolsd”,为什么它在我的Mac上运行?
- python爬虫文献综述_Python爬虫入门(1):综述
热门文章
- matlab常见的图像增强技术(包括基于幂次变换,对图像进行均衡化处理,巴特沃斯低通,理想低通,梯形低通滤波, 均值滤波,中值滤波,最大,最小值滤波,修正后的阿尔法滤波器)
- 概率算法c++语言,计算结果总和的概率的算法
- 基于遗传算法的供水泵站节能降耗优化
- php react路由部署,react路由
- 【译】求你不要再写没用的提交信息了
- SRC混子的漏洞挖掘之道
- 双11中的产业带:天猫集中爆发,“京多”紧急布局
- Linux 5.4内核 exFAT格式U盘所需配置项
- 【转】详解硬盘MBR
- MAC怎么获取文件路径 MAC获取文件路径的四种方法