Php 如何使$\u POST在页面刷新时不重新提交表单信息
我有一个按钮作为提交按钮:Php 如何使$\u POST在页面刷新时不重新提交表单信息,php,html,post,Php,Html,Post,我有一个按钮作为提交按钮: <button id='bet_horse' name='bet_horse' type="submit" class='btn btn-default bet_btn' > Submit This Info </button> 提交此信息 以及处理该职位的方式: if ($_POST) { $countInserts = 0; if (isset($_POST['bet_horse'])) { if ($co
<button id='bet_horse' name='bet_horse' type="submit" class='btn btn-default bet_btn' >
Submit This Info
</button>
提交此信息
以及处理该职位的方式:
if ($_POST) {
$countInserts = 0;
if (isset($_POST['bet_horse'])) {
if ($countInserts < 1) {
$bs->insertbet_betslip(
'horse',
$current_user2->ID,
mysql_real_escape_string($_POST['nameMarket']),
mysql_real_escape_string($_POST['nameType']),
$_POST['p_name'], 0,
$_POST['odds'],
$_POST['bettilltime'],
$_POST['bettilldate'],
date("H:i:s", time()),
date("Y-m-d"),
is_user_logged_in() ? true : false
);
}
//header("Location: /"); //This cannot be done becaause headers are already sent.
}
if($\u POST){
$countInserts=0;
如果(isset($\u POST['bet\u horse'])){
如果($countInserts<1){
$bs->insertbet\u betslip(
“马”,
$current_user2->ID,
mysql\u real\u escape\u字符串($\u POST['nameMarket']),
mysql\u real\u escape\u字符串($\u POST['nameType']),
$\u POST['p_name',0,
$\u POST[“赔率”],
$\u POST['bettilltime'],
$\u POST['bettilldate'],
日期(“H:i:s”,time()),
日期(“Y-m-d”),
用户是否已登录()?true:false
);
}
//标头(“位置:/”;//无法执行此操作,因为已发送标头。
}
但在此之后,我需要能够阻止帖子发布,我发现的唯一方法是在代码中的注释中显示,但是我无法做到这一点,因为有很多后台WordPress过程,我认为另一种方法是使用
if($countInserts<1){}
,但还是没用,我想知道答案,但没有成功,有人能帮我吗?您的问题有点不清楚,但是如果您想停止重新提交页面或刷新页面,请尝试阅读本文:
感谢Fred ii-原始链接
总之,您需要将$\u会话中的令牌id值设置到表单中,然后检查$\u POST数据中给定的令牌id值是否与会话数据匹配。首次提交表单后,您可以删除$\u会话令牌id,并且仅在$\u会话id=$\u POST id时提交更改。
例如:
wp_redirect( home_url() ); exit;
或者,如果提交了标题,则可以使用JavaScript:
echo '<script>window.location = "/"</script>';
echo'window.location=“/”;
您可以使用exit()停止处理,这是否意味着必须重新发送表单才能保持页面的活动状态?这到底是什么意思,“停止发布帖子”?!@deceze,这意味着页面刷新时,它会要求您“确认表单重新提交”然后将帖子重新发送回服务器,我希望的是帖子不会返回服务器并停止在原来的位置。@swiftie821这是浏览器的一个功能,您不能更改它。这将允许您确定它是否已被重新发布,但不会阻止它被重新发布。如果您阅读了文章,它不会停止确切地说,它停止刷新目标页面,不再重新提交数据,因为一旦提交了数据,会话值就会被删除,因此发布的表单数据永远不能等于会话值(因为它是未设置的)是的,这正是我所说的。但是,这并不会阻止浏览器要求您刷新页面并重新提交数据。数据会重新提交到页面,但PHP代码中不会对数据进行操作(因为它已经提交了),所以数据被忽略了。我想这就是OP正在寻找的。我希望信息在第一次提交后消失,表单甚至不应该知道它曾经存在过,@Styphon在那里一针见血
echo '<script>window.location = "/"</script>';