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