防止用户刷新页面以在php/sql中添加空白值


Prevent user from refreshing page to add blank value in php/sql

config.php是一个全局文件,它包含连接代码。

我更新的Insert.php代码是:

<?php
include("config.php");
if (isset($_POST[firstname]) && isset($_POST[lastname]) && isset($_POST[age])) {
    $sql = "INSERT INTO Persons (FirstName, LastName, Age) VALUES ('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";
    mysql_query($sql, $connect); 
    header("Location: add.htm");
    // "1 record added";
}
else {
    echo "No record added";
    echo "<meta http-equiv='"refresh'" content='"5;url=add.htm'"/>";
}
if (!mysql_query($sql,$connect))
  {
  die('Error: ' . mysql_error());
  }
mysql_close($connect);
?>

我的View.php代码是:

<?php
include("config.php");
$sql = mysql_query("SELECT * FROM Persons");
while($results = mysql_fetch_array($sql)) {
    echo $results['FirstName'] . ', ' . $results['LastName'] . ', ' . $results['Age'] . '<br/>';
}
if (!mysql_query($sql,$connect))
{
  die('Error: ' . mysql_error());
}
mysql_close($connect);
?>

我的Config.php代码是:

<?php
$dbhost="MYWEBHOST";
$dbusername="MYUSERNAME";
$dbpassword="MYPASSWORD";
$dbname="MYDATABASE";
$connect = mysqli_connect($dbhost, $dbusername, $dbpassword);
mysql_select_db($dbname,$connect) or die ("Could not connect to database");
?>

Insert.php显示消息"1 record added",并将用户重定向回html表单。这很好,但当用户刷新或直接进入Insert.php时,我不想添加重复/空白值。如何在现有的Insert.php代码中实现这一点?

不使用元重定向,而是执行头重定向

echo "1 record added";
        echo "<meta http-equiv='"refresh'" content='"10;url=add.htm'"/>";

执行以下

header("Location: add.htm");

如果你重定向他们,那么如果他们反击,它就不会发送帖子数据,你应该没事。