我最近读过一篇文章说,你永远不应该信任用户发送数据。
所以我要说我有以下表格输入:
<label for="input1">Answer 1</label>
<input type="radio" name="question1" value="answer1" id="input1" />
<label for="input2">Answer 2</label>
<input type="radio" name="question1" value="answer2" id="input2" />
<label for="input3">Answer 3</label>
<input type="radio" name="question1" value="answer3" id="input3" />
是否可以通过答案检查已发布的答案是否在aray中:
$question1_answers = array("answer1", "answer2", "answer3");
$answer1 = $_POST['question1'];
if ( in_array($answer1, $question1_answers) ) {
echo "OK!";
} else {
echo "Please select proper answer!";
}
或许上面的代码是不必要的,我应该阅读$_POST['question1']
,这就够了吗?
答案 0 :(得分:4)
是否可以通过答案检查已发布的答案是否在aray中:
是的!这是验证像这样的单选按钮值的非常好的做法。您阅读的文章是正确的,您不应盲目信任用户提供的数据。
答案 1 :(得分:2)
为您的情况安全和足够。我怎么猜,那个帖子是关于sql注入,跨站点脚本或类似的东西。你可以在这里阅读有关sql injecition的信息:
http://en.wikipedia.org/wiki/Sql_injection
关于跨网站脚本:
答案 2 :(得分:1)
两种方式都是正确的。但我推荐你发布的第一种方式。