如何通过在php中导航回引用页面来限制更新或插入多次?

10 浏览
0 Comments

如何通过在php中导航回引用页面来限制更新或插入多次?

我正在开发一个 web 应用程序,我想通过返回到引用页面来限制更新或插入多次。让我按照流程顺序向您介绍三个模型文件,以便我可以指出我卡住的地方。

  • register.html

    
    ...
    
    ...

  • process.php

    
    

  • success.php

    Done. Click to go next";
    unset($_POST['Submit']);
    }else{
    echo "Error in submission";
    }
    ?>
    

以上三个文件非常简单。当用户在成功页面 success.php 上着陆后点击返回按钮时,更新部分与 unset($_POST['Submit']); 无关。但是,当用户再次点击返回按钮返回到 register.html 时,又可以设置 $_POST['Submit'] 并进行更新部分,这可能是有漏洞的。我知道有 Post/Redirect/Get 来解决这个问题,但我希望有其他的替代方案,以便更新部分的门卫可以更高效地阻止用户通过点击返回按钮再次执行相同的操作。

0
0 Comments

问题的原因是在PHP中,用户可以通过返回到引用页面来重复更新或插入记录。解决方法是使用以下几种方法之一:

1. 使用INSERT IGNORE语句来尝试插入记录,如果记录已存在则忽略。

2. 在表中添加唯一索引(ADD UNIQUE INDEX)来防止重复插入。

3. 使用mysqli_num_rows()函数来检查是否已存在记录,如果不存在则进行更新操作。

需要注意的是,mysql_*函数已经被弃用,建议使用PDO或mysqli来替代。

0