深深通晓ajax体系第八篇——表单提交

前方的话

  在从前,网站的用户与后端交互的重点措施是由此HTML表单的采取。表单的引入在1993年,由于其简单性和易用性,直到电子商务出现在此以前一向维持着举足轻重地方。领悟表单提交,对于更透彻地领悟ajax是有利益的。下边将详细介绍表单模式的相互

 

里2017财年(2016.3-2017.3)的交易额是3.767万亿,京东2016年是9392亿,合计4.7万亿,二零一七年比起提升25%,就是5.88万亿,假如阿里和京东占所有中国电商市场份额的90%,那么二零一七年中国电商交易额是6.536万亿元,也就是1万亿新币。

树立表单

  表单处理是一个多线程。首先创制一个表单,以供用户输入详细的伸手音信。接着,输入的数目被发送到网页服务器,在服务器里那一个数量拿到编译和不当检测。如若PHP代码标识出一个或多少个需要重点输入的字段,则含有相关错误新闻的表单会再也呈现。当精确的输入音讯满足代码的需要时,代码会动用一些调用数据库的行事,如输入购物的底细

  [注意]至于HTML表单元素的详细消息运动至此

  要白手起家一个表单,至少需要以下多少个要素:一个form元素、一个点名GET或POST方法的交给项目、一个或四个输入字段,以及表单数据交到的目标地址URL

<form action="http://www.w3school.com.cn/demo/welcome.php">
    Name:
    <input name="name"><br>
    Email:
    <input name="email"><br>
    <input type="submit">
</form>

 

我们或许对1万亿泰铢没有概念,美国商务部数码二零一七年第二季度网络零售销售额达到了1115.4亿美金,比二〇一八年同期的960.1亿美金提升了16.2%。依据零售销售的概念,电子商务占总数的8.2%。剔除掉燃油和汽车销售,美利坚同盟国在线零售占零售市场份额12.4%。

表单处理

  PHP 超全局变量 $_GET 和 $_POST 用于收集表单数据(form-data)

  GET 和 POST 都创立数组(例如,array( key => value, key2 =>
value2, key3 => value3,
…))。此数组包含键/值对,其中的键是表单控件的称号,而值是缘于用户的输入数据。

  GET 和 POST 被视作 $_GET 和
$_POST。它们是超全局变量,这意味对它们的拜访无需考虑功效域,即无需任何特别代码,可以从任何函数、类或文件访问它们

  $_GET 是由此 URL
参数传递到最近剧本的变量数组

  $_POST 是透过 HTTP POST
传递到当下剧本的变量数组

  通过 GET
方法从表单发送的音讯对任谁都是可见的(所有变量名和值都突显在 URL
中)。GET对所发送信息的数额也有限量。限制在抢先2000个字符。可是,由于变量展现在
URL 中,把页面添加到书签中也愈发有利

  通过 POST 方法从表单发送的信息对其外人是不可见的(所有名称/值会被停放
HTTP 请求的核心中),并且对所发送信息的多少也无界定。此外 POST
匡助高阶功用,比如在向服务器上传文件时举行 multi-part
二进制输入。但是,由于变量未显示在 URL
中,也就不能将页面添加到书签。一般地,使用 POST 来发送表单数据

【post】

<!-- 提交页 -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<form method="post" action="http://www.w3school.com.cn/demo/welcome.php">
    Name:
    <input name="name"><br>
    Email:
    <input name="email"><br>
    <input type="submit">
</form>
</body>
</html>

<!-- 响应页 -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    Welcome <?php echo $_POST["name"]; ?><br>
    Your email address is: <?php echo $_POST["email"]; ?>
</body>
</html>

【get】

  假设不安装form元素的method属性,则默认为get方法

<!-- 提交页 -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<form action="http://www.w3school.com.cn/demo/welcome_get.php">
    Name:
    <input name="name"><br>
    Email:
    <input name="email"><br>
    <input type="submit">
</form>
</body>
</html>

<!-- 响应页 -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    Welcome <?php echo $_GET["name"]; ?><br>
    Your email address is: <?php echo $_GET["email"]; ?>
</body>
</html>

 

中原电商层面1万亿加元,差不多是美利坚合众国市场的一倍以上,是U.S.A.零售市场层面的20%!

表单安全

  下边的代码很粗略。不过,最关键的内容被漏掉了。需要对表单数据举行表达,以预防脚本出现纰漏

  对 HTML 表单数据开展恰当的辨证对于制止黑客和垃圾邮件很重大

字段           验证规则
Name           必需。必须包含字母和空格。
E-mail         必需。必须包含有效的电子邮件地址(包含 @ 和 .)
Website        可选。如果选填,则必须包含有效的 URL。
Comment        可选。多行输入字段(文本框)
Gender         必需。必须选择一项。

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">

姓名:
<input type="text" name="name" value="">
* 
<br><br>
电邮:
<input type="text" name="email" value="">
* 
<br><br>
网址:
<input type="text" name="website" value="">

<br><br>
<label>
评论:
<textarea name="comment" rows="5" cols="40"></textarea>
<br><br>
性别:
<input type="radio" name="gender" value="female">女性
<input type="radio" name="gender" value="male">男性
* 
<br><br>
<input type="submit" name="submit" value="提交"> 
</form>

【$_SERVER[“PHP_SELF”]】

  $_SERVER[“PHP_SELF”]
是一种超全局变量,它回到当前施行脚本的文件名。由此,$_SERVER[“PHP_SELF”]
将表单数据发送到页面本身,而不是跳转到另一张页面。这样,用户就可知在表单页面得到错误指示音信

【XSS】

  $_SERVER[“PHP_SELF”]
变量可以被黑客利用。如若页面使用了PHP_SELF,用户可以输入下划线然后实施跨站点脚本(XSS)

  跨站点脚本(Cross-site
scripting,XSS)是一种统计机安全漏洞类型,常见于Web应用程序。XSS可以使攻击者向其他用户浏览的网页中输入客户端脚本

  假设”test_form.php” 的页面中有如下表单

<form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">

  现在,即使用户进入的是地点栏中正常的URL:”http://www.example.com/test\_form.php",上面的代码会转换为:

<form method="post" action="test_form.php">

  但是,假若用户在地方栏中键入了如下 URL:

http://www.example.com/test_form.php/%22%3E%3Cscript%3Ealert('hacked')%3C/script%3E

  在这种意况下,上边的代码会转换为:

<form method="post" action="test_form.php"/><script>alert('hacked')</script>

  那段代码出席了一段脚本和一个升迁命令。并且当此页面加载后,就会实施JavaScript代码(用户会看到一个指示框)。这然而是一个关于
PHP_SELF 变量怎么着被利用的大概无害案例

  <script>标签内可以添加此外JavaScript代码,黑客可以把用户重定向到另一台服务器上的某部文件,该公文中的恶意代码可以改变全局变量或将表单提交到其他地方以保留用户数据等

【htmlspecialchars()】

  倘使避免$_SERVER[“PHP_SELF”]被使用?通过行使
htmlspecialchars() 函数可以避免$_SERVER[“PHP_SELF”]被利用

  htmlspecialchars()函数把特殊字符转换为 HTML 实体。这代表 < 和
> 之类的HTML字符会被轮换为 < 和
>。这样可防范攻击者通过在表单中流入HTML或JavaScript代码(跨站点脚本攻击)对代码举行利用

  表单代码是这般的:

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">

  htmlspecialchars()把特殊字符转换为HTML实体。现在,如果用户准备利用PHP_SELF变量,会造成如下输出

<form method="post" action="test_form.php/"><script>alert('hacked')</script>">

  所以,验证表单要做的首先件事是由此PHP的htmlspecialchars()函数传递所有变量。在使用htmlspecialchars()函数后,假若用户准备在文本字段中付出以下内容:

<script>location.href('http://www.hacked.com')</script>

  代码不会实施,因为会被保留为转义代码,就像这样:

&lt;script&gt;location.href('http://www.hacked.com')&lt;/script&gt;

  现在这条代码显示在页面上或e-mail中是安全的

  在用户提交该表单时,我们还要做两件事:1、通过PHP的trim()函数去除用户输入数据中不必要的字符(多余的空格、制表符、换行);2、通过PHP的stripslashes()函数删除用户输入数据中的反斜杠(\)

  接下去自己创建一个反省函数,命名为
test_input(),通过test_input()函数检查每个$_POST变量

<?php
// 定义变量并设置为空值
$name = $email = $gender = $comment = $website = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = test_input($_POST["name"]);
$email = test_input($_POST["email"]);
$website = test_input($_POST["website"]);
$comment = test_input($_POST["comment"]);
$gender = test_input($_POST["gender"]);
}

function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>

 

电商GMV数据,有稍许可信度?电商创业公司刷的数目不可信,大商家的可信呢?不是有些可信度问题,而是一般人一直看不懂了,包括阿里的京东的友善人不肯定看的懂。我的情致是说您随手抓阿里和京东的人,问一问各家的GMV口径是什么样?十个有九个半答不出去。

错误音讯

  在底下的代码中追加了一部分新变量:$nameErr、$emailErr、$genderErr以及$websiteErr。这多少个不当变量会保留被呼吁字段的一无是处新闻。还为每个$_POST变量添加了一个if
else语句。这条语句通过PHP的empty()函数检查$_POST变量是否为空。即使为空,则错误信息会储存于不同的错误变量中。假诺不为空,则通过test_input()函数发送用户输入数据

<?php
// 定义变量并设置为空值
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
  if (empty($_POST["name"])) {
    $nameErr = "Name is required";
  } else {
    $name = test_input($_POST["name"]);
  }

  if (empty($_POST["email"])) {
    $emailErr = "Email is required";
  } else {
    $email = test_input($_POST["email"]);
  }

  if (empty($_POST["website"])) {
    $website = "";
  } else {
    $website = test_input($_POST["website"]);
  }

  if (empty($_POST["comment"])) {
    $comment = "";
  } else {
    $comment = test_input($_POST["comment"]);
  }

  if (empty($_POST["gender"])) {
    $genderErr = "Gender is required";
  } else {
    $gender = test_input($_POST["gender"]);
  }
}
?>

  在 HTML
表单中,在每个被呼吁字段后边扩张了几许剧本。假使需要,会转变恰当的失实音信(假使用户未填写必填字段就准备提交表单)

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">

Name: <input type="text" name="name">
* <?php echo $nameErr;?>
<br><br>
E-mail:
<input type="text" name="email">
* <?php echo $emailErr;?>
<br><br>
Website:
<input type="text" name="website">
<?php echo $websiteErr;?>
<br><br>
<label>Comment: <textarea name="comment" rows="5" cols="40"></textarea>
<br><br>
Gender:
<input type="radio" name="gender" value="female">Female
<input type="radio" name="gender" value="male">Male
* <?php echo $genderErr;?>
<br><br>
<input type="submit" name="submit" value="Submit"> 

</form>

 

乘胜阿里和京东增速进军线下零售市场,线上线下完善融合,纯电商的交易额意义会愈加弱化。对阿里和京东,紧要的不是电商市场份额,而是在中国的零售市场份额。阿里和京东的韬略已经转化全部零售市场的野心,而不在电商。有人说阿里不一样,已经国际化了,但看过数码都了解,海外工作占比还太小,三五年内还得看国内市场份额成败。

表单验证

  验证规则中,”Name”, “E-mail” 以及 “Gender”
字段是必要的。这个字段不能为空且必须在 HTML 表单中填入

【验证名字】

  以下代码检查name字段是否含有字母和空格。假诺name字段无效,则存储一条错误信息

$name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
  $nameErr = "只允许字母和空格!"; 
}

【验证 E-mail】

  以下代码展检查e-mail地址语法是否有效。假如无效则存储一条错误音讯

$email = test_input($_POST["email"]);
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)) {
  $emailErr = "无效的 email 格式!"; 
}

【验证 URL】

  以下代码检查URL地址语法是否管用。即使 URL
地址语法无效,则存储一条错误音讯

$website = test_input($_POST["website"]);
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%
=~_|]/i",$website)) {
  $websiteErr = "无效的 URL"; 
}

 

该文写于五个月前小密圈东哥电商社群,明日拿出来分享研讨一下。

保留值

  假诺需要在用户点击提交按钮后在输入字段中显示值,我们在以下输入字段的value属性中追加了一小段
PHP 脚本:name、email 以及 website。在 comment
文本框字段中,把脚本放到了 <textarea> 与 </textarea>
之间。这么些脚本输出$name、$email、$website 和 $comment 变量的值

  然后,还亟需出示选中了哪些单选按钮。对此,必须操作 checked
属性(而非单选按钮的 value 属性)

Name: <input type="text" name="name" value="<?php echo $name;?>">

E-mail: <input type="text" name="email" value="<?php echo $email;?>">

Website: <input type="text" name="website" value="<?php echo $website;?>">

Comment: <textarea name="comment" rows="5" cols="40"><?php echo $comment;?></textarea>

Gender:

<input type="radio" name="gender"
<?php if (isset($gender) && $gender=="female") echo "checked";?>
value="female">Female
<input type="radio" name="gender"
<?php if (isset($gender) && $gender=="male") echo "checked";?>
value="male">Male

 

一)繁荣

表单发送

  HTML网页的<form>元素可以以四种格式,向服务器发送数据

  使用POST方法,将enctype属性设为application/x-www-form-urlencoded,这是默认方法

<form action="register.php" method="post" onsubmit="AJAXSubmit(this); return false;"></form>

  使用POST方法,将enctype属性设为text/plain

<form action="register.php" method="post" enctype="text/plain" onsubmit="AJAXSubmit(this); return false;"></form>

  使用POST方法,将enctype属性设为multipart/form-data

<form action="register.php" method="post" enctype="multipart/form-data" onsubmit="AJAXSubmit(this); return false;"></form>

  使用GET方法,enctype属性将被忽视

<form action="register.php" method="get" onsubmit="AJAXSubmit(this); return false;"></form>

  某个表单有五个字段,分别是foo和baz,其中foo字段的值等于bar,baz字段的值是一个分成两行的字符串。下边四种艺术,都足以将以此表单发送到服务器

  第一种办法是默认方法,POST发送,Encoding
type为application/x-www-form-urlencoded

Content-Type: application/x-www-form-urlencoded
foo=bar&baz=The+first+line.&#37;0D%0AThe+second+line.%0D%0A

  第两种模式是POST发送,Encoding type为text/plain

Content-Type: text/plain

foo=bar
baz=The first line.
The second line.

  第二种办法是POST发送,Encoding type为multipart/form-data

Content-Type: multipart/form-data; boundary=---------------------------314911788813839

-----------------------------314911788813839
Content-Disposition: form-data; name="foo"

bar
-----------------------------314911788813839
Content-Disposition: form-data; name="baz"

The first line.
The second line.

-----------------------------314911788813839--

  第四种模式是GET请求

?foo=bar&baz=The%20first%20line.%0AThe%20second%20line

 

双11截至了,阿里1682亿,同比增长39%,京东1271亿,同比增长35%,此外看了苏宁易购、唯品会、Amazon中国,数据都很好。电商欣欣向荣。遵照现行各家披露的GMV数据,中国网购占比大约是14%左右,假设看物流包裹的增长状态来看,过去五年还有50%的平分增速。复合增长率是个非凡可怕的数字,依据这数字,用持续三五年,线上占比就得抢先30%上述,简直宇宙无敌。

一体化代码

<!DOCTYPE HTML> 
<html>
<head>
<style>
.error {color: #FF0000;}
</style>
</head>
<body> 

<?php
// 定义变量并设置为空值
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
   if (empty($_POST["name"])) {
     $nameErr = "姓名是必填的";
   } else {
     $name = test_input($_POST["name"]);
     // 检查姓名是否包含字母和空白字符
     if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
       $nameErr = "只允许字母和空格"; 
     }
   }

   if (empty($_POST["email"])) {
     $emailErr = "电邮是必填的";
   } else {
     $email = test_input($_POST["email"]);
     // 检查电子邮件地址语法是否有效
     if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)) {
       $emailErr = "无效的 email 格式"; 
     }
   }

   if (empty($_POST["website"])) {
     $website = "";
   } else {
     $website = test_input($_POST["website"]);
     // 检查 URL 地址语法是否有效(正则表达式也允许 URL 中的斜杠)
     if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
       $websiteErr = "无效的 URL"; 
     }
   }

   if (empty($_POST["comment"])) {
     $comment = "";
   } else {
     $comment = test_input($_POST["comment"]);
   }

   if (empty($_POST["gender"])) {
     $genderErr = "性别是必选的";
   } else {
     $gender = test_input($_POST["gender"]);
   }
}

function test_input($data) {
   $data = trim($data);
   $data = stripslashes($data);
   $data = htmlspecialchars($data);
   return $data;
}
?>

<p>* 必需的字段</p>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> 
   姓名:<input type="text" name="name" value="<?php echo $name;?>">
   * <?php echo $nameErr;?>
   <br><br>
   电邮:<input type="text" name="email" value="<?php echo $email;?>">
   * <?php echo $emailErr;?>
   <br><br>
   网址:<input type="text" name="website" value="<?php echo $website;?>">
   <?php echo $websiteErr;?>
   <br><br>
   评论:<textarea name="comment" rows="5" cols="40"><?php echo $comment;?></textarea>
   <br><br>
   性别:
    <input type="radio" name="gender"
    <?php if (isset($gender) && $gender=="female") echo "checked";?>
    value="female">女性
    <input type="radio" name="gender"
    <?php if (isset($gender) && $gender=="male") echo "checked";?>
    value="male">男性

   * <?php echo $genderErr;?>
   <br><br>
   <input type="submit" name="submit" value="提交"> 
</form>
</body>
</html>

越来越是看过美国的电商数据将来,中国仙逝5年电商接近以同比增速50%加强,的确太牛了。因为美利坚联邦合众国病逝五年,年均复合增长不超越20%,总是在12.5-16.5%里头。中国零售层面比美利坚同盟国小,而电商层面如故米国的一倍以上。结论很显明,中国电商对价值观零售的碰撞更大。

二)衰退

和发达反差的现实性,整个网购用户增速也就10%左右,对应网购增速应该是10%相比较正常,最多20%。而且从当年物流快递多少来看,网购增速其实早就显明下滑了,看了弹指间国家邮政总局的数量二〇一九年前十个月快递同比提升25.7%。京东获益同比增长了39.2%,但GMV同比提升32%,唯品会也是大半,其余独角兽也都磨蹭了,除了拼多多和云集微店这些少数的在迅速增长,第一大B2C天猫却一异常态,第三季度实物GMV逆势加速增长49%,这是咋做出来的?而且据我所知,九月份起来腾讯广大的封杀天猫客,而这有些交易额占到了阿里的10%交易额,增长很想得到。

三)Tmall的增速从何而来?

因为据我所知Tmall的DAU是很差的,天猫增速基本来自手淘流量划拨的。从实际项目看,已经丰硕强烈的取向。五年岁月,京东干趴了天猫的3C数码我们电,母婴和快消品(小家电阿里和京东旗鼓非常),也就是说在市场份额上遥遥领先天猫。Tmall的增进不能是从京东、唯品会这里抢来的。你说天猫只是靠衣装百货二零一九年GMV增速比京东还快,这是怎么可能发生的工作?时装整个线上的增速最多也就20%,大盘增量很少,又不可以从竞争对手得到,GMV数据涨的莫名其妙,除非是来自Tmall。
此外Taobao日子也难受,拼多多现在DAU和日订单量1500万笔都超越京东了,差不多二分之一个天猫,从用户群和货物结构基本和Taobao类似,Tmall也是要受到撞击的。Tmall加强,有且只有一个或者,从Taobao交易额里面切换的。

四)虚假

刷数据,现在阿里和京东都在做线下,也开端把线下业务的多寡计入到事情当中。当然这么些没有怎么错。只是阿里做的比京东狠多了,所谓新零售。淘宝线下超市(零售通),原来就是1688上面的B2B批发工作,那之后放大GMV数据就太容易了。京东的新通路,好歹仍旧要好货。新零售的主干价值之一就是有利于把用户和线下交易额统计到财报当中。由此,现在的电商交易额,和以往您以为的电商交易额,就不是五回事了!
在此以前我们谈到一个事务,很多小的创业公司为了融资,刷流水,直接去餐饮店什么的找小票,把订单全体刷到平台之中(最省钱的艺术)。其实某些大的电商平台也大多!只是做的从未有过那么蠢笨,人家要的不是几千万,要的是几百几千亿。

 五)调整标准

京东调整部分目的的原则,很大的一个原因,在于阿里也在调整基准,在散文上维持友好的领先优势,京东一定不可能吃亏,所以也随着调整标准,当然调整后仍然比阿里要严苛一些。按照阿里规范,京东大多是三分之一个阿里。最终调整后扩大的GMV,其实都是泡沫数据(首假如退货总结标准)没有什么样精神意义。投资人,看了也莫名其妙。因为整个网购的剧增用户也就10%左右,GMV是和用户增长低度关联,实际上行业增速也就20%左右。然后两家占市场份额90%之上的都说自己增速30%上述,一个还49%,何人信啊!都是总括出来的GDP!

六)如同GDP一样捉摸不定

解析并不便于,有网易粉丝说:“发现市面上大多数商量@京东 的篇章都是@李成东
写的。
”写关于京东的作品,每日都有几百篇,不管是软文,如故黑稿。但深度解析的稿子,正儿八经解读工作的,一年下来也就只是四五十篇。其中一半是我写的!世面上诸多写京东的稿子,数据差不多都是源于我收拾的资料。大多数人并不是太懒了,而是不够专注,并不知道在条分缕析京东,包括比较阿里,重点关注如何数据,数据从何地得到!阿里和京东表面上都是做电商的,其实不外乎情势不同等,在广大细节上都不平等。即使采纳同一个目标,两家都采取了不同的口径。 

七)琢磨电商GMV数据的意思在何地?

既然如此这多少个数量都是虚的,探究还有什么意思。当然有意义。其实自己想说的是,中国共同体的零售市场层面被低估了,而电商的其实规模被高估了,意味着电商渗透率并不曾那么高。这也就表示中国巨大的零售市场,仍然得以支撑阿里和京东,以及广大电商集团GMV高速增长好几年,我说的高速是20-30%。将中国电商在环球市场份额从现在的40%,进步到60%之上。而阿里和京东占据中国电商市场份额的90%上述,那么现在一个店家4880亿美元,一个是649亿美元,依旧比Amazon5992亿日币市值低,是不是被低估了?从投资来看,买阿里+京东股票组合肯定没得错的。

作品太长,很六人没耐心,该文揭橥在多少个月前的小密圈/知识星球,可以扫码参预,东哥电商社群/微信群,年前888元,年后1388元。现在已有160+电商和投资人朋友进入。

Leave a Comment.