嗨我有一个带有select的html表单,这个选项没有实际值以避免sql注入。 表格html
<select type="text" name="code">
<option value="1">domain3.net</option>
<option value="2">domain2.com</option>
<option value="3">domain.es</option>
</select>
我正确地获得了所有变量,只是我希望现在这个select值被转换为实际值的是域tld,它位于一个静态数组中。 我的PHP
$dor = $_POST['code'];
$dom = array(
1 => 'domain3.net',
2 => 'domain2.com',
3 => 'domain.es'
);
$domain = (in_array($dor, $dom));
echo $domain;
我希望你能帮助我
答案 0 :(得分:3)
我能理解你的方法背后的原因,但这将是一个维持的噩梦。每当您支持新的顶级域名时,您都必须在多个位置编辑代码。
使用简单的数据库表存储可用的域类型,然后使用内容填充表单。它对于验证和可扩展性将更加健壮。
答案 1 :(得分:2)
使用array_key_exists函数将键匹配到静态数组中。
$dor = $_POST['code'];;
$dom = array(
1 => 'domain3.net',
2 => 'domain2.com',
3 => 'domain.es'
);
$domain = (array_key_exists($dor, $dom))?$dom[$dor]:'';
echo $domain;
答案 2 :(得分:1)
我也是PHP的初学者..但我认为你需要的是:
$domain = $dom[$dor];
in_array
用于检查值是否存在
要获取值本身,您必须使用索引或键访问数组元素。
答案 3 :(得分:0)
<?php
$dor = $_REQUEST['code'];
$dom = array(
1 => 'domain3.net',
2 => 'domain2.com',
3 => 'domain.es'
);
foreach($dom as $key=>$value)
{
if($key==$dor)
{
echo "Domain is : ".$value;
break;
}
}
?>