0

0

PHP实例剖析:投票程序

php中文网

php中文网

发布时间:2016-06-21 09:02:22

|

1140人浏览过

|

来源于php中文网

原创


  这是一个简单的投票程序,不需要数据库的支持.本程序容易理解,容易上手,是个不错的入门程序.缺点:占用服务器太多时间,有待改进.

立即学习PHP免费学习笔记(深入)”;

台讯电子企业网站管理系统  简繁全功能版
台讯电子企业网站管理系统 简繁全功能版

超级适合代理建设企业站点的企业源码,超方面实用!程序说明: 1.特色:简繁中文切换、产品展示系统、新闻发布系统、会员管理系统、留言本计数器、网站信息统计、强大后台操作 功能等; 2.页面包括:首页、企业介绍、滚动公告通知发布系统、企业新闻系统、产品展示系统、企业案例发布展示系 统、企业招聘信息发布系统、信息资源下载系统、在线定单系统、在线客服系统、在线留言本系统、网站调查投票系统、友情连接系统、会

下载

可随意使用

立即学习PHP免费学习笔记(深入)”;

分析:
我们利用一个文件(data.dat)来存储投票栏目.每个栏目占据一行.
这样一来,便可随意加入和减去想要投票的栏目.

立即学习PHP免费学习笔记(深入)”;

我们再利用一个文件(votes.dat)来存储我们的投票结果.
并纪录最近一位投票者的IP地址,简单的防止一人多投.

立即学习PHP免费学习笔记(深入)”;

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

立即学习PHP免费学习笔记(深入)”;

程序运行过程部分

立即学习PHP免费学习笔记(深入)”;

程序运行时应该先有一个投票的HTML表单,等待投票.
当有人在HTML表单上投票时,判断它的IP是否为最近一位投票者的IP,
如果此人刚刚投过票,则两个值应该相等,显示"您已投过票了,谢谢您的参与!"
如果此人没投过票,则两个值不等,将它的投票写入文件(votes.dat)
(这里得到投票者的IP方法是:Web客户机在对服务器发送请求时需要提供一个表识,
这个表识就存储在环境变量REMOTE_ADDR里,我们引用它就可以了.)

立即学习PHP免费学习笔记(深入)”;

最后是显示投票结果,通常我们是以"条形图表+百分数"来显示投票情况.
所以,我们要选择一个颜色单一的矩形图形,以适应横向缩放的要求.

立即学习PHP免费学习笔记(深入)”;

程序代码部分

立即学习PHP免费学习笔记(深入)”;

    //投票栏目存储文件,您可更改文件名
$data="data.dat";

立即学习PHP免费学习笔记(深入)”;

//投票结果储存文件
$votes="votes.dat";

立即学习PHP免费学习笔记(深入)”;

//用以显示投票结果比例的图形文件名图形文件名,
//用单一颜色的矩形较好,方便投票结果横向缩放,
//自行上传到本程序目录下
$path_img="vote.gif";

立即学习PHP免费学习笔记(深入)”;

//投票标题
$poll_name="您喜欢我的哪个栏目?";

立即学习PHP免费学习笔记(深入)”;


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

立即学习PHP免费学习笔记(深入)”;


//打开投票栏目文件,并以数组的形式将全部内容存在变量$dataf中备用
$dataf=file($data);
if ($go !=1)

立即学习PHP免费学习笔记(深入)”;

{
//显示投票程序表单
echo "i
>$poll_namei>br>\n";
echo "

";
for ($i=0; $idataf)-1; $i++)

立即学习PHP免费学习笔记(深入)”;

{
echo "i
\"> $dataf[$i]br>\n"; }

立即学习PHP免费学习笔记(深入)”;

echo "";
echo "

";
echo "

";
echo "href='vote.php?result=1&go=1'>查看结果";

立即学习PHP免费学习笔记(深入)”;

}

立即学习PHP免费学习笔记(深入)”;

else

立即学习PHP免费学习笔记(深入)”;

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

立即学习PHP免费学习笔记(深入)”;

// 并将数据按指定的字串切开,再将字串传回到阵列变量中
$single_vote=explode("|", $line_votes);

立即学习PHP免费学习笔记(深入)”;

//准备写入投票结果
if ($result!=1)

立即学习PHP免费学习笔记(深入)”;

{
//检查IP地址是否重复
$file_votes=file($votes, "r");
if ($REMOTE_ADDR == $file_votes[1])

立即学习PHP免费学习笔记(深入)”;

{
echo "

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

立即学习PHP免费学习笔记(深入)”;

//如果IP不重复,则执行以下程序
$ficdest=fopen($votes, "w");
for ($i=0; $idataf
)-1; $i++)

立即学习PHP免费学习笔记(深入)”;

{
//判断投了那一个栏目
if ($i == $vote)

立即学习PHP免费学习笔记(深入)”;

{
$single_vote[$i]+=1;
}

立即学习PHP免费学习笔记(深入)”;

//将数据写回文件
fputs($ficdest, "$single_vote[$i]|");

立即学习PHP免费学习笔记(深入)”;

}

立即学习PHP免费学习笔记(深入)”;

//写入投票者IP
fputs($ficdest, "\n$REMOTE_ADDR");
fclose($ficdest);
$result=1; //投票成功

立即学习PHP免费学习笔记(深入)”;

}

立即学习PHP免费学习笔记(深入)”;


//写入投票结果后并显示投票结果
if ($result==1)

立即学习PHP免费学习笔记(深入)”;

{ echo "

cellpadding=10>";
for ($i=0; $idataf)-1; $i++)

立即学习PHP免费学习笔记(深入)”;

{
//取得投票总数
$tot_votes+=$single_vote[$i];
}

立即学习PHP免费学习笔记(深入)”;

for ($i=0; $idataf)-1; $i++)

立即学习PHP免费学习笔记(深入)”;

{
//计算百分比
$stat[$i]=$single_vote[$i]/$tot_votes*100;
echo "tr
>

tr>";
}

立即学习PHP免费学习笔记(深入)”;

echo "

li>";
echo "$dataf[$i]
";
echo "img src=\"$path_img\" height=10 width=$stat[$i] align=middle> ";
//输出百分数 printf("%.1f", "$stat[$i]");
echo "%
"; //输出本栏目投票数
echo "$single_vote[$i]
"; echo "

";
echo "总投票数:$tot_votes ";
}

立即学习PHP免费学习笔记(深入)”;

}

立即学习PHP免费学习笔记(深入)”;

?>

立即学习PHP免费学习笔记(深入)”;

 



PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

463

2026.02.13

微博网页版主页入口与登录指南_官方网页端快速访问方法
微博网页版主页入口与登录指南_官方网页端快速访问方法

本专题系统整理微博网页版官方入口及网页端登录方式,涵盖首页直达地址、账号登录流程与常见访问问题说明,帮助用户快速找到微博官网主页,实现便捷、安全的网页端登录与内容浏览体验。

135

2026.02.13

Flutter跨平台开发与状态管理实战
Flutter跨平台开发与状态管理实战

本专题围绕Flutter框架展开,系统讲解跨平台UI构建原理与状态管理方案。内容涵盖Widget生命周期、路由管理、Provider与Bloc状态管理模式、网络请求封装及性能优化技巧。通过实战项目演示,帮助开发者构建流畅、可维护的跨平台移动应用。

64

2026.02.13

TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

20

2026.02.13

Redis高可用架构与分布式缓存实战
Redis高可用架构与分布式缓存实战

本专题围绕 Redis 在高并发系统中的应用展开,系统讲解主从复制、哨兵机制、Cluster 集群模式及数据分片原理。内容涵盖缓存穿透与雪崩解决方案、分布式锁实现、热点数据优化及持久化策略。通过真实业务场景演示,帮助开发者构建高可用、可扩展的分布式缓存系统。

26

2026.02.13

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

29

2026.02.12

雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法
雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法

本专题系统整理雨课堂网页版官方入口及在线登录方式,涵盖账号登录流程、官方直连入口及平台访问方法说明,帮助师生用户快速进入雨课堂在线教学平台,实现便捷、高效的课程学习与教学管理体验。

14

2026.02.12

豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法
豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法

本专题汇总豆包AI官方网页版入口及在线使用方式,涵盖智能写作工具、图片生成体验入口和官网登录方法,帮助用户快速直达豆包AI平台,高效完成文本创作与AI生图任务,实现便捷智能创作体验。

524

2026.02.12

PostgreSQL性能优化与索引调优实战
PostgreSQL性能优化与索引调优实战

本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。

53

2026.02.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
AngularJS教程
AngularJS教程

共24课时 | 3.7万人学习

CSS3实现按钮特效视频教程
CSS3实现按钮特效视频教程

共15课时 | 3.3万人学习

细说PHP第三季
细说PHP第三季

共58课时 | 11.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号