PHP實(shí)戰(zhàn)之投票系統(tǒng)的實(shí)現(xiàn)
一、實(shí)現(xiàn)代碼
1.sql
-- phpMyAdmin SQL Dump -- version 4.5.1 -- http://www.phpmyadmin.net -- -- Host: 127.0.0.1 -- Generation Time: 2022-03-28 05:42:05 -- 服務(wù)器版本:10.1.13-MariaDB -- PHP Version: 5.6.21 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8mb4 */; -- -- Database: `a` -- -- -------------------------------------------------------- -- -- 表的結(jié)構(gòu) `voto` -- CREATE TABLE `voto` ( `id` int(10) NOT NULL, `titleid` int(10) DEFAULT NULL, `item` varchar(50) DEFAULT NULL, `count` int(10) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- 轉(zhuǎn)存表中的數(shù)據(jù) `voto` -- INSERT INTO `voto` (`id`, `titleid`, `item`, `count`) VALUES (24, 1, '張學(xué)友', 0), (25, 1, '陳奕迅', 0), (26, 1, '林俊杰', 0), (27, 1, '蕭敬騰', 0), (29, 1, '', 0), (30, 1, 'aaa', 0); -- -- Indexes for dumped tables -- -- -- Indexes for table `voto` -- ALTER TABLE `voto` ADD PRIMARY KEY (`id`); -- -- 在導(dǎo)出的表使用AUTO_INCREMENT -- -- -- 使用表AUTO_INCREMENT `voto` -- ALTER TABLE `voto` MODIFY `id` int(10) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=31; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
2.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <a href="admin.php" rel="external nofollow" >增刪改查投票的選項(xiàng)</a> <br> <a href="index.php" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >投票給誰呢</a> </body> </html>
3.admin.php(增刪改查投票的頁面)密碼:admi
<?php
ob_start(); //打開緩沖區(qū)
session_start();
header("Content-type:text/html;charset=utf-8");
$link = mysqli_connect('localhost','root','','a');
mysqli_set_charset($link, "utf8");
if (!$link) {
die("連接失敗:".mysqli_connect_error());
}
?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>PHP+mysql開發(fā)的簡單投票系統(tǒng)</title>
<style type="text/css">
/*全局樣式*/
body { font-family: "宋體"; font-size: 12pt; color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;background-color: #d4d4d4;}
table { font-family: "宋體"; font-size: 9pt; line-height: 20px; color: #333333}
/*全局樣式結(jié)束*/
</style>
<script language="javascript">
function selectAll()
{
node=window.document.frm.itm;
for(i=0;i<node.length;i++)
{
node[i].checked=true;//全選
}
}
function cancelAll()
{
node=frm.itm;
for(i=0;i<node.length;i++)
{
node[i].checked=false;//取消全部
}
}
function del()
{
node=frm.itm;
id="";
for(i=0;i<node.length;i++)
{
if(node[i].checked)
{
if(id=="")//刪除
{
id=node[i].value
}
else
{
id=id+","+node[i].value
}
}
}
if(id=="")
{
alert("您沒有選擇刪除項(xiàng)");
}
else
{
location.href="?type=del&id=" rel="external nofollow" +id
}
}
</script>
</head>
<body>
<?php
if(isset($_GET['tj']) == 'out'){
session_destroy();//刪除當(dāng)前用戶對(duì)應(yīng)的session文件以及釋放session
echo "<script language=javascript>alert('退出成功!');window.location='index.php'</script>";
}
?>
<?php
if(isset($_POST['Submit10'])){
if($_POST['pwd']=='admin'){
$_SESSION['pwd']=2;
echo "<script language=javascript>alert('登陸成功!');window.location='admin.php'</script>";
}else{
echo "<script language=javascript>alert('登陸失敗,請(qǐng)檢查您的密碼!');window.location='admin.php'</script>";
}
}
?>
<?php if($_SESSION['pwd']<>2){ ?>
<form action="" method="post">
<table width="365" border="0" align="center" cellpadding="5" cellspacing="1" bgcolor="#C2C2C2">
<tr>
<td height="30" align="right" bgcolor="#FFFFFF"><label>輸入密碼:</label></td>
<td align="left" bgcolor="#FFFFFF"><input name="pwd" type="text" id="pwd" /></td>
</tr>
<tr>
<td height="30" colspan="2" align="center" bgcolor="#FFFFFF"><label>
<input name="Submit10" type="submit" id="Submit10" value="登陸" />
</label>
<label>
<input type="reset" name="Submit5" value="重置" />
</label></td>
</tr>
<tr>
<td height="30" colspan="2" align="center" bgcolor="#FFFFFF">
軟件版本:<script type="text/javascript" src="http://www.04ie.com/net/phpvoto1_1.js"></script></td>
</tr>
</table>
</form>
<?php }else{ ?>
<?php
if(isset($_POST["Submit"]))
{
$title=$_POST["title"];
$sql="update vototitle set vototitle='$title'";
mysqli_query($link,$sql);
?>
<script language="javascript">
alert("修改成功");
</script>
<?php
}
if(isset($_POST["Submit2"]))
{
$newitem=$_POST["newitem"];
$sql="insert into voto (titleid,item,count) values (1,'$newitem',1)";
mysqli_query($link,$sql);
}
?>
<form id="frm" name="frm" method="post" action="" style="margin-bottom:3px;">
<table width="365" border="0" align="center" cellpadding="5" cellspacing="1" bgcolor="#C2C2C2">
<tr>
<td colspan="4" bgcolor="#FFFFFF"><label>
<?php
$sql="select * from vototitle";
$rs=mysqli_query($link,$sql);
$rows=mysqli_fetch_assoc($rs);
?>
<input name="title" type="text" id="title" size="35" value="<?php echo $rows["vototitle"]?>" />
</label></td>
<td width="68" align="center" bgcolor="#FFFFFF"><label>
<input type="submit" name="Submit" value="修改標(biāo)題" />
</label></td>
</tr>
<tr>
<th width="30" bgcolor="#FFFFFF">編號(hào)</th>
<th width="45" bgcolor="#FFFFFF">項(xiàng)目</th>
<th width="52" bgcolor="#FFFFFF">票數(shù)</th>
<th width="50" align="center" bgcolor="#FFFFFF">修改</th>
<th align="center" bgcolor="#FFFFFF">刪除</th>
</tr>
<?php
$sql="select * from voto order by count desc";
$rs=mysqli_query($link,$sql);
while($rows=mysqli_fetch_assoc($rs))
{
?>
<tr>
<td align="center" bgcolor="#FFFFFF"><input type="checkbox" name="itm" value="<?php echo $rows["id"]?>" /><?php echo $rows["id"]?></td>
<td align="center" bgcolor="#FFFFFF"><?php echo $rows["item"]?></td>
<td align="center" bgcolor="#FFFFFF"><?php echo $rows["count"]?></td>
<td align="center" bgcolor="#FFFFFF"><input type="button" value="修改" onclick="location.href='?type=modify&id=<?php echo $rows["id"]?>'" /></td>
<td align="center" bgcolor="#FFFFFF"><input type="button" value="刪除" onclick="location.href='?type=del&id=<?php echo $rows["id"]?>'" /></td>
</tr>
<?php
}
?>
<tr>
<td colspan="5" align="center" bgcolor="#FFFFFF">
<input type="button" value="選擇全部" onclick="selectAll()" />
<input type="button" value="取消全部" onclick="cancelAll()" />
<input type="button" value="刪除所選" onclick="del()" /> </td>
</tr>
<tr>
<td colspan="3" bgcolor="#FFFFFF"><label>
<input name="newitem" type="text" id="newitem" />
</label></td>
<td colspan="2" bgcolor="#FFFFFF"><label>
<input type="submit" name="Submit2" value="添加新項(xiàng)" />
</label>
<a href="?tj=out" rel="external nofollow" >退出管理</a></td>
</tr>
</table>
</form>
<?php
$type = isset($_GET["type"])?$_GET["type"]:"";
if($type =="modify"){
$id=$_GET["id"];
if(isset($_POST["Submit3"]))
{
$item=$_POST["itm"];
$count=$_POST["count"];
$sql="update voto set item='$item',count=$count where id=$id";
mysqli_query($link,$sql);
echo "<script language=javascript>alert('修改成功!');window.location='admin.php'</script>";
}
$sql="select * from voto where id=$id";
$rs=mysqli_query($link,$sql);
$rows=mysqli_fetch_assoc($rs);
?>
<form id="form1" name="form1" method="post" action="" style="margin-top:2px;">
<table width="365" border="0" align="center" cellpadding="5" cellspacing="1" bgcolor="#C2C2C2">
<tr>
<th colspan="2" bgcolor="#FFFFFF">修改投票項(xiàng)目</th>
</tr>
<tr>
<td align="center" bgcolor="#FFFFFF">名稱:</td>
<td bgcolor="#FFFFFF"><label>
<input name="itm" type="text" id="itm" value="<?php echo $rows["item"]?>" />
</label></td>
</tr>
<tr>
<td align="center" bgcolor="#FFFFFF">票數(shù):</td>
<td bgcolor="#FFFFFF"><label>
<input name="count" type="text" id="count" value="<?php echo $rows["count"]?>" />
</label></td>
</tr>
<tr>
<td colspan="2" align="center" bgcolor="#FFFFFF"><label>
<input type="submit" name="Submit3" value="修改" />
<input type="reset" name="Submit" value="重置" />
</label></td>
</tr>
</table>
</form>
<?php
}
?>
<?php
$type = isset($_GET["type"])?$_GET["type"]:"";
if($type =="del"){
$id=$_GET["id"];
$sql="delete from voto where id in ($id)";
mysqli_query($link,$sql);
echo "<script language=javascript>alert('刪除成功!');window.location='admin.php'</script>";
}
?>
<?php } ?>
</body>
</html>4.index.php投票的頁面
<?php
ob_start();
session_start();
header("Content-type:text/html;charset=utf-8");
$link = mysqli_connect('localhost','root','','a');
mysqli_set_charset($link, "utf8");
if (!$link) {
die("連接失敗:".mysqli_connect_error());
}
?>
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>投票系統(tǒng)</title>
<script type="text/javascript" src="http://cdn.bootcss.com/jquery/1.12.4/jquery.js"></script>
<style type="text/css">
/*全局樣式*/
body { font-family: "宋體"; font-size: 12pt; color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;background-color: #A6C7E1;}
table { font-family: "宋體"; font-size: 9pt; line-height: 20px; color: #333333}
a:link { font-size: 9pt; color: #333333; text-decoration: none}
a:visited { font-size: 9pt; color: #333333; text-decoration: none}
a:hover { font-size: 9pt; color: #E7005C; text-decoration: underline}
a:active { font-size: 9pt; color: #333333; text-decoration: none}
/*全局樣式結(jié)束*/
</style>
<script language="javascript">
function check()
{
node=frm.itm;
flag=false;
for(i=0;i<node.length;i++)
{
if(node[i].checked)
{
flag=true;
}
}
if(!flag)
{
alert("您沒有選擇")
return false;
}
return true;
}
</script>
<?php
if(isset($_POST["submit"])){
if($_POST){
$id = $_POST["selected_id"];
$sql = "update voto set count = count+1 where id=$id";
mysqli_query($link,$sql);
}
if($_SESSION["voto"]==session_id())
{
?>
<script language="javascript">
alert("您已經(jīng)投票了");
location.href="index.php" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ;
</script>
<?php
exit();
}
$id=$_POST["itm"];
$sql="update voto set count=count+1 where id=$id";
if(mysqli_query($link,$sql))
{
$_SESSION["voto"]=session_id();
?>
<script language="javascript">alert("投票成功,點(diǎn)確定查看結(jié)果");location.href="index.php?id=ck" rel="external nofollow" ;</script>
<?php
}
else
{
?>
<script language="javascript">alert("投票失敗");location.href="index.php" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ;</script>
<?php
}
}
?>
</head>
<body>
<form name="frm" action="" method="post" onsubmit=return(check()) style="margin-bottom:5px;">
<table width="365" border="0" align="center" cellpadding="5" cellspacing="1" bgcolor="#C2C2C2">
<tr>
<th bgcolor="#FFFFCC">
<?php
$sql="select * from vototitle";
$rs=mysqli_query($link,$sql);
$row=mysqli_fetch_assoc($rs);
echo $row["vototitle"];
?> </th>
</tr>
<?php
$sql="select * from voto";
$rs=mysqli_query($link,$sql);
while($rows=mysqli_fetch_assoc($rs))
{
?>
<tr>
<td bgcolor="#FFFFFF"><input type="radio" name="itm" value="<?php echo $rows["id"]?>" />
<?php echo $rows["item"]?></td>
</tr>
<?php
}
?>
<tr>
<td align="center" bgcolor="#FFFFFF">
<input type="submit" name="submit" value="投票"/>
<input type="hidden" id="selected_id" name="selected_id" value="">
<input type="button" value="查看結(jié)果" onClick="location.href='index.php?id=ck'"/>
<script type="text/javascript">
$("[type='radio']").click(function(){
$("#selected_id").val($(this).val());
});
</script></td>
</tr>
</table>
</form>
<?php
if(isset($_GET["id"])=="ck"){?>
<?php
$sql="select sum(count) as 'total' from voto";
$rs=mysqli_query($link,$sql);
$rows=mysqli_fetch_assoc($rs);
$sum=$rows["total"]; //得出總票數(shù)
$sql="select * from voto";
$rs=mysqli_query($link,$sql);
?>
<table id="click" width="365" border="0" align="center" cellpadding="5" cellspacing="1" bgcolor="#C2C2C2" >
<tr>
<th bgcolor="#FFFFFF">項(xiàng)目</th>
<th bgcolor="#FFFFFF">票數(shù)</th>
<th bgcolor="#FFFFFF">百分比</th>
</tr>
<?php
while($rows=mysqli_fetch_assoc($rs))
{
?>
<tr>
<td bgcolor="#FFFFFF"><?php echo $rows["item"]?></td>
<td bgcolor="#FFFFFF"><?php echo $rows["count"]?></td>
<td bgcolor="#FFFFFF">
<?php
$per=$rows["count"]/$sum;
$per=number_format($per,4);
?>
<img src="" height="4" width="<?php echo $per*100?>" />
<?php echo $per*100?>% </td>
</tr>
<?php
}
?>
</table>
<div align="center">
<a href="index.php" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >隱藏結(jié)果</a>
</div>
<?php } ?>
</body>
</html>二、效果圖


到此這篇關(guān)于PHP實(shí)戰(zhàn)之投票系統(tǒng)的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)PHP投票系統(tǒng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
學(xué)習(xí)discuz php 引入文件的方法DISCUZ_ROOT
這是discuz中定義論壇安裝根目錄的一個(gè)常量?,F(xiàn)在我們就來分析一下這個(gè)很簡單但是非常實(shí)用的常量。2009-06-06
淺談web上存漏洞及原理分析、防范方法(文件名檢測(cè)漏洞)
本篇文章是對(duì)web上存漏洞及原理分析、防范方法(文件名檢測(cè)漏洞)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
PHP利用func_get_args和func_num_args函數(shù)實(shí)現(xiàn)函數(shù)重載實(shí)例
這篇文章主要介紹了PHP利用func_get_args和func_num_args函數(shù)實(shí)現(xiàn)函數(shù)重載的方法,實(shí)例展示了PHP實(shí)現(xiàn)重載的具體方法,是非常實(shí)用的技巧,需要的朋友可以參考下2014-11-11
PHP項(xiàng)目在Docker(WSL2)中運(yùn)行緩慢的解決方法
最近在使用Docker容器運(yùn)行PHP項(xiàng)目的時(shí)候,發(fā)現(xiàn)特別緩慢,例如一個(gè)干凈的?ThinkPHP?5.1?框架,訪問首頁都需要1秒以上,如果再加上數(shù)據(jù)庫查詢、復(fù)雜的業(yè)務(wù)邏輯等代碼的話,那速度可想而知,所以本文就給大家介紹了解決方法,需要的朋友可以參考下2023-09-09

