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

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

php实现网页投票

$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
分享给朋友:

相关文章

css制作响应网页

css制作响应网页

响应式网页设计基础 使用CSS制作响应式网页的核心是让页面能够根据不同设备的屏幕尺寸自动调整布局和样式。主要通过媒体查询(Media Queries)、弹性布局(Flexbox)和网格布局(Grid)…

php实现文件上传

php实现文件上传

PHP 文件上传实现方法 在 PHP 中实现文件上传需要处理 HTML 表单和服务器端脚本。以下是详细步骤: 创建 HTML 表单 使用 enctype="multipart/form-data"…

php 实现自动收货

php 实现自动收货

PHP 实现自动收货功能 自动收货功能通常用于电商系统,在订单超过一定时间未手动确认收货时自动完成订单。以下是实现方法: 数据库设计 需要订单表包含以下关键字段: CREATE TABLE ord…

php如何实现直播

php如何实现直播

实现直播功能的方法 PHP可以通过结合其他技术和工具来实现直播功能。以下是几种常见的方法: 使用流媒体服务器 配置流媒体服务器如Nginx-RTMP、Red5或Wowza。这些服务器支持RTMP协…

php 实现登录

php 实现登录

PHP 登录功能实现 使用 PHP 实现登录功能通常需要结合数据库验证和会话管理。以下是一个基本的登录实现流程: 数据库准备 创建用户表存储用户名和密码(建议使用哈希加密): CREATE TAB…

php实现下载

php实现下载

PHP实现文件下载 使用PHP实现文件下载可以通过设置HTTP头部信息强制浏览器下载文件而非直接打开。以下是几种常见的方法: 方法一:直接输出文件内容 $file_path = 'path/to/…