Swoole\Form::checkInput PHP Method

checkInput() static public method

static public checkInput ( $input, $form, &$error )
    static function checkInput($input, $form, &$error)
    {
        foreach ($form as $name => $f) {
            $value = $input[$name];
            // 为空的情况 -empty
            if (isset($f['empty']) and empty($value)) {
                $error = $f['empty'];
                return false;
            }
            //检测字符串最大长度
            if (isset($f['maxlen'])) {
                $qs = explode('|', $f['maxlen']);
                if (mb_strlen($value) > $qs[0]) {
                    $error = $qs[1];
                    return false;
                }
            }
            //检测字符串最小长度
            if (isset($f['minlen'])) {
                $qs = explode('|', $f['maxlen']);
                if (mb_strlen($value) > $qs[0]) {
                    $error = $qs[1];
                    return false;
                }
            }
            //检查数值相等的情况 -equal
            if (isset($f['equal'])) {
                $qs = explode('|', $f['equal']);
                if ($value != $qs[0]) {
                    $error = $qs[1];
                    return false;
                }
            }
            //检查数值相等的情况 -noequal
            if (isset($f['noequal'])) {
                $qs = explode('|', $f['noequal']);
                if ($value == $qs[0]) {
                    $error = $qs[1];
                    return false;
                }
            }
            //检查对象相等的情况 -equalo
            if (isset($f['equalo'])) {
                $qs = explode('|', $f['equalo']);
                if ($value == $input[$qs[0]]) {
                    $error = $qs[1];
                    return false;
                }
            }
            //检查对象相等的情况 -equalo
            if (isset($f['ctype'])) {
                $qs = explode('|', $f['ctype']);
                if (!Validate::check($qs[0], $value)) {
                    $error = $qs[1];
                    return false;
                }
            }
            //检查值的类型 -regx,自定义正则检查
            if (isset($f['regx'])) {
                $qs = explode('|', $f['regx']);
                if (!Validate::regx($qs[0], $value)) {
                    $error = $qs[1];
                    return false;
                }
            }
        }
        return true;
    }

Usage Example

Example #1
0
 /**
  *
  * @param  string $error 出错时设置
  *
  * @return true or false
  */
 function checkForm($input, $method, &$error)
 {
     if ($this->_form_secret) {
         $k = 'form_' . get_class($this) . '_' . $method;
         if (!isset($_SESSION)) {
             session();
         }
         if ($_COOKIE[$k] != $_SESSION[$k]) {
             $error = '错误的请求';
             return false;
         }
     }
     $this->_form_();
     return Form::checkInput($input, $this->_form, $error);
 }