Exemplo n.º 1
0
 /**
  * Test a var if it`s valid. return error message or false.
  * @param string $varname
  * @param mixed $value
  * @return mixed
  */
 public static function testVar($varname, $value)
 {
     if (!isset(self::$vars[$varname])) {
         return self::error('err_unknown_var', htmlspecialchars($varname));
     }
     $type = self::$vars[$varname][self::TYPE];
     $name = htmlspecialchars($varname);
     switch ($type) {
         case 'text':
             if (!is_string($value)) {
                 return self::error('err_text', array($name));
             }
             break;
         case 'int8':
             if (!GWF_Validator::isOctalNumber(decoct(intval($value, 10)))) {
                 return self::error('err_int8', array($name));
             }
             break;
         case 'int10':
             if (!GWF_Validator::isDecimalNumber($value)) {
                 return self::error('err_int10', array($name));
             }
             break;
         case 'script':
             //				if (!self::isDefaultValue($varname, $value)) {
             //					return self::error('err_script', $name);
             //				}
             break;
         case 'bool':
             if (!self::isBoolean($value)) {
                 return self::error('err_bool', array($name));
             }
             break;
         default:
             return self::error('err_unknown_type', array(htmlspecialchars($type)));
     }
     $method_name = sprintf('check__%s', $varname);
     if (method_exists(__CLASS__, $method_name)) {
         return call_user_func(array(__CLASS__, $method_name), $value);
     } else {
         return false;
     }
 }