当前位置: 首页 > 知识库问答 >
问题:

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

长孙硕
2023-03-14
        <html>
        ...
        <form id="form1" name="form1" method="post" action="process.php">
          <label for="textfield">Name</label>
          <input type="text" name="name" id="name" />
          <input type="submit" name="Submit" value="Submit" />
        </form>
        ...
        </html>
        <?php
        echo "Welcome ".$_GET['para'];
        ?>
        <?php
        if(isset($_POST['Submit']))
        {
        $name = $_POST['name'];

        // some database update here ...

        echo "<a href='success.php?para=$name'>Done. Click to go next</a>";
        unset($_POST['Submit']);
        }else{
        echo "Error in submission";
        }
        ?>

以上三个文件非常简单。这里,当用户登陆页面success.php后点击后退按钮时,由于未设置($_post['submit']);更新部分没有什么可做的。但是,当用户通过再次单击back按钮进一步返回时,它会到达register.html,并再次出现$_post['submit']集,并可能执行更新部分,这有时是易受攻击的。我知道有post/redirect/get来解决这个问题,但我想要一些其他的替代方案,以便通过点击后退按钮使更新部分的gatekeepering部分变得如此高效,从而不再允许相同的操作。

共有1个答案

姜良哲
2023-03-14

如果要插入重复记录。

>

  • 您可以尝试插入忽略
  • 向表添加唯一索引以防止发生这种情况

    您可以根据重复处理行为选择插入忽略替换中的任意一个

    $sql = "SELECT id FROM table-name WHERE column-name1 = ? AND column-name2 = ? ;
    $mq = mysqli_query($sql);
    
    if (mysqli_num_rows($mq) < 1) {
         $sql = "UPDATE table-name SET (colum-names) VALUES (...)";
         mysqli_query($sql);    
    else {
         echo "Record already updated";
         }     
    }
    

  •  类似资料:
    • 问题内容: 我想通过ajax向数据库提交数据,将数据插入数据库后,该数据应最后动态显示在 Demo.html 文件中,即在我的情况下位于div之后。 我已经通过ajax很好地存储了数据,但是我不知道如何将这些新插入的数据显示到 Demo.html 。所以请指导我如何实现此目的。 下面是我的代码。 AjaxFile.html controller.php Demo.html 问题答案: AjaxFi

    • 问题似乎是没有用新页面的内容更新元素。将问题行的替换为也不起作用。我做错了什么? 请注意,我必须能够对所有缩略图执行此操作(因此使用循环)。

    • 问题内容: 我已经使用facelets模板完成了一个基本的JSF应用程序。我的模板如下: 然后,我有一个 主页 (如下所示),它导航到 第二页 。两个页面都使用上面的模板。 如果我在faces-config.xml中使用它,它将进行导航,但是将重新加载 整个 页面。我的问题是: 有没有一种方法可以从页面导航到另一个仅更新模板部分的内容?(同时保留页面的其余部分不变) 谢谢! 问题答案: 您可以通过

    • 问题内容: 我在应用程序中使用MongoDB,需要在MongoDB集合中插入多个文档。我使用的版本是1.6 我在这里看到一个例子 http://docs.mongodb.org/manual/core/create/ 在里面 批量插入多个文档 部分 作者传递数组的位置。 当我尝试同样的操作时,但是为什么不允许这样做,请告诉我如何一次插入多个文档? 请让我知道这是什么方法,以便可以通过java一次插

    • 当我单击一个卡片组件并将数据传递到另一个页面时,当我返回并单击从导航传递的另一个参数时,导航不会更改。这是我导航的第一页:

    • 问题内容: 我有以下代码: 后者需要通过单击缩略图来导航以下HTML(当然是简化的),该缩略图指向一个新页面,然后需要单击该新页面中的链接: 但是我的代码吐出了以下错误: 问题似乎是该元素未使用新页面的内容进行更新。更换有问题的生产线的使用也不起作用。我究竟做错了什么? 请注意,我必须能够对所有缩略图执行此操作(因此需要循环)。 问题答案: 原来,您需要预先存储要导航的链接。这就是最终对我有用的东