gpt4 book ai didi

php - 为什么我的网站每次f5(refresh)都是向数据库插入数据

转载 作者:行者123 更新时间:2023-11-29 10:25:25 25 4
gpt4 key购买 nike

我有一个使用 mysql 将数据插入数据库的表单。当我单击提交(添加数据)时,数据已成功插入数据库。但是,当我按 f5(刷新)时,数据仍然插入到数据库中。我不知道我错在哪里。请帮我。这是我的代码:

<?php
$username = "user_tintuc"; // Khai báo username
$password = "123456"; // Khai báo password
$server = "localhost"; // Khai báo server
$dbname = "tintuc"; // Khai báo database

// Kết nối database tintuc
$connect = new mysqli($server, $username, $password, $dbname);

//Nếu kết nối bị lỗi thì xuất báo lỗi và thoát.
if ($connect->connect_error) {
die("Không kết nối :" . $conn->connect_error);
exit();
}

//Khai báo giá trị ban đầu, nếu không có thì khi chưa submit câu lệnh insert sẽ báo lỗi
$title = "";
$date = "";
$description = "";
$content = "";

//Lấy giá trị POST từ form vừa submit
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if(isset($_POST["title"])) { $title = $_POST['title']; }
if(isset($_POST["date"])) { $date = $_POST['date']; }
if(isset($_POST["description"])) { $description = $_POST['description']; }
if(isset($_POST["content"])) { $content = $_POST['content']; }

//Code xử lý, insert dữ liệu vào table
$sql = "INSERT INTO tin_xahoi (title, date, description, content)
VALUES ('$title', '$date', '$description', '$content')";

if ($connect->query($sql) === TRUE) {
echo "Thêm dữ liệu thành công";
} else {
echo "Error: " . $sql . "<br>" . $connect->error;
}
}
//Đóng database
$connect->close();
?>

<form action="" method="post">
<table>
<tr>
<th>Tiêu đề:</th>
<td><input type="text" name="title" value=""></td>
</tr>

<tr>
<th>Ngày tháng:</th>
<td><input type="date" name="date" value=""></td>
</tr>

<tr>
<th>Mô tả:</th>
<td><input type="text" name="description" value=""></td>
</tr>

<tr>
<th>Nội dung:</th>
<td><textarea cols="30" rows="7" name="content"></textarea></td>
</tr>
</table>
<button type="submit">Gửi</button>
</form>

我是这样编辑的。但还是这样。

if (isset($_POST['submit'])){
if(isset($_POST["date"])) { $date = $_POST['date'];}
if(isset($_POST["MAB"])) { $MAB = $_POST['MAB']; }
if(isset($_POST["MBA"])) { $MBA = $_POST['MBA']; }
if(isset($_POST["PAB"])) { $PAB = $_POST['PAB']; }
if(isset($_POST["PBA"])) { $PBA = $_POST['PBA']; }

$sql = "INSERT INTO `dbsht` (`date`, `MAB`, `MBA`, `PAB`, `PBA`) VALUES ('$date', '$MAB', '$MBA', '$PAB', '$PBA')";
if ($connect->query($sql) === TRUE) {
echo "Thêm dữ liệu thành công";
} else {
echo "Error: " . $sql . "<br>" . $connect->error;
}
}

最佳答案

这是正常问题。您应该使用 POST-Redirect-GET 模式来防止它。插入数据库成功后,您应该响应重定向到 GET 请求。

你可以试试

    if ($connect->query($sql) === TRUE) {
$_SESSION["ADD_SUCCESS"] = 1;

header('Location: '.$_SERVER['REQUEST_URI']);
} else {
echo "Error: " . $sql . "<br>" . $connect->error;
}

成功消息

    //Đóng database
$connect->close();

if(isset($_SESSION["ADD_SUCCESS"]))
{
echo "Chúc mừng bạn đã thêm dữ liệu thành công";

unset($_SESSION["ADD_SUCCESS"]);
}

关于php - 为什么我的网站每次f5(refresh)都是向数据库插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48396006/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com