我想要完成的是有一个带有预定义选项的选择表单元素
<select name="select1">
<option value="value1">Value 1</option>
<option value="value2">Value 2</option>
<option value="value3">Value 3</option>
</select>
我的sql是以下
$OptionValue = $_POST['select1'];
是我应该如何从表单中获取所选选项的值并将其放入要查询的php变量中?
答案 0 :(得分:1)
您需要确保过滤用户输入以防止sql注入。仅此一点是非常不安全的。
确保您使用的是PDO或MySQLi。如果不使用预准备语句,则需要转义用户输入。
请参阅here。
基本上你没错。
修改强>
从客户端我可以轻松地将其更改为:
<select name="select1">
<option value="value1">Value 1</option>
<option value="';DROP TABLE users">Value 2</option>
<option value="value3">Value 3</option>
</select>
或类似的...现在,如果你没有逃脱输入,你就会被搞砸。
答案 1 :(得分:0)
在执行查询之前使用$optionValue = mysqli_real_escape_string ($connection , $_POST['select1'])
以防止大多数SQL注入。
答案 2 :(得分:0)
第一步是使用预准备语句阻止SQL注入。示例:Prepared Statements
使用此选项将您选择的选项置于查询中:
$mySelectedOption = $_POST['select1'];
$query = "SELECT column_name FROM table_name WHERE column_name = '{$mySelectedOption}'";