停止PHP在刷新时重复查询

停止PHP在刷新时重复查询,php,html,mysql,Php,Html,Mysql,我正在制作一个web应用程序,我很难想出如何阻止PHP在每次重新加载页面时对我的数据库进行查询 基本上,当表单提交时,我希望PHP向数据库中添加变量进行查询,但是,因为它已将这些值保存在$\u POST中,所以每当我刷新这些值时,它都会进行查询 我希望它进行查询,然后可能取消设置$\u POST值或其他内容,使其不满足if条件,并在提交按钮未使用新值更新数据库时,阻止它使用重复值查询数据库 对不起,如果这很复杂的话,我正在尽力解释我的问题 这里是PHP <?php //Require

我正在制作一个web应用程序,我很难想出如何阻止PHP在每次重新加载页面时对我的数据库进行查询

基本上,当表单提交时,我希望PHP向数据库中添加变量进行查询,但是,因为它已将这些值保存在$\u POST中,所以每当我刷新这些值时,它都会进行查询

我希望它进行查询,然后可能取消设置$\u POST值或其他内容,使其不满足if条件,并在提交按钮未使用新值更新数据库时,阻止它使用重复值查询数据库

对不起,如果这很复杂的话,我正在尽力解释我的问题

这里是PHP

<?php  

//Require login gile -- Fatal error if not found
require_once('login.php');
require_once('app.html');

//Connect w/ MySQL database  [login variables]
$con = new mysqli($hn, $un, $pw, $db);

//If connection error -> kill application and display error
if ($con->connect_error) die('Connect Error (' . $con->connect_errno . ') '. $con->connect_error);

//If both goal and difficulty are set 
if (!empty($_POST['goal']) && !empty($_POST['difficulty'])) {
    $goal = get_post($con, 'goal');
    $difficulty = get_post($con, 'difficulty');
    $query = "INSERT INTO items VALUES" . "('$goal', 1, '$difficulty', NULL)";
    $result = $con->query($query);
    if(!$result) echo "INSERT failed: $query<br>" . $con->error . "<br><br>";
}

unset($_POST['goal']);
unset($_POST['difficulty']);


//close connection
$con->close();

function get_post($conn, $var) {
    return $conn->real_escape_string($_POST[$var]);
}

?>
试试看

<?php  

//Require login gile -- Fatal error if not found
require_once('login.php');
require_once('app.html');

//Connect w/ MySQL database  [login variables]
$con = new mysqli($hn, $un, $pw, $db);

//If connection error -> kill application and display error
if ($con->connect_error) die('Connect Error (' . $con->connect_errno . ') '. $con->connect_error);

//If both goal and difficulty are set 
if (!empty($_POST['goal']) && !empty($_POST['difficulty'])) {
    $goal = get_post($con, 'goal');
    $difficulty = get_post($con, 'difficulty');
    $query = "INSERT INTO items VALUES" . "('$goal', 1, '$difficulty', NULL)";
    $result = $con->query($query);
    if(!$result) echo "INSERT failed: $query<br>" . $con->error . "<br><br>";
    //You can write samepage name in location as window.location='abc.php'
    echo "<script>window.location=''</script>";
}

//close connection
$con->close();

function get_post($conn, $var) {
    return $conn->real_escape_string($_POST[$var]);
}

?>

为什么要使用WordPress函数
get_post()
?@davidstrachan idk关于WordPress函数,但在我的程序中,我在PHP代码的底部定义了get_post()函数。基本上只是一种净化用户输入的方法,一种小小的安全措施。它奏效了!如果你能解释一下为什么会这样,那就太棒了:)顺便说一句,我会接受你的答案,如果它允许的话(5分钟内)。非常感谢。在php中使用header函数为什么要使用javascriptsanooj。。简单易用。如果您想绝对确保它工作正常,您应该同时使用(http重定向和客户端js重定向)
<?php  

//Require login gile -- Fatal error if not found
require_once('login.php');
require_once('app.html');

//Connect w/ MySQL database  [login variables]
$con = new mysqli($hn, $un, $pw, $db);

//If connection error -> kill application and display error
if ($con->connect_error) die('Connect Error (' . $con->connect_errno . ') '. $con->connect_error);

//If both goal and difficulty are set 
if (!empty($_POST['goal']) && !empty($_POST['difficulty'])) {
    $goal = get_post($con, 'goal');
    $difficulty = get_post($con, 'difficulty');
    $query = "INSERT INTO items VALUES" . "('$goal', 1, '$difficulty', NULL)";
    $result = $con->query($query);
    if(!$result) echo "INSERT failed: $query<br>" . $con->error . "<br><br>";
    //You can write samepage name in location as window.location='abc.php'
    echo "<script>window.location=''</script>";
}

//close connection
$con->close();

function get_post($conn, $var) {
    return $conn->real_escape_string($_POST[$var]);
}

?>