使用 PHP 如何将值与数组进行比较并声明变量


with php how to compare value with array and declare variable?

嗨,我有一个带有选择的 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; 
 }

}
?>