gpt4 book ai didi

php - 刷新页面时在mysql中创建新行,为什么?

转载 作者:太空宇宙 更新时间:2023-11-03 12:07:17 24 4
gpt4 key购买 nike

我已经完成了一个 php 脚本,它将创建一个标题和一个文本并将其加载到我的数据库 (mysql)。当我按下提交时,脚本运行并向右创建 1 行,然后像 3-5 空行一样。

当我刷新页面(空表单)时,同样的事情发生了,我的数据库中显示了 2 个新的空行?

如何解决?

<?php
$con=mysqli_connect("xxx");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

// escape variables for security
$rubrik = mysqli_real_escape_string($con, $_POST['rubrik']);
$editor = mysqli_real_escape_string($con, $_POST['editor1']);
$date = date("Yyyy-mm-dd");

$sql="INSERT INTO News (title, full_content, author, date_added) VALUES ('$rubrik', '$editor', 'admin', '2014-09-18')";

if (!mysqli_query($con,$sql)) {
die('Error: ' . mysqli_error($con));
}

mysqli_close($con);
?>
<form method="post" onSubmit=window.location="index.php">
Rubrik: <br/><input type="text" name="rubrik"><br/>
Nyhetstext:<br/> <textarea class="ckeditor" cols="80" id="editor1" name="editor1" rows="10">
</textarea><br/>
<input type="submit" value="Publicera nyhet">
</form>

最佳答案

您的INSERT 查询在每次页面加载时执行,设置一个POST 变量来检查表单是否已提交以及您使用事件属性的原因window.location 用于提交表单,您可以简单地使用 action 属性并将该值设置为空白或您要发送数据的文件名。

<form action="" method="post">

<form action="index.php" method="post">

您的日期变量也是错误的。要将日期生成为 YYYY-MM-DD 格式,请像下面这样写

$date = date('Y-m-d');

你的脚本可能是这样的

if(isset($_POST['submit'])) {
your post variables and insert query goes here
}

你也可以像这样在你的form标签中插入一个隐藏的input字段

<form action="" method="post">
<input type="hidden" name="save" value="details">
other HTML code goes here
</form>

在这种情况下,您可以像这样测试 post 变量

if(isset($_POST['save']) && $_POST['save'] === "details") {
your post variables and insert query goes here
}

先从http://www.php.net/学习PHP的基本概念并在提问之前在这里搜索合适的问题。

关于php - 刷新页面时在mysql中创建新行,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25914886/

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