成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > PHP驗證類的封裝與使用方法詳解

PHP驗證類的封裝與使用方法詳解

熱門標簽:地圖標注怎么做商戶驗證 兼職做地圖標注好賺錢嗎 打開百度地圖標注 海南外呼系統(tǒng)方案 400 電話 辦理 智能電銷語音機器人資訊 蘇州外呼系統(tǒng)有效果嗎 亳州企業(yè)外呼系統(tǒng) 山東電銷卡外呼系統(tǒng)原理是什么

本文實例講述了PHP驗證類的封裝與使用方法。分享給大家供大家參考,具體如下:

?php
/**
 * Created by PhpStorm.
 * User: jiqing
 * Date: 18-7-24
 * Time: 下午4:36
 * 常用驗證
 */
class Valid
{
 static protected $error;
 static protected $error_tips = [
  'tel' => '手機號格式有誤',
  'email' => '郵箱格式有誤',
  'max_len' => '參數(shù)長度不能超過最大長度',
  'min_len' => '參數(shù)長度不能小于最小長度',
  'required' => '缺少參數(shù)'
 ];
 // required|max_len,100|min_len,6
 public function validate($field, $rules)
 {
  $rules = explode('|', $rules);
  foreach ($rules as $rule) {
   $method = null;
   $param = null;
   // Check if we have rule parameters
   if (strstr($rule, ',') !== false) {
    $rule = explode(',', $rule);
    $method = 'check_'.$rule[0];
    $param = $rule[1];
    $rule = $rule[0];
   } else {
    $method = 'check_'.$rule;
   }
   $method_array = get_class_methods(new Valid());
   if (!in_array($method,$method_array)) {
    self::$error[] = "Method not exist.";
   }
   if (!self::$method($field,$param)) {
    self::$error[] = self::$error_tips[$rule] ? self::$error_tips[$rule] : '參數(shù)格式有誤';
   }
  }
  if (count(self::$error) == 0) {
   return 0;
  }
  return self::$error[0]; // 返回第一個錯誤
 }
 public static function check_required($field) {
  if (isset($field)  ($field === false || $field === 0 || $field === 0.0 || $field === '0' || !empty($field))) {
   return true;
  } else {
   return false;
  }
 }
 public static function check_tel($field) {
  if(preg_match("/^1[345678]{1}\d{9}$/",$field)){
   return true;
  }else{
   return false;
  }
 }
 public static function check_email($field) {
  if(preg_match("/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/",$field)){
   return true;
  }else{
   return false;
  }
 }
 public static function check_max_len($field,$param = null) {
  if (function_exists('mb_strlen')) {
   if (mb_strlen($field) = (int) $param) {
    return true;
   } else {
    return false;
   }
  } else {
   if (strlen($field) = (int) $param) {
    return true;
   } else {
    return false;
   }
  }
 }
 public static function check_min_len($field,$param = null) {
  if (function_exists('mb_strlen')) {
   if (mb_strlen($field) >= (int) $param) {
    return true;
   } else {
    return false;
   }
  } else {
   if (strlen($field) >= (int) $param) {
    return true;
   } else {
    return false;
   }
  }
 }
 public static function check_regex($field, $param = null)
 {
  $regex = $param;
  if (preg_match($regex, $field)) {
   return true;
  } else {
   return false;
  }
 }
}

基本滿足需求。

vendor('Func.Valid');
if ($res = Valid::validate('152','required|regex,/^1[345678]{1}\d{9}$/')) {
 $this->json->setErr(10001,$res);
 $this->json->Send();
}

封裝很有意思,這個類唯一的亮點,就是可以復合驗證。并且支持正則。而且里面的驗證方法還可以單獨使用。

vendor('Func.Valid');
if (!Valid::check_tel('152')) {
 $this->json->setErr(10001,'手機號有誤');
 $this->json->Send();
}

勇敢的封裝,利國利民。

繼續(xù)封裝,支持數(shù)組傳參。

?php
/**
 * Created by PhpStorm.
 * User: jiqing
 * Date: 18-7-24
 * Time: 下午4:36
 * 常用驗證
 */
class Valid
{
 static protected $error;
 static protected $error_tips = [
  'tel' => '手機號格式有誤',
  'email' => '郵箱格式有誤',
  'max_len' => '參數(shù)長度不能超過最大長度',
  'min_len' => '參數(shù)長度不能小于最小長度',
  'required' => '缺少參數(shù)'
 ];
 /**
  * @param $validators array array('email' => 'required|valid_email')
  * @param $input array post數(shù)據(jù)
  * @return string
  */
 public function is_valid($validators, $input) {
  foreach ($validators as $field => $rules) {
   if (!isset($input[$field]) || empty($input[$field])) {
    self::$error[] = "缺少參數(shù)";
   }
   $rules = explode('|', $rules);
   foreach ($rules as $rule) {
    $method = null;
    $param = null;
    // Check if we have rule parameters
    if (strstr($rule, ',') !== false) {
     $rule = explode(',', $rule);
     $method = 'check_'.$rule[0];
     $param = $rule[1];
     $rule = $rule[0];
    } else {
     $method = 'check_'.$rule;
    }
    $method_array = get_class_methods(new Valid());
    if (!in_array($method,$method_array)) {
     self::$error[] = "Method not exist.";
    }
    if (!self::$method($input[$field],$param)) {
     self::$error[] = self::$error_tips[$rule] ? self::$error_tips[$rule] : '參數(shù)格式有誤';
    }
   }
  }
  if (count(self::$error) == 0) {
   return 0;
  }
  return self::$error[0]; // 返回第一個錯誤
 }
 /**
  * @param $field string 驗證字段
  * @param $rules string 驗證規(guī)則 required|max_len,100|min_len,6
  * @return string
  */
 public function validate($field, $rules)
 {
  $rules = explode('|', $rules);
  foreach ($rules as $rule) {
   $method = null;
   $param = null;
   // Check if we have rule parameters
   if (strstr($rule, ',') !== false) {
    $rule = explode(',', $rule);
    $method = 'check_'.$rule[0];
    $param = $rule[1];
    $rule = $rule[0];
   } else {
    $method = 'check_'.$rule;
   }
   $method_array = get_class_methods(new Valid());
   if (!in_array($method,$method_array)) {
    self::$error[] = "Method not exist.";
   }
   if (!self::$method($field,$param)) {
    self::$error[] = self::$error_tips[$rule] ? self::$error_tips[$rule] : '參數(shù)格式有誤';
   }
  }
  if (count(self::$error) == 0) {
   return 0;
  }
  return self::$error[0]; // 返回第一個錯誤
 }
 public static function check_required($field) {
  if (isset($field)  ($field === false || $field === 0 || $field === 0.0 || $field === '0' || !empty($field))) {
   return true;
  } else {
   return false;
  }
 }
 /**
  * 簡寫
  * @param $field
  * @return bool
  */
 public static function check_r($field) {
  if (isset($field)  ($field === false || $field === 0 || $field === 0.0 || $field === '0' || !empty($field))) {
   return true;
  } else {
   return false;
  }
 }
 public static function check_tel($field) {
  if(preg_match("/^1[345678]{1}\d{9}$/",$field)){
   return true;
  }else{
   return false;
  }
 }
 public static function check_email($field) {
  if(preg_match("/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/",$field)){
   return true;
  }else{
   return false;
  }
 }
 public static function check_max_len($field,$param = null) {
  if (function_exists('mb_strlen')) {
   if (mb_strlen($field) = (int) $param) {
    return true;
   } else {
    return false;
   }
  } else {
   if (strlen($field) = (int) $param) {
    return true;
   } else {
    return false;
   }
  }
 }
 public static function check_min_len($field,$param = null) {
  if (function_exists('mb_strlen')) {
   if (mb_strlen($field) >= (int) $param) {
    return true;
   } else {
    return false;
   }
  } else {
   if (strlen($field) >= (int) $param) {
    return true;
   } else {
    return false;
   }
  }
 }
 public static function check_regex($field, $param = null)
 {
  $regex = $param;
  if (preg_match($regex, $field)) {
   return true;
  } else {
   return false;
  }
 }
}

使用如下

vendor('Func.Valid');
$validators = [
 'tel' => 'required|tel',
 'name' => 'required',
 'email' => 'r|email',
 'password' => 'r|min_len,6|max_len,12'
];
if ($err = Valid::is_valid($validators,$_POST)) {
 $this->json->setErr(10001,$err);
 $this->json->Send();
}

繼續(xù)優(yōu)化!支持錯誤提示中,添加參數(shù)。

?php
/**
 * Created by PhpStorm.
 * User: jiqing
 * Date: 18-7-24
 * Time: 下午4:36
 * 常用驗證
 */
class Valid
{
 static protected $error;
 /**
  * @param $validators array array('email' => 'required|valid_email')
  * @param $input array post數(shù)據(jù)
  * @return string
  */
 public function is_valid($validators, $input) {
  foreach ($validators as $field => $rules) {
   if (!isset($input[$field]) || empty($input[$field])) {
    self::$error[] = "缺少參數(shù)";
   }
   $rules = explode('|', $rules);
   foreach ($rules as $rule) {
    $method = null;
    $param = null;
    // Check if we have rule parameters
    if (strstr($rule, ',') !== false) {
     $rule = explode(',', $rule);
     $method = 'check_'.$rule[0];
     $param = $rule[1];
     $rule = $rule[0];
    } else {
     $method = 'check_'.$rule;
    }
    $method_array = get_class_methods(new Valid());
    if (!in_array($method,$method_array)) {
     self::$error[] = "Method not exist.";
    }
    if (!self::$method($input[$field],$param)) {
     self::$error[] = self::get_error_tips($rule,$param);
    }
   }
  }
  if (count(self::$error) == 0) {
   return 0;
  }
  return self::$error[0]; // 返回第一個錯誤
 }
 /**
  * @param $field string 驗證字段
  * @param $rules string 驗證規(guī)則 required|max_len,100|min_len,6
  * @return string
  */
 public function validate($field, $rules)
 {
  $rules = explode('|', $rules);
  foreach ($rules as $rule) {
   $method = null;
   $param = null;
   // Check if we have rule parameters
   if (strstr($rule, ',') !== false) {
    $rule = explode(',', $rule);
    $method = 'check_'.$rule[0];
    $param = $rule[1];
    $rule = $rule[0];
   } else {
    $method = 'check_'.$rule;
   }
   $method_array = get_class_methods(new Valid());
   if (!in_array($method,$method_array)) {
    self::$error[] = "Method not exist.";
   }
   if (!self::$method($field,$param)) {
    self::$error[] = self::get_error_tips($rule,$param);
   }
  }
  if (count(self::$error) == 0) {
   return 0;
  }
  return self::$error[0]; // 返回第一個錯誤
 }
 /**
  * 靈活獲取參數(shù)
  * @param $rule
  * @param $param
  */
 public static function get_error_tips($rule,$param) {
  $error_tips = [
   'tel' => '手機號格式有誤',
   'email' => '郵箱格式有誤',
   'max_len' => '參數(shù)長度不能超過最大長度'.$param,
   'min_len' => '參數(shù)長度不能小于最小長度'.$param,
   'required' => '缺少參數(shù)',
   'r' => '缺少參數(shù)'
  ];
  return $error_tips[$rule] ? $error_tips[$rule] : '參數(shù)格式有誤';
 }
 public static function check_required($field) {
  if (isset($field)  ($field === false || $field === 0 || $field === 0.0 || $field === '0' || !empty($field))) {
   return true;
  } else {
   return false;
  }
 }
 /**
  * 簡寫
  * @param $field
  * @return bool
  */
 public static function check_r($field) {
  if (isset($field)  ($field === false || $field === 0 || $field === 0.0 || $field === '0' || !empty($field))) {
   return true;
  } else {
   return false;
  }
 }
 public static function check_tel($field) {
  if(preg_match("/^1[345678]{1}\d{9}$/",$field)){
   return true;
  }else{
   return false;
  }
 }
 public static function check_email($field) {
  if(preg_match("/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/",$field)){
   return true;
  }else{
   return false;
  }
 }
 public static function check_max_len($field,$param = null) {
  if (function_exists('mb_strlen')) {
   if (mb_strlen($field) = (int) $param) {
    return true;
   } else {
    return false;
   }
  } else {
   if (strlen($field) = (int) $param) {
    return true;
   } else {
    return false;
   }
  }
 }
 public static function check_min_len($field,$param = null) {
  if (function_exists('mb_strlen')) {
   if (mb_strlen($field) >= (int) $param) {
    return true;
   } else {
    return false;
   }
  } else {
   if (strlen($field) >= (int) $param) {
    return true;
   } else {
    return false;
   }
  }
 }
 public static function check_regex($field, $param = null)
 {
  $regex = $param;
  if (preg_match($regex, $field)) {
   return true;
  } else {
   return false;
  }
 }
}

PS:這里再為大家提供2款非常方便的正則表達式工具供大家參考使用:

JavaScript正則表達式在線測試工具:
http://tools.jb51.net/regex/javascript

正則表達式在線生成工具:
http://tools.jb51.net/regex/create_reg

更多關于PHP相關內(nèi)容感興趣的讀者可查看本站專題:《php正則表達式用法總結》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語法入門教程》、《php字符串(string)用法總結》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》

希望本文所述對大家PHP程序設計有所幫助。

您可能感興趣的文章:
  • PHP代碼實現(xiàn)表單數(shù)據(jù)驗證類
  • PHP 基于文件頭的文件類型驗證類函數(shù)
  • php封裝的表單驗證類完整實例
  • php實現(xiàn)通用的信用卡驗證類
  • php可擴展的驗證類實例(可對郵件、手機號、URL等驗證)
  • 學習thinkphp5.0驗證類使用方法
  • php常用表單驗證類用法實例
  • php編寫的一個E-mail驗證類

標簽:溫州 安康 呼倫貝爾 萊蕪 金華 清遠 紹興 綏化

巨人網(wǎng)絡通訊聲明:本文標題《PHP驗證類的封裝與使用方法詳解》,本文關鍵詞  PHP,驗證,類,的,封裝,與,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP驗證類的封裝與使用方法詳解》相關的同類信息!
  • 本頁收集關于PHP驗證類的封裝與使用方法詳解的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    日本成人在线播放| 国产日韩换脸av一区在线观看| 亚洲情综合五月天| 精品成人久久| 国产一区二区三区四区五区传媒| 精品一区二区三区在线成人| 九九精品久久| 美女视频黄的免费| 黄色小视频免费网站| 亚洲色图国产精品| 狠狠色狠狠色综合| 欧美一区二区少妇| 国产很黄免费观看久久| 漂亮人妻被黑人久久精品| 水野朝阳av一区二区三区| 处破女av一区二区| 国产无套丰满白嫩对白| 日韩免费av一区二区三区| 可以免费看的黄色网址| chinesegaysextube| 麻豆精品91| 国产稀缺真实呦乱在线| 中文字幕影音在线| 香蕉av在线播放| 亚洲熟女乱色一区二区三区| a中文在线播放| 日本a级片电影一区二区| 成人一级视频| 欧美xxxxxbbbbb| 四虎影视最新网站入口在线观看| 未满十八勿进黄网站一区不卡| 日日摸夜夜添夜夜添精品视频| 999久久久精品国产| 无码av免费一区二区三区试看| 亚洲精品中文在线观看| 国产一二区在线| 成人性生交大片免费看96| 91精品国产综合久久久蜜臀粉嫩| 11024精品一区二区三区日韩| 欧美国产精品久久| 国产专区一区| 人妻无码一区二区三区| 欧美精品videosex极品1| 99久久99久久精品国产片桃花| 国产精品视频免费观看| 黄色无遮挡网站| 成人动漫一区| 日韩av黄色在线| 最新亚洲国产精品| 久久久久久尹人网香蕉| 日韩中文字幕二区| 人成网站在线观看| 精品久久久久一区二区三区| 波多野结衣在线播放一区| 成人性视频免费网站| 亚洲欧洲成视频免费观看| 国产乱子伦精品无码专区| 五月天婷婷在线观看| 777.av| 电影天堂久久| 亚洲国产精品久久久男人的天堂| 欧美人妖巨大在线| 韩国成人在线视频| 成人毛片av在线| 老司机精品视频网站| 免费看男男www网站入口在线| 日本aⅴ免费视频一区二区三区| 福利视频午夜| 欧美一区二区视频97| 永久免费未满蜜桃| 波多野结衣 在线| 久久精品理论片| 亚洲高清在线不卡| 国产永久av在线| 精品亚洲国产成av人片传媒| 伊人手机在线视频| 人人澡人人澡人人看| 香蕉久久一区二区三区| 成人激情黄色小说| 国产日本久久| xvideos.蜜桃一区二区| 国产伦精品一区二区三区在线播放| 欧美专区在线视频| 国产成人精品一区二区色戒| 视频这里只有精品| 精品动漫一区二区| 一区二区视频免费观看| 国产伦精品一区二区三区四区视频| 久久久一本精品99久久精品| 四虎影视精品永久在线观看| 日韩免费一级视频| 色哟哟一区二区在线观看| 亚洲国产成人va在线观看麻豆| 亚洲免费观看| 日韩电影大全免费观看2023年上| 欧美一区永久视频免费观看| 久久精品久久久精品美女| 99精品桃花视频在线观看| 蜜桃视频最新网址| 亚洲国产精品无码久久久久高潮| www.日韩不卡电影av| 久久久久久久久久久久av| 成人avav在线| 美女精品导航| 亚洲最大成人网4388xx| 国产在线拍揄自揄拍视频| 欧美性猛交xxxx乱大交3| 99热精品在线播放| 亚洲精品偷拍| 日韩经典中文字幕| 国产又粗又猛又爽视频| 亚洲视频一二三区| av蓝导航精品导航| 九七伦理97伦理| 禁果av一区二区三区| 狠狠色综合久久婷婷| 国产 porn| 97精品视频在线看| 久久综合综合久久综合| www.com.cn成人| 中文字幕第二区| 男人操女人下面视频| 成人丝袜18视频在线观看| 亚洲精品7777xxxx青睐| 天天躁日日躁狠狠躁喷水| 中文字幕丰满孑伦无码专区| 黄色一级片免费看| 大荫蒂欧美视频另类xxxx| 天天操夜夜操免费视频| 欧美亚州韩日在线看免费版国语版| 亚洲线精品一区二区三区| 日韩精品一区二区三区中文字幕| 北条麻妃亚洲一区| ww国产内射精品后入国产| 成人网免费看| 水蜜桃亚洲精品| 狠狠热免费视频| 欧美中文日韩| 欧美日韩成人精品| 日韩精品久久久久久| 久久久国内精品| 18免费在线视频| 91精品中国老女人| 曰本三级在线| 醉酒壮男gay强迫野外xx| 97蝌蚪自拍自窝| 亚洲成色www8888| 在线观看日韩av电影| 菠萝蜜视频网站入口| 天天做夜夜做人人爱精品| av在线播放资源| 五月天久久网站| 久草在线资源福利| 成人h动漫精品一区二区器材| 亚洲精品国产91| 尤物视频在线视频| 国产日韩欧美亚洲一区| 黄色一区二区在线| 成人精品水蜜桃| 巨人精品**| 日本24小时在线高清视频| 老司机精品视频网站| 亚洲毛片在线观看.| 国产精品丝袜91| 高清中文字幕一区二区三区| 亚洲色欲久久久综合网东京热| 性欧美xxxx免费岛国不卡电影| 色香蕉成人二区免费| 久久99精品久久久水蜜桃| 国产精品12区| 91最新网站| 国产女主播视频一区二区| 一区二区三区四区高清视频| yy6080午夜| 亚洲欧洲日韩精品| 国产精品电影一区| 久久综合色88| 亚洲综合自拍| 人人干在线观看| 久久精品国产亚洲blacked| 色佬视频在线观看| 欧美在线中文| 这里只有精品6| 手机版av在线| 特黄一区二区三区| 欧美成人激情在线| 色天使久久综合网天天| 国产一二三av| 91伊人久久| 亚洲成人国产综合| 精品国产一区二区三区av性色| 日韩av电影在线播放| 性欧美videossex精品| 国产精品久久久久久久久久| 久久国产精品1区2区3区网页| 日韩激情一区二区三区| 国产麻豆剧传媒精品国产av| 国产稀缺真实呦乱在线| 天天爽天天爽夜夜爽| 青春草在线视频观看| 国产男女在线观看| 91精品国产综合久久久久久久久| 亚洲电影视频在线| 久久综合欧美| 亚洲日本在线观看视频| 欧美h片在线观看| 操操操综合网| www.久久久久久久久| 黄色在线网站| 久久久www成人免费精品张筱雨| 高清在线观看av| 极品裸体白嫩激情啪啪国产精品| 麻豆chinese极品少妇| 午夜精品久久久久久99热| 国产一区二区三区中文字幕| 麻豆传媒一区二区三区| 欧美日韩dvd在线观看| 91传媒免费视频| 精品人妻无码一区二区三区蜜桃一| 天天人人精品| 欧美探花视频资源| 97国产成人无码精品久久久| 日韩一区二区三区xxxx| 欧美伊人影院| 色先锋av资源在线| 高清不卡日本v二区在线| 国产精品久久久久久久岛一牛影视| 久久综合精品一区| 法国空姐电影在线观看| 欧美最猛黑人xxxx黑人猛叫黄| 日韩电影在线播放| 亚洲 欧美 激情 小说 另类| 久久久最新网址| 少妇伦子伦精品无吗| 色片在线免费观看| av自拍一区| 亚洲风情在线资源站| 国产免费网址| 一区二区三区在线视频观看58| 欧美精品羞羞答答| 欧美激情视频一区二区| 天天操天天摸天天干| 九色porny自拍视频| 国产精品欧美一区二区三区奶水| 午夜久久99| 亚洲制服丝袜在线播放| www.日本少妇| 少妇一级淫片日本| 最近中文字幕日韩精品| 中文字幕精品网| 999av视频| 欧美一级一级性生活免费录像| 欧美精品久久久| 成人天堂资源www在线| 成人免费在线视频播放| 2018国产精品| 亚洲综合精品伊人久久| 激情黄产视频在线免费观看| 欧美在线一级| 亚洲熟妇国产熟妇肥婆| 最近中文字幕免费观看| 在线看片中文字幕| 精品久久久久久中文字幕人妻最新| 中文在线a在线| 亚洲中文字幕一区二区| 91精品久久久久久久蜜月| 成人手机视频在线| 欧洲亚洲女同hd| 狠狠狠色丁香婷婷综合激情| 伊人久久大香线蕉av一区| 日韩免费福利电影在线观看| **性色生活片久久毛片| 欧美1区2区3| 可以在线观看的黄色网址| 好妞色妞国产在线视频| 国产成人自拍高清视频在线免费播放| 国产精品久久一级| 日韩理伦片在线| 午夜成人亚洲理伦片在线观看| 中国毛片直接看| 三日本三级少妇三级99| 日韩av新片网| 成年人在线免费观看| 国产成人手机高清在线观看网站| 91网页版在线登录入口| 欧美日本国产在线| 在线观看色视频| 欧美激情一区二区三区在线| 教室别恋欧美无删减版| 免费在线播放av| 精品成人无码一区二区三区| 国产乱人伦精品一区二区在线观看| 成人av观看| 暖暖视频日本免费| 粉嫩小泬无遮挡久久久久久| 人人妻人人澡人人爽精品欧美一区| 久久国产精品久久久久久电车| 中文字幕在线观看免费视频| 日韩在线你懂的| 夜色资源站国产www在线视频| 色黄网站在线观看| 激情欧美一区二区三区在线观看| 日韩av在线播放观看| 日韩一区二区三区在线播放| 亚洲韩国欧洲国产日产av| 国产一二区在线观看| 欧美黑人xxxxx性受| av不卡在线看| 亚洲成av人影院| 美日韩精品免费视频| 天天综合网天天做天天受| 欧美区一区二| www.99视频| 色琪琪丁香婷婷综合久久| 亚洲人成高清| 性网站在线看| 亚洲精品日产精品乱码不卡| av免费看网址| 亚洲人成五月天| 六月婷婷激情网| 国产熟妇搡bbbb搡bbbb| 日本不卡123| 亚洲精品电影在线一区| 久久久久高清| 美女被艹视频网站| 一区二区激情视频| 欧美精品久久久久久久久久久| 粉嫩粉嫩芽的虎白女18在线视频|