Как я могу ограничить максимальное значение числа в MySQL? - PullRequest
0 голосов
/ 01 марта 2019

Я создавал систему голосования и заметил, что пользователи по-прежнему могут голосовать снова после выхода из системы.
Я пытаюсь добавить переменную для голосования, кнопка "сейчас" иустановите максимальное значение 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" ); 
    } 
}

Я тоже пробовал это, но пользователи все еще могут голосовать снова.Работало количество голосов, ограничивающее один голос, но пользователи по-прежнему перенаправляются на следующую страницу, а не возвращаются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");
}
}
?>

1 Ответ

0 голосов
/ 02 марта 2019

Вы должны поддерживать переменную $ _SESSION после входа и выхода пользователя из системы. Вам необходимо сохранить и сравнить user_id и изменить свой запрос проверки голосов до $user_check_query = "SELECT * FROM users WHERE user_id=:user_id and votenow=:votenow";

Использовать bindparams добавить безопасность от инъекции sql.

...