【解決方法】注意: 未定義のインデックス: 9 行目の C:\xampp\htdocs\test\admin\insert_post.php のコンテンツ

プログラミングQA


送信ボタンをクリックすると、上記のエラーが表示されます

私が試したこと:

<?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[^]

解決策 11

if(isset($_POST[‘update1’])))
{
$DocumentXID = $_POST[‘DocumentXID’];
$タイトル = $_POST[‘Title’];
$ISBN = $_POST[‘ISBN’];
$キーワード = $_POST[‘Keyword’];
$DateIn = $_POST[‘DateIn’];
$PublisherID = $_POST[‘PublisherID’];
$PublisherDate = $_POST[‘PublisherDate’];
$Editions = $_POST[‘Editions’];
$ProviderID = $_POST[‘ProviderID’];
$Amount = $_POST[‘Amount’];
$DocumentTypeID = $_POST[‘DocumentTypeID’];
$ContactNumber = $_POST[‘ContactNumber’];
$LocationID = $_POST[‘LocationID’];
$ImageURL = $_POST[‘ImageURL’];
$AttachedFile = $_POST[‘AttachedFile’];
$PageNumber = $_POST[‘PageNumber’];

$sql = “Update tbldocument set Title=”$Title”,ISBN=’$ISBN’,Keyword=’$Keyword’,DateIn=’$DateIn’,PublisherID=’$PublisherID’,PublisherDate=”$PublisherDate”,Editions =”$エディション”,
ProviderID=’$ProviderID’,Amount=”$Amount”,DocumentTypeID=’$DocumentTypeID’,ContactNumber=”$ContactNumber”,LocationID=’$LocationID’,ImageURL=’$ImageURL’,
AttachedFile=”$AttachedFile”,PageNumber=”$PageNumber” Where DocumentXID=’$DocumentXID'”;

if (mysqli_query($conn, $sql)) {
// echo “新しいレコードが正常に追加されました!”;
} それ以外 {
echo “エラー: ” . $sql . “:-” . mysqli_error($conn);
}
// mysqli_close($conn);
}

コメント

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