注意:未定义索引:第 9 行 C:\xampp\htdocs\test\admin\insert_post.php 中的内容

编程


当我点击提交按钮时,它显示上面的错误

我尝试过的:

<?php
include "db1.php";
include "config.php";

$db = new database();

if (isset($_POST['submit'])){
	$title = $_POST['title'];
	$content = $_POST['content'];
$query = "INSERT INTO posts(title,content) VALUES('$title',$content')";

$run=$db->insert($query);

}

?>



<!DOCTYPE html>
<html>
<head>
	<title></title>
</head>
<body>

</body>
</html>

<form action="insert_post.php" method="post" enctype="multipart/form-data">
	<div class="form-group">
	<center><table width="800" align="center" border="2">
		<tr bgcolor="orange">
		<td colspan="6"><h1 style="text-align:center">Post EDIT</h1></td>
		</tr>
		<tr>
			<td align="right" bgcolor="orange">Post title:</td>
			<td><input type="text" name="title" size="60"></td>
		</tr>
		<tr>
			<td align="right" bgcolor="orange">Post Content:</td>
			<td><textarea name="content" rows="15" cols="40"></textarea></td>
		</tr>
     <tr>

	<td colspan="6" align="center" bgcolor="orange"><input type="Submit" name="submit" value="Publish Now"  /></td>
</tr>	






	</table>

解决方案1

根据您提交的代码,第 9 行存在语法错误

$query = "INSERT INTO posts(title,content) VALUES('$title',$content')";

这应该改变为

$query = "INSERT INTO posts(title,content) VALUES('$title','$content')";

您之前缺少报价的原因 $content

解决方案2

PHP
$query = "INSERT INTO posts(title,content) VALUES('$title',$content')";

不是您问题的解决方案,而是您遇到的另一个问题。
切勿通过连接字符串来构建 SQL 查询。 迟早,您将通过用户输入来完成此操作,这为名为“SQL注入”的漏洞打开了大门,它对您的数据库来说是危险的并且容易出错。
名称中的单引号会使您的程序崩溃。 如果用户输入像“Brian O’Conner”这样的名称可能会使您的应用程序崩溃,这是一个 SQL 注入漏洞,而崩溃是最不重要的问题,是恶意用户输入,并将其提升为具有所有凭据的 SQL 命令。
SQL 注入 – 维基百科[^]
SQL注入[^]
SQL 注入攻击示例[^]
PHP:SQL 注入 – 手册[^]
SQL 注入预防备忘单 – OWASP[^]

コメント

タイトルとURLをコピーしました