[英]Insert mysql data via a php form on the same page?
我希望通過位於同一頁面上的PHP代碼將php表單中的數據插入到mysql數據庫中。
<?php
if (isset($_POST['submit'])){
$con=mysqli_connect("localhost","root","********","*********");
$sql="INSERT INTO drafts (id, title, description, post, author, category, declined)
VALUES
('','$_POST[title]',$_POST[description],$_POST[post],$_POST[author],$_POST[category],0)";
echo "Droplet Successfully Added!";}
?>
<form action="create-post.php" method="post">
Title: <br /><input type="text" name="title"><br /><br />
Description: <br /><textarea name="description"></textarea><br /><br />
Post: <br /><textarea name="post"></textarea><br /><br />
Author: <br /><input type="text" name="author"><br /><br />
Category: <br /><input type="text" name="category"><br /><br />
<input class="btn btn-info" type="submit" value="Submit for review">
</form>
目前,當用戶填寫上面的表單並單擊提交按鈕時,表單數據將被發送到名為create-post.php
的PHP文件進行處理。
現在,如果將action
屬性留空,表單將提交給自己:
<?php
if (isset($_POST['submit'])) {
$con=mysqli_connect("localhost","root","********","*********");
$sql="INSERT INTO drafts (id, title, description, post, author, category, declined)
VALUES
('','$_POST[title]',$_POST[description],$_POST[post],$_POST[author],$_POST[category],0)";
echo "Droplet Successfully Added!";
}
?>
<form action="" method="post">
Title: <br /><input type="text" name="title"><br /><br />
Description: <br /><textarea name="description"></textarea><br /><br />
Post: <br /><textarea name="post"></textarea><br /><br />
Author: <br /><input type="text" name="author"><br /><br />
Category: <br /><input type="text" name="category"><br /><br />
<input class="btn btn-info" type="submit" value="Submit for review">
</form>
當用戶訪問該頁面時,將不會設置$_POST['submit']
,並且if
塊中的語句將不會被執行,並且將顯示該表單。 填寫表單並且用戶單擊提交按鈕后, $_POST
超全局數組將填充表單輸入, if
條件將評估為TRUE
,因此語句將被執行。
不相關的注釋:您當前正在接受用戶輸入並直接將其插入查詢中。 它易受SQL注入攻擊。 永遠不要相信用戶輸入。 請參閱bobby-tables以了解有關SQL注入以及如何防止它的更多信息。
對於同一頁面插入,將<form action="create-post.php" method="post"> to <form action="" method="post">
。
糾正查詢,如$sql="INSERT INTO drafts (
標題,
描述,
帖子,
作者,
類別,
拒絕) VALUES ('$_POST[title]', '$_POST[description]', '$_POST[post]', '$_POST[author]', '$_POST[category]', 0)";
添加此行$query = mysqli_query($con,$sql);
這三個更改將完成工作,但它不是最佳實踐,您接受來自用戶的直接輸入,因此易受SQL注入攻擊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.