当前位置:首页 > 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投票表单 创建投票界面表单:

php实现网页投票

<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防止同一用户多次投票:

php实现网页投票

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 文件上传实现 HTML 表单设置 创建一个包含文件上传字段的 HTML 表单,确保表单的 enctype 属性设置为 multipart/form-data,这是文件上传必需的设置。 <…

php购物车实现

php购物车实现

PHP购物车实现方法 使用PHP实现购物车功能可以通过多种方式完成,以下是几种常见的实现方法: Session存储购物车数据 利用PHP的$_SESSION超全局变量存储购物车数据是最简单的方法。用…

php实现注册

php实现注册

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

php 登录实现

php 登录实现

PHP 登录实现 PHP 登录功能通常包括用户认证、会话管理和安全性措施。以下是实现 PHP 登录功能的关键步骤。 数据库准备 创建一个用户表存储用户信息,通常包括用户名、密码(加密存储)和其他必要…

php怎么实现登录功能

php怎么实现登录功能

数据库准备 创建用户表存储登录信息,通常包括用户名、密码(需加密)等字段。示例SQL: CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY…

php实现下载

php实现下载

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