我有一个页面,我正在使用下拉菜单。我在选择标记的名称字段中传递了一个变量,其值来自数组。
$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;
第一个代码片段工作正常,但我无法获取第二个片段中的值。
您的第一行代码中有SQL注入,$ query2也包含一个。通过回显$ name也可以得到XSS。 – Maantje
这里的两个SQL查询都有SQL注入漏洞。 – David
**危险**:您正在使用已[已删除](http://php.net/)的[已过时的**数据库API](http://stackoverflow.com/q/12859942/19068)手册/ 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