gpt4 book ai didi

PHP将数据提交到同一页面上的表

转载 作者:可可西里 更新时间:2023-11-01 07:58:37 24 4
gpt4 key购买 nike

试图找出如何将新帖子提交到已经使用 mysql 数据库中的数据条目创建的预先存在的表。我希望它首先测试请求是否来自 POST,如果是,则将新行插入数据库并在表中显示新数据。这是我到目前为止想出的,但在提交时,似乎什么也没发生,我的 table 消失了。非常感谢任何帮助。

这是我目前所拥有的:

      $result = mysqli_query($dbconnect, $query);
$num_rows = mysqli_num_rows($result);
}
if ($num_rows > 0) // build a table to show results
{
echo "<table border='1'>";
echo "<tr>";
echo "<th>Post ID </th>"; echo "<th>Author</th>";
echo "<th>Title</th>"; echo "<th>Post</th>";
echo "</tr>";

while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['pid'] . "</td>";
echo "<td>" . $row['author'] . "</td>";
echo "<td>" . $row['title'] . "</td>";
echo "<td>" . $row['post'] . "</td>";
echo "</tr>";
}
echo "</table>";
} else{
echo "No rows returned.";
}
?>

<form name ="myForm" action ="second.php<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>"
method = "POST"> <br><br><br>

<h3> Create a Post </h3>

Author <input type ="text" size ="40" name ="author"/><br>
Title <input type ="text" size ="30" name ="title"/><br><br>
Post <br><textarea rows ="15" cols ="10" name ="post"></textarea><br>
<input type ="submit" name = "submitpost" value ="Submit Post"/>
</form>
<?php


// $sql = "INSERT INTO blog_posts (pid, author, title, post)
VALUES (NULL, '$_POST[author]', '$_POST[title]', '$_POST[post]')";

//if($_SERVER['REQUEST_METHOD'] === 'POST'){
//if(isset($_POST['submitpost'])){

//post the $sql back into the exisiting table somehow
?>

最佳答案

  • 请注意 future 的读者。这个答案是基于 OP 的原始帖子。 See the revisions .

将您的 INSERT在条件语句中查询:

if($_SERVER['REQUEST_METHOD'] === 'POST'){

if(isset($_POST['submitpost'])){

$sql = mysqli_query($dbconnect, "INSERT INTO blog_posts (pid, author, title, post)
VALUES (NULL, '$_POST[author]', '$_POST[title]', '$_POST[post]')")

or die(mysqli_error($dbconnect));

}

}

并更改action ="second.php<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>"只是action=""

使用条件 !empty()使用您的 POST 数组以确保您没有得到任何空数据并可能引发错误。


旁注:

您现在的密码是开放给SQL injection .使用 mysqli with prepared statements , 或 PDO with prepared statements它们更安全


根据您的编辑,您缺少两个右大括号 }哪个error reporting如果使用它会发出通知。

 <form name ="myForm" action =""  method = "POST"> <br><br><br>

<h3> Create a Post </h3>

Author <input type ="text" size ="40" name ="author"/><br>
Title <input type ="text" size ="30" name ="title"/><br><br>
Post <br><textarea rows ="15" cols ="10" name ="post"></textarea><br>
<input type ="submit" name = "submitpost" value ="Submit Post"/>
</form>
<?php

if($_SERVER['REQUEST_METHOD'] === 'POST'){

if(isset($_POST['submitpost'])){

$sql = "INSERT INTO blog_posts (pid, author, title, post)
VALUES (NULL, '$_POST[author]', '$_POST[title]', '$_POST[post]')";

$data = mysqli_query($dbconnect, $sql)

or die(mysqli_error($dbconnect));

}

}

关于PHP将数据提交到同一页面上的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29810159/

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