我正在尝试修正我的脚本中的双重提交问题。当我按提交键时,它只会更新mysql一次(这正是我想要的)。然而,当我点击刷新键时,它会再次更新mysql。一旦点击刷新键,它似乎会忽略if语句。我该怎么做才能停止这个问题呢
这是我代码
if (isset($_POST['submitButton'])) {
//do something
}
<form action = "table.php" method="post">
<label for="submitButton"></label>
<input type="submit" name="submitButton" id="submitButton"
value="Submit Form"/>
</form>
5条答案
按热度按时间ohtdti5x1#
刷新页面时-POST再次发送
有些浏览器实际上会警告您这种情况。
为了防止这种情况发生,我会:
7fhtutme2#
我使用会话来防止转发。
taor4pac3#
这是标准行为:当你重新加载页面时,如果它被发布了,你的浏览器会重放同样的请求(使用POST)。
要避免这种情况,您可以使用重定向到同一页面,其中:
这将通过get请求重新加载页面。这将防止重复发布。
lmyy7pcs4#
当你刷新这页.浏览器发布所有的数据again. so-同样的事情再次发生克服这之后做某事重定向浏览器到相同的页again一次象这样
utugiqy65#
我通常不担心这一点,只要用户不重新张贴,除非他们想。但是,如果你想禁止它,你可以使用一个nonce。
http://en.wikipedia.org/wiki/Cryptographic_nonce