当前位置:首页 > PHP

php实现网页投票

2026-02-15 06:00:53PHP

PHP实现网页投票功能

创建一个简单的网页投票系统需要处理用户投票、记录结果和防止重复投票。以下是实现方法:

数据库准备 创建MySQL数据库表存储投票选项和结果:

CREATE TABLE votes (
    id INT AUTO_INCREMENT PRIMARY KEY,
    option_name VARCHAR(255) NOT NULL,
    vote_count INT DEFAULT 0
);

HTML投票表单 创建投票界面表单:

<form method="post" action="vote.php">
    <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>

PHP投票处理(vote.php)

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

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

// 处理投票
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $selectedOption = (int)$_POST['vote'];

    // 防止SQL注入
    $stmt = $conn->prepare("UPDATE votes SET vote_count = vote_count + 1 WHERE id = ?");
    $stmt->bind_param("i", $selectedOption);
    $stmt->execute();

    // 设置cookie防止重复投票
    setcookie('voted', '1', time() + 86400); // 24小时有效
    echo "Thank you for voting!";
}

// 显示结果
$result = $conn->query("SELECT * FROM votes");
while ($row = $result->fetch_assoc()) {
    echo $row['option_name'] . ": " . $row['vote_count'] . " votes<br>";
}

$conn->close();
?>

防止重复投票 使用Cookie或Session防止同一用户多次投票:

session_start();
if (isset($_SESSION['voted'])) {
    die("You have already voted!");
}

// 投票成功后设置session
$_SESSION['voted'] = true;

安全增强措施 添加IP记录限制:

$ip = $_SERVER['REMOTE_ADDR'];
$check = $conn->query("SELECT * FROM vote_ips WHERE ip = '$ip'");
if ($check->num_rows > 0) {
    die("You have already voted from this IP!");
}

// 记录IP
$conn->query("INSERT INTO vote_ips (ip) VALUES ('$ip')");

结果显示优化 使用图表显示投票结果:

$total = $conn->query("SELECT SUM(vote_count) as total FROM votes")->fetch_assoc()['total'];
$result = $conn->query("SELECT * FROM votes");

while ($row = $result->fetch_assoc()) {
    $percent = ($row['vote_count'] / $total) * 100;
    echo '<div style="margin: 5px 0;">
        '.$row['option_name'].'
        <div style="background: #ddd; height: 20px; width: '.$percent.'%"></div>
        '.round($percent,1).'% ('.$row['vote_count'].' votes)
    </div>';
}

这个实现包含了基本投票功能、结果展示和防止作弊机制。可以根据需要扩展更复杂的功能如用户认证、多主题投票等。

php实现网页投票

标签: 网页php
分享给朋友:

相关文章

php实现递归

php实现递归

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

git php实现

git php实现

Git 与 PHP 的集成实现 使用 PHP 执行 Git 命令 通过 PHP 的 exec()、shell_exec() 或 passthru() 函数可以直接调用 Git 命令,适用于服务器端操作…

php实现增删改查

php实现增删改查

以下是在PHP中实现增删改查(CRUD)操作的详细方法,以MySQL数据库为例: 数据库连接配置 创建config.php文件存储数据库连接信息: <?php $host = 'loca…

php实现定时任务

php实现定时任务

PHP 实现定时任务的几种方法 在 PHP 中实现定时任务可以通过多种方式完成,具体选择取决于项目需求和服务器环境。以下是常见的实现方法: 使用 Cron 任务 Cron 是 Linux 系统中常…

php实现队列

php实现队列

PHP实现队列的方法 队列是一种先进先出(FIFO)的数据结构,PHP可以通过多种方式实现队列功能。 使用数组模拟队列 PHP数组可以模拟队列的基本操作,通过array_push和array_shi…

php 购物车实现

php 购物车实现

数据库设计 购物车功能通常需要设计数据库表存储商品和用户信息。常见的表包括products(商品表)、users(用户表)和cart(购物车表)。cart表通常包含字段:id(主键)、user_id(…