Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.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 如何使$\u POST在页面刷新时不重新提交表单信息_Php_Html_Post - Fatal编程技术网

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>';