私はドロップダウンメニューを使用しているページがあります。私は値が配列から来るselectタグのnameフィールドに変数を渡しました。
$query1="Select SSAP from project where projname='$project'";
$result=mysql_query($query1);
while($row=mysql_fetch_assoc($result))
{
$ssap = $row['SSAP'];
$query2="Select * from student where SSAP='$ssap'";
$res=mysql_query($query2);
$row1=mysql_fetch_assoc($res);
$name=$row1['name'];
echo $name; ?> <select name="<?php echo $name;?>">
<option value="A"> Exceptional </option>
<option value="B"> Highly Effective </option>
<option value="C"> Effective </option>
<option value="D"> Good </option>
<option value="E"> Not Satisfactory </option>
</select> <br> <?php
}
と私は、アクションページの別の変数で作成された各選択タグの値を取得する必要があります。
$grade=$_POST[$name];
echo $grade;
最初のコードスニペットは正常に機能しますが、2番目のスニペットで値をフェッチできません。
コードの最初の行にSQLインジェクションがあり、$ query2にも1つも含まれています。また、XSSは$名前をエコーします。 – Maantje
ここでは、両方のSQLクエリにSQLインジェクションの脆弱性があります。 – David
**危険**:[削除済み](http://php.net/ [廃止**データベースAPI](http://stackoverflow.com/q/12859942/19068))を使用しています。 manual/en/mysql.php)をPHPから入手してください。 [現代的な代替品](http://php.net/manual/en/mysqlinfo.api.choosing.php)を選択する必要があります。あなたはおそらく** [SQLインジェクション攻撃](http://bobby-tables.com/)**に対して脆弱です**現代のAPIは、[防御]を容易にします(http://stackoverflow.com/questions/60174/best-way-to-prevent-sql-injection-in-php)をご利用ください。 – Quentin