Notice:C:\ xampp \ htdocs \ evantchbd \ secure \ content \ right_cat_pr.phpの18行目で未定義オフセット:1行がです。私はテーブルからnews_idとcat_nameを取得したい。ここでPHPの関数が爆発するエラー
は、HTML形式である:
ここ<?php
include "db.php";
$sql = mysql_query("SELECT * FROM news_cat");
?>
<form action="right_cat_pr.php" method="post" name="right_cat">
<table width="400" border="0" cellspacing="5" cellpadding="5">
<tr>
<td>News Category Name</td>
<td>
<select name="cat_name">
<?php
while($row = mysql_fetch_assoc($sql))
{
$new_id = $row['news_id'];
$cat_name = $row['cat_name'];
?>
<option "<?php echo $row['news_id'] . '|' . $row['cat_name'] ?>"><?php echo
$row['cat_name']; ?></option>
<?php
}
?>
</select>
</td>
</tr>
<tr>
<td> </td>
<td><input type="submit" value="Submit" name="submit"></td>
</tr>
</table>
</form>
は、プロセスのページです:
<?php
include "db.php";
$row = explode('|', $_POST['cat_name']);
$news_id = $row[0]; // cat_id
$cat_name = $row[1];
$query = mysql_query("INSERT INTO right_cat VALUES ('','$news_id','$cat_name')");
if($query)
{
echo "Successfully Inserted your News Category<br/>";
}
else
{
echo "Something is wrong to Upload";
}
?>
でオプション値を設定する必要がありますしかし、そこにはSQLインジェクションの脆弱性が存在します。 'INSERT INTO right_cat VALUES( ''、 '$ news_id'、 '$ cat_name')' $ news_idが 'ffff 'の場合はどうなりますか? DROP * FROM *; - '? – Seventoes
@リトルボビーテーブルを参照する衝動に抵抗するためのコメントに@ Seventoes +1 :) ...のように...エラーメッセージは、ライン18に存在しない配列キーを参照していることを意味します。配列キーが存在することを100%確信しているわけではありませんが、参照する前に 'empty'または' isset'で有効であることを確認する必要があります。 – rdlowrey
ありがとう@Seventoes。では、SQLインジェクションを防ぐために何をすべきですか? –