PHP编写一个多功能投票的代码

涛哥 PHP代码

以下PHP编写一个多功能投票的代码实现的需求是实现一个多功能投票系统,包括显示投票选项、处理投票、显示投票结果等功能。具体实现方式为:定义投票选项数组和投票结果数组,处理用户提交的投票请求并更新投票结果,根据用户是否已经投票显示投票选项或投票结果,并提供查看投票结果的链接。

以下是一个简单的PHP编写的多功能投票的代码示例:

<?php
// 投票选项数组
$options = array(
    1 => '选项1',
    2 => '选项2',
    3 => '选项3',
);
// 投票结果数组
$results = array(
    1 => 0,
    2 => 0,
    3 => 0,
);
// 处理投票
if (isset($_POST['option'])) {
    $option = $_POST['option'];
    if (array_key_exists($option, $options)) {
        $results[$option]++;
        setcookie('voted', 1, time() + 60 * 60 * 24 * 30); // 保存投票状态,避免重复投票
        echo '投票成功!';
    } else {
        echo '非法选项!';
    }
}
// 显示投票结果
if (isset($_GET['show'])) {
    echo '<h3>投票结果</h3>';
    foreach ($options as $key => $value) {
        echo $value . ':' . $results[$key] . '<br>';
    }
} else {
    // 显示投票选项
    if (isset($_COOKIE['voted'])) {
        echo '您已经投过票了!<br>';
    } else {
        echo '<form action="" method="post">';
        foreach ($options as $key => $value) {
            echo '<input type="radio" name="option" value="' . $key . '"> ' . $value . '<br>';
        }
        echo '<input type="submit" value="提交">';
        echo '</form>';
    }
    // 显示投票结果链接
    echo '<a href="?show=1">查看投票结果</a>';
}

在上面的代码中,我们首先定义了一个投票选项数组$options和一个投票结果数组$results。然后在处理投票时,判断用户提交的选项是否在投票选项数组中,如果是,则将投票结果数组中对应选项的值加1,并保存投票状态,避免重复投票。如果不是,则输出非法选项的错误信息。

在显示投票选项时,我们判断当前用户是否已经投过票,如果是,则输出“您已经投过票了!”的提示信息。如果不是,则输出投票选项的HTML表单。在显示投票结果链接时,我们将show参数设为1,并将其作为链接的查询字符串,以便在点击链接时显示投票结果。

需要注意的是,由于本示例中的投票状态是通过cookie来保存的,因此用户可以通过清除浏览器cookie的方式重复投票。在实际应用中,可以考虑使用IP地址、用户ID等方法来保存投票状态。此外,在实际应用中还需要考虑防止恶意攻击、数据安全等问题。