簡體   English   中英

如何限制mysql中number的最大值?

[英]How can I limit the max value of number in mysql?

我一直在創建投票系統,並且注意到用戶注銷后仍然能夠再次投票。
我想做的是添加一個變量進行投票,現在按下按鈕,並將其最大值設置為1,以防止用戶再次投票。

是否有任何建議或方法可以實現這一目標,使用戶無法像這樣再次投票?

$errors = array(); 
$db = mysqli_connect("localhost", "root", "", "registration");
if (isset($_POST['votenow'])) {
    $user_check_query = "SELECT * FROM users WHERE votenow = '$votenow'";
    $votenow = "update users set votenow = votenow + 1";
    $run_vote = mysqli_query($db, $votenow);
    if ($votenow > 1 ) {
        echo "No more votes can be added.";
    } 
    if ($run_vote) { 
        header( "Location: renewsys3.php" ); 
    } 
}

我也一直在嘗試,但是用戶仍然可以再次投票。 投票有效,限制為1票,但用戶仍被重定向到下一頁,而不是返回。 renewsys2re是當前頁面,renewsys3是下一頁。

<?php
$errors = array(); 
$db = mysqli_connect("localhost","root","","registration");

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

    $votenow = "update users set votenow = votenow + 1 where votenow < 1 
    LIMIT 1";

    $run_vote = mysqli_query($db,$votenow);

    if ($votenow == 2 ){
    echo '<script type="text/javascript">alert("Once!");</script>';
    header ("Refresh:0; url=renewsys2re.php");
    }

    else{
    echo '<script type="text/javascript">alert("Welcome!");</script>';
    header ("Refresh:0; url=renewsys3.php");
}
}
?>

您必須在用戶登錄和注銷后維護$ _SESSION變量。您必須存儲和比較user_id並將查詢檢查票的查詢修改為$user_check_query = "SELECT * FROM users WHERE user_id=:user_id and votenow=:votenow";

使用bindparams可以增加sql注入的安全性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM