当前位置:首页 > 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");
}

扩展功能

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

php实现投票

$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和MySQL实现基础的搜索功能需要结合表单提交与数据库查询。创建一个HTML表单用于接收用户输入的搜索关键词,通过PHP处理表单数据并查询数据库。 // 搜索表单 (HT…

php实现推送消息推送消息

php实现推送消息推送消息

PHP 实现消息推送的方法 使用 WebSocket 实现实时推送 WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,适合实现实时消息推送。 安装 Ratchet 库(WebSo…

php实现https

php实现https

PHP 实现 HTTPS 请求 在 PHP 中实现 HTTPS 请求,可以通过多种方式完成,包括使用内置函数、cURL 扩展或第三方库。以下是几种常见的方法: 使用 file_get_content…

php 实现链表

php 实现链表

PHP 实现链表的方法 链表是一种线性数据结构,由节点组成,每个节点包含数据和指向下一个节点的指针。PHP 中可以通过类和对象来实现链表。 定义链表节点类 创建一个 ListNode 类,用于表示链…

php session实现购物车

php session实现购物车

PHP Session 实现购物车 初始化 Session 确保在使用 Session 前调用 session_start() 函数。通常放在 PHP 文件的最顶部。 <?php sessio…

php实现验证码的识别

php实现验证码的识别

验证码识别的基本方法 验证码识别通常分为手动实现和第三方工具两种方式。手动实现需要图像处理和机器学习知识,而第三方工具则更快捷。 使用Tesseract OCR识别验证码 Tesseract是一个开…