当前位置:首页 > PHP

php实现投票

2026-01-16 10:52:22PHP

PHP实现投票功能

数据库设计

创建数据库表存储投票数据,例如:

CREATE TABLE `votes` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `option_name` varchar(255) NOT NULL,
  `votes_count` int(11) DEFAULT 0,
  PRIMARY KEY (`id`)
);

前端表单

创建HTML表单让用户选择投票选项:

<form action="vote.php" method="post">
  <input type="radio" name="vote" value="1"> Option 1<br>
  <input type="radio" name="vote" value="2"> Option 2<br>
  <input type="radio" name="vote" value="3"> Option 3<br>
  <input type="submit" value="Vote">
</form>

投票处理脚本

创建vote.php处理投票:

<?php
// 连接数据库
$conn = new mysqli('localhost', 'username', 'password', 'database');

// 检查连接
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// 获取用户投票
$vote = $_POST['vote'];

// 防止SQL注入
$vote = $conn->real_escape_string($vote);

// 更新投票计数
$sql = "UPDATE votes SET votes_count = votes_count + 1 WHERE id = $vote";

if ($conn->query($sql) === TRUE) {
    echo "Vote recorded successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?>

结果显示

创建页面显示投票结果:

<?php
$conn = new mysqli('localhost', 'username', 'password', 'database');

$sql = "SELECT * FROM votes";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo $row['option_name'] . ": " . $row['votes_count'] . " votes<br>";
    }
} else {
    echo "No votes yet";
}
$conn->close();
?>

防止重复投票

可以使用会话或cookie防止重复投票:

session_start();
if (isset($_SESSION['voted'])) {
    die("You have already voted");
} else {
    $_SESSION['voted'] = true;
    // 处理投票逻辑
}

安全注意事项

验证用户输入,防止SQL注入和XSS攻击:

$vote = filter_input(INPUT_POST, 'vote', FILTER_VALIDATE_INT);
if ($vote === false || $vote === null) {
    die("Invalid vote option");
}

扩展功能

添加时间限制,只允许特定时间段投票:

$start_time = strtotime('2023-01-01 00:00:00');
$end_time = strtotime('2023-01-31 23:59:59');
$current_time = time();

if ($current_time < $start_time || $current_time > $end_time) {
    die("Voting is closed");
}

php实现投票

标签: php
分享给朋友:

相关文章

php实现文件上传

php实现文件上传

文件上传的基本实现 在PHP中实现文件上传需要使用$_FILES超全局数组处理上传的文件数据。表单必须设置enctype="multipart/form-data"属性,并采用POST方法提交。…

php实现文件下载

php实现文件下载

PHP实现文件下载的方法 通过PHP实现文件下载功能,可以采用多种方式,以下是几种常见的实现方法: 使用header()函数强制下载 设置HTTP头信息,强制浏览器下载文件而非直接打开:…

php实现验证码

php实现验证码

PHP实现验证码的方法 使用GD库生成验证码 GD库是PHP中处理图像的扩展,可用于生成验证码图片。 <?php session_start(); $width = 120; $height…

php实现递归

php实现递归

递归的基本概念 递归是一种函数调用自身的技术,适用于解决可以分解为相同子问题的问题。在PHP中,递归需要明确的终止条件(基线条件),否则会导致无限循环。 递归实现阶乘 阶乘是经典的递归案例,n!…

php实现图片上传

php实现图片上传

实现图片上传的基本步骤 创建HTML表单用于文件上传,表单需设置enctype="multipart/form-data"属性,确保文件数据正确传输。 <form action="uploa…

php 实现自动收货

php 实现自动收货

PHP 实现自动收货功能 自动收货功能通常用于电商系统,在订单超过一定时间未手动确认收货时自动完成订单。以下是实现方法: 数据库设计 需要订单表包含以下关键字段: CREATE TABLE o…