Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何限制mysql中number的最大值?_Php_Mysql_Variables_Max_Vote - Fatal编程技术网

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

Php 如何限制mysql中number的最大值?,php,mysql,variables,max,vote,Php,Mysql,Variables,Max,Vote,我一直在创建一个投票系统,我注意到用户在注销后仍然可以再次投票。 我试图做的是添加一个变量来投票,现在按钮,并将其最大值设置为1,以防止用户再次投票 是否有任何建议或方法来实现这一点,这样用户就不能像以前一样再次投票 $errors = array(); $db = mysqli_connect("localhost", "root", "", "registration"); if (isset($_POST['votenow'])) { $user_check_query = "S

我一直在创建一个投票系统,我注意到用户在注销后仍然可以再次投票。
我试图做的是添加一个变量来投票,现在按钮,并将其最大值设置为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");
}
}
?>

在用户登录和注销后,您必须维护$\u会话变量。您必须存储和比较
用户id
,并将检查投票的查询修改为
$user\u check\u query=“从用户中选择*,其中user\u id=:user\u id和votenow=:votenow”


用于从sql注入中添加安全性。

在用户登录和注销后,您必须维护$\u会话变量。您必须存储和比较
用户id
,并将检查投票的查询修改为
$user\u check\u query=“从用户中选择*,其中user\u id=:user\u id和votenow=:votenow”


用于从sql注入中添加安全性。

警告:当使用
mysqli
时,您应该使用并向查询中添加任何数据。不要使用字符串插值或串联来完成此操作,因为您已经创建了严重的错误。切勿将
$\u POST
$\u GET
或任何类型的数据直接放入查询中,如果有人试图利用您的错误,这可能是非常有害的。注意:
mysqli
的面向对象界面明显不那么冗长,使代码更易于阅读和审核,并且不容易与过时的
mysql\u查询
接口混淆。在你对程序性风格投入太多之前,值得换一种。示例:
$db=newmysqli(…)
$db->prepare(“…”)
过程接口是PHP4时代的产物,当时引入了
mysqli
API,理想情况下不应在新代码中使用。为什么您的代码不能满足您的需要?例如警告:使用
mysqli
时,您应该使用并向查询中添加任何数据。不要使用字符串插值或串联来完成此操作,因为您已经创建了严重的错误。切勿将
$\u POST
$\u GET
或任何类型的数据直接放入查询中,如果有人试图利用您的错误,这可能是非常有害的。注意:
mysqli
的面向对象界面明显不那么冗长,使代码更易于阅读和审核,并且不容易与过时的
mysql\u查询
接口混淆。在你对程序性风格投入太多之前,值得换一种。示例:
$db=new mysqli(…)
$db->prepare(“…”)
过程接口是PHP4时代的产物,当时引入了
mysqli
API,理想情况下不应该在新代码中使用。为什么您的代码不能实现您想要的功能。