我希望通过位于同一页面的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>
答案 0 :(得分:-2)
目前,当用户填写上面的表单并单击提交按钮时,表单数据将被发送到名为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 injection的攻击。永远不要相信用户输入。请参阅bobby-tables以了解有关SQL注入以及如何防止它的更多信息。
答案 1 :(得分:-2)
更改同一页面插入的<form action="create-post.php" method="post"> to <form action="" method="post">
。
更正$sql="INSERT INTO drafts (
标题,
描述,
帖子,
作者,
类别,
已被拒绝{{1} }
添加此行) VALUES ('$_POST[title]', '$_POST[description]', '$_POST[post]', '$_POST[author]', '$_POST[category]', 0)";
这三个更改将完成工作但不是最佳实践,您接受来自用户的直接输入,因此容易受到SQL注入。