PHP 清理位置数据
PHP sanitizing location data
我有这个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>
在这个 select 元素中有非常多的选项,我真的不想让人们改变任何选项的值,但我无法阻止他们这样做,尽管,我很好奇,有没有一种有效的 PHP 方法来检查值是否合法,例如,我可以这样做:
<?php
$country = $_POST['country'];
if(($country == "Iraq") && ($country == "Texas") && ($country == "Paris) ....($country == "n"))
{
allow stuff;
}
?>
但这需要大量的 if 语句,难道没有另一种神奇的方法可以解决这个问题吗?
当然,使用 in_array
:
$countries = ['Iraq','Texas',...];
if(in_array($_POST['country'], $countries)) {
// allow stuff
}
一次构建您的 $countries
数组,然后使用它生成您的 <select
> HTML 代码并验证提交。奖金!
旁注:我需要访问德克萨斯州。没有意识到他们脱离了!
这远非魔法,但一种(有点有效的)检查方法是使用 in_array
http://php.net/manual/en/function.in-array.php
一旦你有了一组你的国家,你也可以用它来生成下拉列表。
我有这个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>
在这个 select 元素中有非常多的选项,我真的不想让人们改变任何选项的值,但我无法阻止他们这样做,尽管,我很好奇,有没有一种有效的 PHP 方法来检查值是否合法,例如,我可以这样做:
<?php
$country = $_POST['country'];
if(($country == "Iraq") && ($country == "Texas") && ($country == "Paris) ....($country == "n"))
{
allow stuff;
}
?>
但这需要大量的 if 语句,难道没有另一种神奇的方法可以解决这个问题吗?
当然,使用 in_array
:
$countries = ['Iraq','Texas',...];
if(in_array($_POST['country'], $countries)) {
// allow stuff
}
一次构建您的 $countries
数组,然后使用它生成您的 <select
> HTML 代码并验证提交。奖金!
旁注:我需要访问德克萨斯州。没有意识到他们脱离了!
这远非魔法,但一种(有点有效的)检查方法是使用 in_array
http://php.net/manual/en/function.in-array.php
一旦你有了一组你的国家,你也可以用它来生成下拉列表。