【问题标题】:Online Voting System在线投票系统
【发布时间】:2017-06-28 14:55:10
【问题描述】:
<?php
include("databaseconnect.php");

if(isset($_POST['submitvotes'])) {

    $vote = $_REQUEST['submitvotes']; 

    $sql = "UPDATE `candidates` SET votescasted = votescasted + 1 WHERE  `id` = '$vote'";
    $qry = mysqli_query($connect, $sql);
    if ($qry){
        header("location: onlinevotingsystem.php?ViewResults");
    }
}
mysqli_close($connect);
    ?>

我正在使用上面的代码制作在线投票系统,但问题是它只会将选票增加一。有什么办法可以让我多次停止投票(只投票一次)。

我正在寻找可靠的想法,以便能够保存选民的详细信息以及他们投票给谁。

【问题讨论】:

    标签: database system voting


    【解决方案1】:

    解决方案一点也不小。您需要能够唯一地识别您的用户,跟踪他们,并确保他们只投票一次。您的选项包括:

    1. 让他们注册投票,验证他们的电子邮件,并且每封电子邮件只允许投一票(但他们总是可以只注册更多的电子邮件)
    2. 跟踪 IP 地址详细信息,这也不是很好,因为很多人可以共享一个 IP 地址
    3. 两者兼而有之,结合了 1 和 2 的优点和缺点
    4. 接受人们可以多次投票的事实。

    另外,你对SQL injection很开放

    【讨论】:

    • 它是为学生准备的,所以我认为注册号和录取号将是唯一的。谢谢
    • 要求一些必须是唯一的个人信息可以使它更容易,但您还必须注意有人使用其他人的录取/注册号的可能性。如果我在他遗漏的邮件中找到他的录取号码,是什么阻止我在室友面前投票?这个问题对你来说可能很重要,也可能无关紧要,但有可能需要注意。
    • 你无法猜出登录密码。要投票,您必须使用注册号和密码登录学生门户。然后将注册号保存为会话
    • 这些是与原始问题非常相关的细节。如果您仍然需要帮助,我建议您编辑您的帖子并包含更多详细信息。现在您可能正在研究某种 SSO 系统。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-08
    • 1970-01-01
    • 2011-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多