PHP清理位置数据

时间:2015-03-19 15:32:55

标签: php sanitization

我有这个HTML

<select name="country">
    <option value="Iraq">1</option>
    <option value="Texas">2</option>
    <option value="Paris">3</option>
    ...
    <option value="n">nnn</option>
</select>

在这个选择元素中有一些非常神奇的选项,我不想让人们改变任何选项的值,我不能阻止他们这样做,但是,我很好奇,是有一种有效的PHP方法来检查值是否合法,例如,我可以这样做:

<?php
    $country = $_POST['country'];
    if(($country == "Iraq") && ($country == "Texas") && ($country == "Paris) ....($country == "n"))
{
    allow stuff;
}
?>

但这需要大量的if语句,是不是还有另一种神奇的方法可以解决这个问题呢?

2 个答案:

答案 0 :(得分:3)

当然,请使用in_array

$countries = ['Iraq','Texas',...];
if(in_array($_POST['country'], $countries)) {
    // allow stuff
}

构建您的$countries数组一次,然后使用它来生成<select&gt; HTML代码并验证提交。奖金!

附注:我需要访问德克萨斯州。没意识到他们脱离了!

答案 1 :(得分:0)

这远非神奇,但一种(有点高效)检查的方法是使用in_array http://php.net/manual/en/function.in-array.php

拥有一系列国家/地区后,您还可以使用它来生成下拉列表。