0

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 レコードが追加されました」というメッセージを表示し、ユーザーを HTML フォームにリダイレクトします。これは正常に機能していますが、ユーザーが更新するか Insert.php に直接アクセスするときに、重複/空白の値を追加したくありません。既存の Insert.php コードでこれを達成するにはどうすればよいですか?

4

1 に答える 1

2

メタ リダイレクトを使用する代わりに、ヘッダー リダイレクトを実行します。

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

以下をせよ

header("Location: add.htm");

それらをリダイレクトした場合、彼らが反撃した場合、投稿データは送信されないため、問題ありません。

于 2013-02-21T19:02:36.540 に答える