有没有办法一次消毒一些变量?

时间:2015-06-08 09:33:49

标签: php mysql validation

我试图一次消毒54个变量。

目前我正在逐一这样做

        if($vissuedate != '') {

            $vissuedate = filter_var($vissuedate, FILTER_SANITIZE_STRING);

            if($vissuedate == ''){

                    $vvalidate++;

                        } 
                }

我还有很多,想问一下是否有办法一次性验证所有这些内容?

2 个答案:

答案 0 :(得分:1)

您可以像这样迭代$_GET

<?php
foreach($_GET as $key => $value) {
    if($_GET[$key] != '') {
       $vissuedate = filter_var($_GET[$key], FILTER_SANITIZE_STRING);
       if($vissuedate == ''){
         $vvalidate++;
       } 
}

Or as you says将它们全部分配给一个数组,然后尝试从那里验证

答案 1 :(得分:1)

您可以将$_GET中的所有密钥放入数组中:

$get_array = array_keys($_GET);

或者,如果你想跳过一些,你可以使用你自己的数组:

$get_array = array('name','adress','phone',...);

然后:

foreach($get_array as $v=>$key){
     //check if exists
     if(!isset($_GET[$key]){
          //do something
          }
     else{
         //do sanitizing here             }       
    }
}

或者,如果你想进行不同类型的消毒,你可以使用带数字的数组:

$get_array = array('name'=>1,'adress'=>1,'phone'=>2,...);


foreach($get_array as $v=>$key){
     //check if exists
     if(!isset($_GET[$key]){
          //do something
          }
     else{
         switch($v){
             case 1: 
               //do something here;
             break;
             case 2:
               //do something else
             break;
             }
         }       
    }
}