誰かが言う前に、私はこのエラーを修正した直後に、SQL インジェクションから身を守ります。ニュース レポートがデータベースに送信されるアプリを作成しています。このページは、データベースからレポートを削除するものです。
私が試したこと:SQLとスピーチマークに括弧を追加するすべての可能な方法。私の ICT 教師と私はこれを 2 時間近く調べましたが、修正が見つかりません。Google と Stack Overflow も検索しましたが、答えが見つかりません。
OK、エコーすると正しい report_id が表示されます。5 などの実際の ID を入力すると、レポートが削除されます。しかし、$report_id を入れても何も削除されません。
これを機能させるために私がしなければならない修正を誰か教えてください。
コードは次のとおりです(編集:これは固定コードです。他のいくつかの小さな変更(余分なフォームタグの削除など)の中で、フォームの下部に隠しフィールドを追加しました):
<?php
require_once('authorize.php');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Football Central - Remove a Report</title>
</head>
<body>
<h2>Football Central - Remove a News Report</h2>
<?php
require_once('img_details_reports.php');
require_once('connect_db_reports.php');
//Assign variables from admin_reports.php using $_GET
$report_id = $_GET['id'];
if (isset($_POST['submit'])) {
if ($_POST['confirm'] == 'Yes') {
$report_id = $_POST['id'];
// Delete the image file from the server
@unlink(IMAGE_UPLOADPATH . $image);
// Connect to the database
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME)
or die("Unable to connect to the database.");
// Delete the score data from the database
$query = "DELETE FROM news_reports WHERE report_id = '".$report_id."' LIMIT 1"
or die("mysql_query failed - Error: " . mysqli_error());
mysqli_query($dbc, $query) or die("mysql_query failed - Error: " . mysqli_error());
mysqli_close($dbc);
}
}
//Display form to confirm delete
echo '<p>Are you sure you want to delete the news report?</p>';
echo '<form method="post" action="removereport.php">';
echo '<input type="radio" name="confirm" value="Yes" /> Yes ';
echo '<input type="radio" name="confirm" value="No" checked="checked" /> No <br />';
echo '<input type="hidden" name="id" value="' . $report_id . '" />';
echo '<input type="submit" value="Submit" name="submit" />';
echo '</form>';
echo '<p><a href="admin_reports.php"><< Back to admin reports page</a></p>';
?>
</body>
</html>