当前位置:首页 > 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实现投票

<?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防止重复投票:

php实现投票

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 生成验证码 验证码(CAPTCHA)用于防止自动化脚本提交表单,以下是几种常见的 PHP 实现方法。 使用 GD 库生成图片验证码 GD 库是 PHP 的图像处理扩展,可用于生成验证码…

php搜索功能实现的

php搜索功能实现的

PHP 搜索功能实现方法 数据库搜索实现 使用 SQL 的 LIKE 语句进行模糊匹配,适用于小型网站和简单搜索需求。 $searchTerm = $_GET['search']; $query =…

php 线程实现

php 线程实现

PHP 线程实现方法 PHP 本身是单线程语言,但可以通过扩展或库实现多线程功能。以下是几种常见的实现方式: 使用 pthreads 扩展 pthreads 是一个 PHP 扩展,允许在 PHP 中…

php 实现面包屑导航

php 实现面包屑导航

实现面包屑导航的方法 面包屑导航(Breadcrumb Navigation)是一种常见的网站导航方式,用于显示用户当前页面的路径。以下是几种在 PHP 中实现面包屑导航的方法。 基于 URL 路径…

php https实现

php https实现

PHP 中实现 HTTPS 的方法 在 PHP 中实现 HTTPS 主要通过配置服务器和编写代码来确保通信的安全性。以下是几种常见的方法: 配置服务器支持 HTTPS 确保服务器已安装 SSL/T…

php实现注册登陆

php实现注册登陆

PHP 注册功能实现 创建数据库表结构(MySQL示例): CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, usern…