我是PHP的新手,我正在尝试在我的网络表单中添加预防措施以避免滥用,这些来自用户的输入被存储到数据库中。在尝试通过整个post数组时,我不断收到错误。我相信它与复选框有关。
我有以下功能:
function CleanArray($array) {
return array_map('mysql_real_escape_string', $array);
}
我还有2个输入字段和一堆多个复选框。
示例:
<input type="checkbox" name="decks[]" value="All Decks"/>
<label>All Decks</label>
<br>
<input type="checkbox" name="decks[]" value="Competitor"/>
<label>Competitor</label>
现在,当我执行此代码时,它会标记错误并且不会输出多个复选框值(我选择了几个)。
$_POST = CleanArray($_POST);
警告:mysql_real_escape_string()期望参数1为字符串,
所以我决定从数组中取消设置问题位,然后单独清理它并将其添加回数组中。这有效,我得到了我需要的所有数据。我觉得这是一项很大的努力,是否真的需要它?
$decks = $_POST['decks'];
unset($_POST['decks']);
$_POST = CleanArray($_POST);
$decks = CleanArray($decks);
$_POST['decks'] = $decks;
我的输出:
您好 你好 所有甲板,竞争对手,杂项,合作伙伴和利益相关者,流程,产品,结构和角色
任何建议都将不胜感激。我觉得这是错误的错误,也许我不太了解这个功能。
由于 海莉