当前位置:首页 > PHP

php实现投票

2026-04-02 23:55:51PHP

PHP实现投票功能

数据库设计 创建votes表存储投票数据,包含字段:id(主键)、option_id(选项ID)、user_id(用户ID)、created_at(投票时间)。选项表options包含id和name字段。

前端表单 使用HTML表单提交投票选项,表单method设置为POST,action指向处理投票的PHP脚本。单选按钮或下拉菜单用于选择投票选项。

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

投票处理脚本 创建vote.php接收并处理投票数据。验证用户是否已投票,防止重复投票。使用PDO预处理语句防止SQL注入。

<?php
session_start();
$pdo = new PDO('mysql:host=localhost;dbname=your_db', 'username', 'password');

if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['vote'])) {
    $optionId = (int)$_POST['vote'];
    $userId = $_SESSION['user_id'] ?? null;

    if (!$userId) {
        die('请先登录');
    }

    $stmt = $pdo->prepare("SELECT COUNT(*) FROM votes WHERE user_id = ?");
    $stmt->execute([$userId]);

    if ($stmt->fetchColumn() > 0) {
        die('您已经投过票了');
    }

    $insert = $pdo->prepare("INSERT INTO votes (option_id, user_id) VALUES (?, ?)");
    $insert->execute([$optionId, $userId]);

    header('Location: results.php');
    exit;
}
?>

结果显示 创建results.php显示投票结果。计算各选项得票数和百分比,使用SQL聚合函数COUNT和GROUP BY。

php实现投票

<?php
$pdo = new PDO('mysql:host=localhost;dbname=your_db', 'username', 'password');
$query = $pdo->query("
    SELECT o.name, COUNT(v.id) as votes 
    FROM options o 
    LEFT JOIN votes v ON o.id = v.option_id 
    GROUP BY o.id
");
$results = $query->fetchAll(PDO::FETCH_ASSOC);
$totalVotes = array_sum(array_column($results, 'votes'));
?>

<ul>
<?php foreach ($results as $row): ?>
    <li>
        <?= htmlspecialchars($row['name']) ?>: 
        <?= $row['votes'] ?> votes 
        (<?= $totalVotes ? round($row['votes']/$totalVotes*100, 2) : 0 ?>%)
    </li>
<?php endforeach; ?>
</ul>

安全措施 验证用户身份防止刷票,使用CSRF令牌防止跨站请求伪造。对输出数据进行htmlspecialchars处理防止XSS攻击。限制每个IP或用户的投票频率。

标签: php
分享给朋友:

相关文章

php实现统计

php实现统计

PHP 实现统计功能 在 PHP 中实现统计功能通常涉及数据的收集、处理和展示。以下是一些常见的统计实现方法: 数据库数据统计 通过 SQL 查询可以直接从数据库中获取统计结果: $conn =…

php实现登陆

php实现登陆

PHP 实现登录功能 创建登录表单 在 HTML 文件中创建一个登录表单,包含用户名和密码输入框,表单的 action 属性指向处理登录的 PHP 文件。 <form action="logi…

php实现的进度条

php实现的进度条

PHP 实现的进度条方法 在 PHP 中实现进度条通常可以通过命令行脚本(CLI)或 Web 页面两种方式完成。以下是几种常见的实现方法: 命令行进度条 使用 PHP CLI 实现进度条,可以通过不…

php mvc 实现

php mvc 实现

PHP MVC 实现方法 MVC(Model-View-Controller)是一种设计模式,用于分离应用程序的逻辑、数据和界面。以下是实现PHP MVC框架的关键步骤。 目录结构 创建以下目录结构…

php 实现评论

php 实现评论

实现 PHP 评论功能 数据库设计 创建数据库表存储评论数据,通常包含以下字段: id:评论唯一标识 user_id:用户ID content:评论内容 created_at:评论时间 parent…

php 购物车实现session

php 购物车实现session

PHP 购物车实现(基于 Session) 在 PHP 中,使用 Session 实现购物车功能是一种常见方法。Session 可以跨页面存储用户数据,适合临时保存购物车信息。 初始化 Sessio…