当前位置:首页 > 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实现分页的基本方法 使用LIMIT和OFFSET进行数据库查询分页。通过计算当前页码和每页显示数量,动态生成SQL语句。 $page = isset($_GET['page']) ? (in…

php实现注册

php实现注册

注册功能实现步骤 数据库准备 创建用户表,包含字段如id、username、password、email等。示例SQL: CREATE TABLE users ( id INT AUTO_…

php实现即时通讯

php实现即时通讯

PHP 实现即时通讯的方案 即时通讯(IM)可以通过多种方式实现,PHP 作为服务器端语言,通常需要结合前端技术(如 WebSocket、AJAX)或第三方服务来实现实时通信。以下是几种常见的实现方式…

php 实现秒杀

php 实现秒杀

PHP 实现秒杀的关键技术 秒杀系统需要解决高并发、超卖、性能瓶颈等问题。以下是实现秒杀的核心方案: 使用 Redis 预减库存 将商品库存提前加载到 Redis 中,通过原子操作保证库存准确性:…

php搜索功能实现的

php搜索功能实现的

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

php实现短信验证

php实现短信验证

PHP实现短信验证的步骤 选择合适的短信服务提供商 国内常见的短信服务提供商包括阿里云短信、腾讯云短信、云片等。注册账号并获取API密钥和签名模板是第一步。这些平台通常提供详细的开发文档和SDK。…