解析PHP如何利用cookie做投票程序的(2)_PHP教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:PHP编程之PHP操作文件类
发一个刚写完的文件操作类 刚才又加了两个功能,又加了注释,高手一定帮我看看哪有问题啊,谢谢 file.class.php 以下为引用的内容:

以下为引用的内容:

<?php
//title变量设定本html档中的title标记,也就是在浏览器标题栏里出现的标题
title='读者类型调查表';

//设定调查内容。这里用了一个数组,注意用""号把内容括起来
option= array("学生","工人","农民","知识分子","资本家","流氓");

//设定调查结果保存到哪个文件中去
countfile = "sum.txt";

//设定同一机器可以再次投票的时间:3天
limitdate = time() 60*60*24*3;

/* 下面这部分就是cookie */

//检测是否已经有cookie设置
if (isset(_COOKIE['vote']) && _COOKIE['vote']=="Ready")
status = 1;
else
status = 0;

//为了避免人家还没有投票,程序就把cookie发出去
if (_POST['ready']=="true"){
setcookie("vote","Ready",limitdate);
}

?>

<html>
<head>
<title><?php echo title ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#FFFFFF">

<?php
//读出原来的选票结果,赋给变量result
if (file_exists (countfile)){
result = file(countfile);
}
elect = _POST['elect'];
suggest = _POST['suggest'];

/*下面是主程序 用switch做了三个分支,Case 1、查看结果;Case 2、提交选择;Case 3、生成表单*/
switch (elect) {
/* 查看结果,实际就是把上面用file()函数读出来的变量显示出来*/
case "查看结果":
echo "<table border='0'>";
for(i=0;i<count(result);i ){
echo "<tr>"."<td>".option[i]."</td>";
echo "<td>"."<img src='1.gif' width='";
echo "result[i]*10";
echo "' height='8'> </td>";
echo "<td>"." ".result[i]."</td></tr>";
}
echo "</table>";
break;

/*把选择结果写入到文件中去,注意要用flock把文件锁住!虽然对投票程序来说这个问题不是特别突出*/
case "投票提交":
if (status == 1){
echo "你已经投过票了!";
}elseif(suggest == 0){
echo "you havn't choice";
}else{
if(fp=fopen(countfile,"w")){
if(flock(fp,3)){
for (i=0; i< count (option); i ){
if (suggest == i 1){
result[i]=result[i] 1;
}else
result[i]=result[i] 0;
fwrite(fp,result[i]."\n");
}
echo "<script>alert('投票成功!谢谢!')</script>";
echo "<script>history.go(-1);</script>";
}else
echo "投票失败";
}else
echo "投票失败";
fclose(fp);
}
break;

/*显示投票的表单*/
default:
echo "<form action='vote.php' method='post' name='form1'>";
sum = count(option);
for (i=0; i<sum; i ){
echo "<input type='radio' name='suggest' value=";
echo i 1;
if (i==0) echo " CHECKED";
echo ">".option[i]."<br>";
}
echo "<input type='hidden' name='ready' value='true'>";
echo "<br>";
echo "<input type='submit' name='elect' value='投票提交'>";
echo "<input type='submit' name='elect' value='查看结果'>";
echo "</form>";
}

?>
</body>
</html>

这样一个简单的php的投票应用就完成了,说它简单是因为这个程序只完成了投票应用的几个最重要的功能,还有一些细节问题没有去处理。比如文件写失败之后的处理,用户关闭cookie功能的应付办法等等。

分享:PHP编程之PHP无限极分类
php无限极分类 CODE=PHP] 至于添加删除之类的功能我就不多写了!仔细看看就知道这么用了. 难的是显示方面 希望高手扩展一下! QUOTE: 这是类 ?php /*==================================

共2页上一页12下一页
来源:模板无忧//所属分类:PHP教程/更新时间:2009-09-19
相关PHP教程