【发布时间】:2013-06-24 18:27:07
【问题描述】:
我创建了一个带有多个复选框的 html 页面。
<input type="checkbox" name="option_one" value="YES" class='checkbox_divs' >Option one<br>
<input type="checkbox" name="option_two" value="YES" class='checkbox_divs' >Option two<br>
<input type="checkbox" name="option_three" value="YES" class='checkbox_divs' >Option Three<br>
用户提交它,然后调用一个 php 页面以这种方式将其发送到 SQL 数据库:
$strSQL = "INSERT INTO CLDETAILS (option_one, option_two, option_three)
VALUES
('$_POST[option_one]','$_POST[option_two]','$_POST[option_three]')";
if (sqlsrv_query($conn,$strSQL))
{
echo "Saved !";
}
else
{
echo "Error Save [".$strSQL."]";
print_r( sqlsrv_errors());
}
?>
一切正常,只是我想改进我的代码并避免出现“注意:未定义索引:...”之类的错误。 我知道我应该使用“isset”,但我从 PHP 开始,我真的不知道应该如何使用它。 感谢您的帮助。
【问题讨论】:
-
我认为你的主要困难是你不确定how to prevent SQL injection in PHP?
-
你应该提到你的主要观点。如果选中,您似乎想要添加所有选项,但是如果只选中一个,您想要添加什么?
-
您不需要 isset(请参阅我的回答),但如果您真的想上网,您应该转义字符串以避免被黑客入侵。 php.net/manual/en/security.database.sql-injection.php
-
你的答案包括 isset
-
我的答案其实是两个答案。第一个版本使用 isset,第二个使用隐藏字段