[英]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.