PHP怎么删除字符串最后一个字符?

回复

PHPzkbhj 回复了问题 • 1 人关注 • 1 个回复 • 3995 次浏览 • 2017-11-30 18:06 • 来自相关话题

MySQL中的in查询,如何按期望的顺序排序?

回复

数据库zkbhj 回复了问题 • 1 人关注 • 1 个回复 • 4311 次浏览 • 2017-11-28 21:31 • 来自相关话题

新闻单词NEWS的由来是什么?

回复

单词本zkbhj 回复了问题 • 1 人关注 • 1 个回复 • 4762 次浏览 • 2017-11-28 13:13 • 来自相关话题

什么是LDAP?和LAMP啥关系?

回复

专业名词zkbhj 回复了问题 • 1 人关注 • 1 个回复 • 2611 次浏览 • 2017-11-27 17:23 • 来自相关话题

鸟哥惠新宸分享总结(未完结,还在整理中)

总结zkbhj 发表了文章 • 0 个评论 • 1604 次浏览 • 2017-11-26 17:05 • 来自相关话题

目前整理至分享的:26分钟
 
目标明确
如果一个人在35岁之前还没怎么样,就需要认真想一想了。
一个人从刚毕业,到技术有一定高度的时间大概是5年,因为5年后的精力大不如前(结婚、生子),五年内要深耕技术,那么是否有捷径可以走?但是五年内又不能把所有技术都弄回,毕竟精力有限,所以这个时候明确的目标就很有必要!
例子,一个人想要学算法,首先要学c语言,先装个linux,然后搞一套ide,最后去研究ide了。
所以目标一定要明确。无论是短期目标还是长期目标。比如,年底想要自己的薪资水平达到多少?
在学校的时候,我一定要是班级里最优秀的人。
工作的时候,一定要成为团队里最优秀的人。
只有确定了目标,才能围绕着这个目标,让自己思考可以去做些什么,才能达成自己的目标。

要去做一些没人干的、差异化的事情,成为第一个,更有可能去成功,使之成为自己的独特的竞争力。比如在一个公司里,让自己成为一个不可替代的角色。只有这种事情才更容易出成绩,才更有意义。

要做一个有野心的人
告诉别人你自己的野心,自己到底想要做什么。限制于中国的特点,羞于表达自己的野心。要当仁不让。该是自己的要去努力争取。
想要什么、争取什么,不要羞于表达,对周边的人要告诉他们自己想要的,这样才能让别人知道你的想法,无论是周边的同事还是自己的领导。
举了一个自己的例子————戒烟。其实需要借助身边人的监督来完成自己的野心。


消除干扰
如果目标已经明确。但是琐碎的需求特别多。
如果每天被生活的一些琐碎事情所困扰,则做一件事情会比较困难。
个人觉得人生成长金立最快的时候,是感情破裂的时间,想要转移自己的注意力,半年时间在雅虎,每天早上坐车718公交车从家到公司,恰巧有个机会要做封闭开发,项目做了两个月,但是半年都在那,每天什么都不想。每天9点干到每天半夜12点。
然后08年离开雅虎,每月7000元,但是比较享受物质生活,租了个3500左右的一居室房子,住了两个月之后,由于工资没有达到预期,结果自己的资金除了问题,每天愁于生计。这时候百度有一个机会,但是并不是和雅虎是个核心部门,但是当时目标很明确,就是要找一个工资高的工作。所以直接离开了雅虎,去了百度。
但是去了百度之后,也解决了另外一个问题,不用再担心信用卡怎么还?


所以,核心就是消除干扰,努力的把每天困扰自己的事情,要有意识地、有目的的有手段的把这些困扰自己的事情降低或者消除掉。一天的时间并不长,尤其是在北京,在路上,在一些其他琐碎事情,比如办个事情等,一天能留给自己的时间并不长。
要沉下心来,研究一个东西。比如每天从早上9点钟,一直到晚上12点,都沉下心来研究工作或者和工作相关的技术,因为技术都是相通的。


学习思考的方法
更需要学的是解决问题思考的方法,而不是解决问题的技能。
思维的高度,需要多看书,看书要以批判的角度去看。
所有东西都是权衡有度的,怎么去权衡,把度找到什么时机该做什么事情,遇到问题如何以前学到的方法和思路结合好。


自我激励
内向和外向的人怎么区分?
区分的标准是你的力量来自如哪里?当你困惑遇到挫折时,你是自己静一静来给自己附能,还是找一些人来吐槽一下,希望得到他人给你建议以及肯定。如果是后者,即为外向,前者则为内向。
有时候你也许会觉得自己在公司里做的项目不是核心项目啊,你的领导对自己有意见或者偏见啊,包括自己的下一步学习不知道要怎么办。。真正希望的是得到一句肯定,说现在没问题!

打破舒适区,对自己狠一点
在微博时,每三个月就觉得自己像是沙逼一样,什么都不懂什么都不会,所以有时候需要打击才能让他更有动力去提升自己。 查看全部
目前整理至分享的:26分钟
 
目标明确
如果一个人在35岁之前还没怎么样,就需要认真想一想了。
一个人从刚毕业,到技术有一定高度的时间大概是5年,因为5年后的精力大不如前(结婚、生子),五年内要深耕技术,那么是否有捷径可以走?但是五年内又不能把所有技术都弄回,毕竟精力有限,所以这个时候明确的目标就很有必要!
例子,一个人想要学算法,首先要学c语言,先装个linux,然后搞一套ide,最后去研究ide了。
所以目标一定要明确。无论是短期目标还是长期目标。比如,年底想要自己的薪资水平达到多少?
在学校的时候,我一定要是班级里最优秀的人。
工作的时候,一定要成为团队里最优秀的人。
只有确定了目标,才能围绕着这个目标,让自己思考可以去做些什么,才能达成自己的目标。

要去做一些没人干的、差异化的事情,成为第一个,更有可能去成功,使之成为自己的独特的竞争力。比如在一个公司里,让自己成为一个不可替代的角色。只有这种事情才更容易出成绩,才更有意义。

要做一个有野心的人
告诉别人你自己的野心,自己到底想要做什么。限制于中国的特点,羞于表达自己的野心。要当仁不让。该是自己的要去努力争取。
想要什么、争取什么,不要羞于表达,对周边的人要告诉他们自己想要的,这样才能让别人知道你的想法,无论是周边的同事还是自己的领导。
举了一个自己的例子————戒烟。其实需要借助身边人的监督来完成自己的野心。


消除干扰
如果目标已经明确。但是琐碎的需求特别多。
如果每天被生活的一些琐碎事情所困扰,则做一件事情会比较困难。
个人觉得人生成长金立最快的时候,是感情破裂的时间,想要转移自己的注意力,半年时间在雅虎,每天早上坐车718公交车从家到公司,恰巧有个机会要做封闭开发,项目做了两个月,但是半年都在那,每天什么都不想。每天9点干到每天半夜12点。
然后08年离开雅虎,每月7000元,但是比较享受物质生活,租了个3500左右的一居室房子,住了两个月之后,由于工资没有达到预期,结果自己的资金除了问题,每天愁于生计。这时候百度有一个机会,但是并不是和雅虎是个核心部门,但是当时目标很明确,就是要找一个工资高的工作。所以直接离开了雅虎,去了百度。
但是去了百度之后,也解决了另外一个问题,不用再担心信用卡怎么还?


所以,核心就是消除干扰,努力的把每天困扰自己的事情,要有意识地、有目的的有手段的把这些困扰自己的事情降低或者消除掉。一天的时间并不长,尤其是在北京,在路上,在一些其他琐碎事情,比如办个事情等,一天能留给自己的时间并不长。
要沉下心来,研究一个东西。比如每天从早上9点钟,一直到晚上12点,都沉下心来研究工作或者和工作相关的技术,因为技术都是相通的。


学习思考的方法
更需要学的是解决问题思考的方法,而不是解决问题的技能。
思维的高度,需要多看书,看书要以批判的角度去看。
所有东西都是权衡有度的,怎么去权衡,把度找到什么时机该做什么事情,遇到问题如何以前学到的方法和思路结合好。


自我激励
内向和外向的人怎么区分?
区分的标准是你的力量来自如哪里?当你困惑遇到挫折时,你是自己静一静来给自己附能,还是找一些人来吐槽一下,希望得到他人给你建议以及肯定。如果是后者,即为外向,前者则为内向。
有时候你也许会觉得自己在公司里做的项目不是核心项目啊,你的领导对自己有意见或者偏见啊,包括自己的下一步学习不知道要怎么办。。真正希望的是得到一句肯定,说现在没问题!

打破舒适区,对自己狠一点
在微博时,每三个月就觉得自己像是沙逼一样,什么都不懂什么都不会,所以有时候需要打击才能让他更有动力去提升自己。

最近在看的《急诊科医生》里,每次抢救心脏停止的人时,都会1mg肾上腺素静推,是什么原理?

回复

健康zkbhj 回复了问题 • 1 人关注 • 1 个回复 • 4681 次浏览 • 2017-11-26 14:55 • 来自相关话题

路由跟踪命令是什么?

回复

常识zkbhj 回复了问题 • 1 人关注 • 1 个回复 • 3015 次浏览 • 2017-11-24 15:26 • 来自相关话题

HTTP中的GET和POST的区别

专业名词zkbhj 发表了文章 • 0 个评论 • 1373 次浏览 • 2017-11-24 14:58 • 来自相关话题

Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。

1.根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的。
 
(1).所谓安全的意味着该操作用于获取信息而非修改信息。换句话说,GET 请求一般不应产生副作用。就是说,它仅仅是获取资源信息,就像数据库查询一样,不会修改,增加数据,不会影响资源的状态。

* 注意:这里安全的含义仅仅是指是非修改信息。
 (2).幂等的意味着对同一URL的多个请求应该返回同样的结果。这里我再解释一下幂等这个概念:

幂等(idempotent、idempotence)是一个数学或计算机学概念,常见于抽象代数中。
幂等有一下几种定义:
对于单目运算,如果一个运算对于在范围内的所有的一个数多次进行该运算所得的结果和进行一次该运算所得的结果是一样的,那么我们就称该运算是幂等的。比如绝对值运算就是一个例子,在实数集中,有abs(a)=abs(abs(a))。
对于双目运算,则要求当参与运算的两个值是等值的情况下,如果满足运算结果与参与运算的两个值相等,则称该运算幂等,如求两个数的最大值的函数,有在在实数集中幂等,即max(x,x) = x。

 
看完上述解释后,应该可以理解GET幂等的含义了。
但在实际应用中,以上2条规定并没有这么严格。引用别人文章的例子:比如,新闻站点的头版不断更新。虽然第二次请求会返回不同的一批新闻,该操作仍然被认为是安全的和幂等的,因为它总是返回当前的新闻。从根本上说,如果目标是当用户打开一个链接时,他可以确信从自身的角度来看没有改变资源即可。
 
2.根据HTTP规范,POST表示可能修改变服务器上的资源的请求。
 
继续引用上面的例子:还是新闻以网站为例,读者对新闻发表自己的评论应该通过POST实现,因为在评论提交后站点的资源已经不同了,或者说资源被修改了。

上面大概说了一下HTTP规范中GET和POST的一些原理性的问题。但在实际的做的时候,很多人却没有按照HTTP规范去做,导致这个问题的原因有很多,比如说: 
1.很多人贪方便,更新资源时用了GET,因为用POST必须要到FORM(表单),这样会麻烦一点。

2.对资源的增,删,改,查操作,其实都可以通过GET/POST完成,不需要用到PUT和DELETE。

3.另外一个是,早期的Web MVC框架设计者们并没有有意识地将URL当作抽象的资源来看待和设计,所以导致一个比较严重的问题是传统的Web MVC框架基本上都只支持GET和POST两种HTTP方法,而不支持PUT和DELETE方法。
 
* 简单解释一下MVC:MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。

以上3点典型地描述了老一套的风格(没有严格遵守HTTP规范),随着架构的发展,现在出现REST(Representational State Transfer),一套支持HTTP规范的新风格,这里不多说了,可以参考《RESTful Web Services》。
 
说完原理性的问题,我们再从表面现像上面看看GET和POST的区别:
 
1.GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以&相连,如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0%E5%A5%BD。如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII。

POST把提交的数据则放置在是HTTP包的包体中。

2."GET方式提交的数据最多只能是1024字节,理论上POST没有限制,可传较大量的数据,IIS4中最大为80KB,IIS5中为100KB"??!

以上这句是我从其他文章转过来的,其实这样说是错误的,不准确的:

(1).首先是"GET方式提交的数据最多只能是1024字节",因为GET是通过URL提交数据,那么GET可提交的数据量就跟URL的长度有直接关系了。而实际上,URL不存在参数上限的问题,HTTP协议规范没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持。

注意这是限制是整个URL长度,而不仅仅是你的参数值数据长度。[见参考资料5]

(2).理论上讲,POST是没有大小限制的,HTTP协议规范也没有进行大小限制,说“POST数据量存在80K/100K的大小限制”是不准确的,POST数据是没有限制的,起限制作用的是服务器的处理程序的处理能力。

对于ASP程序,Request对象处理每个表单域时存在100K的数据长度限制。但如果使用Request.BinaryRead则没有这个限制。

由这个延伸出去,对于IIS 6.0,微软出于安全考虑,加大了限制。我们还需要注意:

1).IIS 6.0默认ASP POST数据量最大为200KB,每个表单域限制是100KB。
2).IIS 6.0默认上传文件的最大大小是4MB。
3).IIS 6.0默认最大请求头是16KB。
IIS 6.0之前没有这些限制。[见参考资料5]

所以上面的80K,100K可能只是默认值而已(注:关于IIS4和IIS5的参数,我还没有确认),但肯定是可以自己设置的。由于每个版本的IIS对这些参数的默认值都不一样,具体请参考相关的IIS配置文档。

3.在ASP中,服务端获取GET请求参数用Request.QueryString,获取POST请求参数用Request.Form。在JSP中,用request.getParameter(\"XXXX\")来获取,虽然jsp中也有request.getQueryString()方法,但使用起来比较麻烦,比如:传一个test.jsp?name=hyddd&password=hyddd,用request.getQueryString()得到的是:name=hyddd&password=hyddd。在PHP中,可以用$_GET和$_POST分别获取GET和POST中的数据,而$_REQUEST则可以获取GET和POST两种请求中的数据。值得注意的是,JSP中使用request和PHP中使用$_REQUEST都会有隐患,这个下次再写个文章总结。

4.POST的安全性要比GET的安全性高。注意:这里所说的安全性和上面GET提到的“安全”不是同个概念。上面“安全”的含义仅仅是不作数据修改,而这里安全的含义是真正的Security的含义,比如:通过GET提交数据,用户名和密码将明文出现在URL上,因为(1)登录页面有可能被浏览器缓存,(2)其他人查看浏览器的历史纪录,那么别人就可以拿到你的账号和密码了,除此之外,使用GET提交数据还可能会造成Cross-site request forgery攻击。

总结一下,Get是向服务器发索取数据的一种请求,而Post是向服务器提交数据的一种请求,在FORM(表单)中,Method默认为"GET",实质上,GET和POST只是发送机制不同,并不是一个取一个发!
 
原文地址:https://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html
  查看全部
Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。

1.根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的。
 
(1).所谓安全的意味着该操作用于获取信息而非修改信息。换句话说,GET 请求一般不应产生副作用。就是说,它仅仅是获取资源信息,就像数据库查询一样,不会修改,增加数据,不会影响资源的状态。

* 注意:这里安全的含义仅仅是指是非修改信息。
 (2).幂等的意味着对同一URL的多个请求应该返回同样的结果。这里我再解释一下幂等这个概念:


幂等(idempotent、idempotence)是一个数学或计算机学概念,常见于抽象代数中。
幂等有一下几种定义:
对于单目运算,如果一个运算对于在范围内的所有的一个数多次进行该运算所得的结果和进行一次该运算所得的结果是一样的,那么我们就称该运算是幂等的。比如绝对值运算就是一个例子,在实数集中,有abs(a)=abs(abs(a))。
对于双目运算,则要求当参与运算的两个值是等值的情况下,如果满足运算结果与参与运算的两个值相等,则称该运算幂等,如求两个数的最大值的函数,有在在实数集中幂等,即max(x,x) = x。


 
看完上述解释后,应该可以理解GET幂等的含义了。
但在实际应用中,以上2条规定并没有这么严格。引用别人文章的例子:比如,新闻站点的头版不断更新。虽然第二次请求会返回不同的一批新闻,该操作仍然被认为是安全的和幂等的,因为它总是返回当前的新闻。从根本上说,如果目标是当用户打开一个链接时,他可以确信从自身的角度来看没有改变资源即可。
 
2.根据HTTP规范,POST表示可能修改变服务器上的资源的请求。
 
继续引用上面的例子:还是新闻以网站为例,读者对新闻发表自己的评论应该通过POST实现,因为在评论提交后站点的资源已经不同了,或者说资源被修改了。

上面大概说了一下HTTP规范中GET和POST的一些原理性的问题。但在实际的做的时候,很多人却没有按照HTTP规范去做,导致这个问题的原因有很多,比如说: 
1.很多人贪方便,更新资源时用了GET,因为用POST必须要到FORM(表单),这样会麻烦一点。

2.对资源的增,删,改,查操作,其实都可以通过GET/POST完成,不需要用到PUT和DELETE。

3.另外一个是,早期的Web MVC框架设计者们并没有有意识地将URL当作抽象的资源来看待和设计,所以导致一个比较严重的问题是传统的Web MVC框架基本上都只支持GET和POST两种HTTP方法,而不支持PUT和DELETE方法。
 
* 简单解释一下MVC:MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。

以上3点典型地描述了老一套的风格(没有严格遵守HTTP规范),随着架构的发展,现在出现REST(Representational State Transfer),一套支持HTTP规范的新风格,这里不多说了,可以参考《RESTful Web Services》。
 
说完原理性的问题,我们再从表面现像上面看看GET和POST的区别:
 
1.GET请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间以&相连,如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0%E5%A5%BD。如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII。

POST把提交的数据则放置在是HTTP包的包体中。

2."GET方式提交的数据最多只能是1024字节,理论上POST没有限制,可传较大量的数据,IIS4中最大为80KB,IIS5中为100KB"??!

以上这句是我从其他文章转过来的,其实这样说是错误的,不准确的:

(1).首先是"GET方式提交的数据最多只能是1024字节",因为GET是通过URL提交数据,那么GET可提交的数据量就跟URL的长度有直接关系了。而实际上,URL不存在参数上限的问题,HTTP协议规范没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持。

注意这是限制是整个URL长度,而不仅仅是你的参数值数据长度。[见参考资料5]

(2).理论上讲,POST是没有大小限制的,HTTP协议规范也没有进行大小限制,说“POST数据量存在80K/100K的大小限制”是不准确的,POST数据是没有限制的,起限制作用的是服务器的处理程序的处理能力。

对于ASP程序,Request对象处理每个表单域时存在100K的数据长度限制。但如果使用Request.BinaryRead则没有这个限制。

由这个延伸出去,对于IIS 6.0,微软出于安全考虑,加大了限制。我们还需要注意:

1).IIS 6.0默认ASP POST数据量最大为200KB,每个表单域限制是100KB。
2).IIS 6.0默认上传文件的最大大小是4MB。
3).IIS 6.0默认最大请求头是16KB。
IIS 6.0之前没有这些限制。[见参考资料5]

所以上面的80K,100K可能只是默认值而已(注:关于IIS4和IIS5的参数,我还没有确认),但肯定是可以自己设置的。由于每个版本的IIS对这些参数的默认值都不一样,具体请参考相关的IIS配置文档。

3.在ASP中,服务端获取GET请求参数用Request.QueryString,获取POST请求参数用Request.Form。在JSP中,用request.getParameter(\"XXXX\")来获取,虽然jsp中也有request.getQueryString()方法,但使用起来比较麻烦,比如:传一个test.jsp?name=hyddd&password=hyddd,用request.getQueryString()得到的是:name=hyddd&password=hyddd。在PHP中,可以用$_GET和$_POST分别获取GET和POST中的数据,而$_REQUEST则可以获取GET和POST两种请求中的数据。值得注意的是,JSP中使用request和PHP中使用$_REQUEST都会有隐患,这个下次再写个文章总结。

4.POST的安全性要比GET的安全性高。注意:这里所说的安全性和上面GET提到的“安全”不是同个概念。上面“安全”的含义仅仅是不作数据修改,而这里安全的含义是真正的Security的含义,比如:通过GET提交数据,用户名和密码将明文出现在URL上,因为(1)登录页面有可能被浏览器缓存,(2)其他人查看浏览器的历史纪录,那么别人就可以拿到你的账号和密码了,除此之外,使用GET提交数据还可能会造成Cross-site request forgery攻击。

总结一下,Get是向服务器发索取数据的一种请求,而Post是向服务器提交数据的一种请求,在FORM(表单)中,Method默认为"GET",实质上,GET和POST只是发送机制不同,并不是一个取一个发!
 
原文地址:https://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html
 

稍后阅读

随手记zkbhj 发表了文章 • 0 个评论 • 2922 次浏览 • 2017-11-23 18:53 • 来自相关话题

1、2017年11月23日
https://www.zhihu.com/question/22578751
https://linux.cn/article-9057-1.html
http://www.jianshu.com/p/569a72779461
  查看全部

一般B2C电商的卡券系统设计

架构思想zkbhj 发表了文章 • 0 个评论 • 1573 次浏览 • 2017-11-23 17:13 • 来自相关话题

大家对优惠券应该都比较熟悉,有过网购经验的人应该都用过,优惠券也是商家促销一种常用的手段,今天来跟大家介绍下B2C平台优惠券一般都是如何设计的。

优惠券其实本质是一种代金券,用户可以通过各种渠道获得(下单返券、活动领券,系统赠券,线下广告单等),在下单的时候使用,可以抵扣全部或者部分订单金额。

分类方式

现实中我们在各大平台上遇到各种各样的优惠券,这里稍作总结,可以按照如下方式分为3大类。

1.使用方式

个人优惠券:与用户帐号绑定,不可转让,限本人使用,使用时从账户列表中选择,我们绝大多数使用的优惠券都是这种形式。
公共优惠券:不与用户帐号绑定,有代码即可使用,使用时需要输入代码。这种一般在线下推广中用的比较多,广告传单上印号优惠券码让用户输入券码到线上使用。

2.商品适用范围

按照商品范围分又可以分为如下几类,从各种维度对商品进行组合。

整网优惠券:购买所有正价商品均可使用。这种券不限制商品范围,所有商品都可以购买,除了个别商品,这种个别商品一般会在商详上注明不能使用任何优惠券。
类目优惠券:购买优惠券指定类别的商品即可使用,除个别特殊商品。
品牌优惠券:购买优惠券指定品牌的商品时可使用,除个别特殊商品。按照品牌或者品类设置优惠券范围是比较常见的方式。
商品优惠券:购买优惠券指定商品时可使用,这种优惠券一般只针对少量特殊商品可以使用。
客户端专享券:app专享、H5专享等。这种一般在做APP推广的时候比较常用。
平台专享券:自营券、联营券。对于类似京东这种电商平台既有自营商品又有联营POP商品也会存在按照平台区分使用的优惠券。

3.是否有使用门槛

现金券:不限制订单金额,可以直接使用。
满减券:订单金额需要满足一定的最低额度才可使用,例如:满100减10元优惠券。

发放渠道

对于这些优惠券又有很多种发放渠道,总结来说大概有以下几类。

1.用户主动领取

用户通过活动页主动领取,这是最常用的券的获取方式。一般是在活动页面或者是商详页上。下图为京东的领券中心,将所有的券聚合在一起方便用户挑选有需要的券。





 
2.客服发券

为安抚、补偿客户,客服通过运营后台给指定用户发券。这个渠道知道的人应该不是很多,一般出现售后问题时并且是平台商自己的责任,客服为了安抚客户会给客户一定的补偿,这种补偿一般都是现金券。

3.系统发券

运营通过后台批量发券,通常是通过搞外部活动,收集到参与活动的uid或手机号进行定向发券。不知道大家有没有这种体验,一般在大促之前,我们之前注册过的各种电商平台都会给我们推送N多短信,提醒我们说“给您的账号里面发送了XX元优惠券,请在XX日期前登陆XX网站尽快使用”。

4.促销系统发券







单品赠券

这是一种促销方式,购买某个商品赠送指定优惠券。
 满返券

这也是一种比较常见的促销手段,提升复购率的一种比较有效的方式,通常是在购买特定范围的商品达到一定的金额后即自动返给用户特定的优惠券,这种券一般都是满减券。

优惠券生命周期

上面介绍了优惠券的几种常见类型和发放渠道,下面来介绍下优惠券的生命周期,基本上就是经过了创建、投放、领取、消耗/回收、统计分析。我们按照这个生命周期看下每个环节如何设计的。
 





 
创建券流程

制券的流程涉及到优惠券具体有哪些属性,正常制券至少应该包括如下几个信息: 
资源投入方:即谁来提供这批券的资源。券的类别:私有券 or 公共券。优惠券的名称:这里可以根据活动进行定制。优惠券的类型:满减 or 现金券。优惠券的面值,若是满减券的话需要达到条件的满减金额是多少?发行数量:即这个批次的券一共要发放多少张?优惠券的生效时间:这个比较好理解了,就是券是从什么时候生效到什么时候失效。用户限领次数:一个用户最多允许领取几次,一般情况下一个用户都是只允许领取一次。细致点还会再分每天用户可以领取几次。参与商品:这里就要确定下这个优惠券使用哪些商品。可以按照上面提到的几个维度进行筛选,例如按照品牌或者品类进行筛选商品范围。

这里还要考虑个稍微复杂点的场景是排除商品,可能某个品类里的商品绝大多数都可以使用这个优惠券,但是个别商品不能使用,可能是爆款或者是毛利比较低或者是国家政策等等原因,这个时候需要允许增加一个排除的范围。

投放券

投放渠道还是比较多的,上面也提到了几种主要领券的方式。

领券

领券对于用户来说比较简单,就是点击下鼠标领取优惠券,但实际这个简单的动作后台是有大量的逻辑需要运算。





  
用券

优惠券的用券场景主要在订单确认页,在订单确认页一般会根据用户选择的商品提示目前用户的优惠券账号里有哪些券可以使用。





 因为每张券都有一定的使用门槛,或者是限定某些商品范围的商品才能使用或者限定满足一定金额的商品才能使用,所以尽管你的账号里面有很多优惠券,但在每次确认页结算时会由于你购买商品的不同导致你可以使用的优惠券也不同。这里会给用户造成比较大的迷惑,我账号里面有10张优惠券,每次结算的时候都需要用户自己去计算这次可以使用哪一张比较划算,对小白用户来说挑战还是比较大的,所以主流的电商平台都是帮用户计算好,根据用户选择的商品结合用户账号里的优惠券列表进行计算,帮助用户选出本次订单可以使用的优惠券。

具体的计算可用优惠券流程具体如下:





 
在查出可用券后真正用券的流程相对比较简单,提交订单后将用户选择的优惠券进行扣减。这里涉及到一个扣减优惠券的时机,是在生成订单的时候就进行扣减?还是用户支付后进行扣减?这个作为一个讨论的问题,有兴趣的可以留言交流下。

统计分析

发券的目的是为了提升销售,那么发的这些券到底有没有提升销售?对毛利率影响如何?每张订单用的这个券是谁发的?给谁用了?这都是需要进行一些列的事后的分析,这样才能计算出来这批券发的是否有意义,这里涉及比较多的财务核算的流程,本人对此领域不太擅长,为了避免误导大家这个流程就不过介绍了,有内行朋友欢迎留言指教。 
原文地址:http://www.yixieshi.com/74900.html
系列延展阅读:http://www.jianshu.com/p/528437a2042b 查看全部
大家对优惠券应该都比较熟悉,有过网购经验的人应该都用过,优惠券也是商家促销一种常用的手段,今天来跟大家介绍下B2C平台优惠券一般都是如何设计的。

优惠券其实本质是一种代金券,用户可以通过各种渠道获得(下单返券、活动领券,系统赠券,线下广告单等),在下单的时候使用,可以抵扣全部或者部分订单金额。

分类方式

现实中我们在各大平台上遇到各种各样的优惠券,这里稍作总结,可以按照如下方式分为3大类。

1.使用方式

个人优惠券:与用户帐号绑定,不可转让,限本人使用,使用时从账户列表中选择,我们绝大多数使用的优惠券都是这种形式。
公共优惠券:不与用户帐号绑定,有代码即可使用,使用时需要输入代码。这种一般在线下推广中用的比较多,广告传单上印号优惠券码让用户输入券码到线上使用。

2.商品适用范围

按照商品范围分又可以分为如下几类,从各种维度对商品进行组合。

整网优惠券:购买所有正价商品均可使用。这种券不限制商品范围,所有商品都可以购买,除了个别商品,这种个别商品一般会在商详上注明不能使用任何优惠券。
类目优惠券:购买优惠券指定类别的商品即可使用,除个别特殊商品。
品牌优惠券:购买优惠券指定品牌的商品时可使用,除个别特殊商品。按照品牌或者品类设置优惠券范围是比较常见的方式。
商品优惠券:购买优惠券指定商品时可使用,这种优惠券一般只针对少量特殊商品可以使用。
客户端专享券:app专享、H5专享等。这种一般在做APP推广的时候比较常用。
平台专享券:自营券、联营券。对于类似京东这种电商平台既有自营商品又有联营POP商品也会存在按照平台区分使用的优惠券。

3.是否有使用门槛

现金券:不限制订单金额,可以直接使用。
满减券:订单金额需要满足一定的最低额度才可使用,例如:满100减10元优惠券。

发放渠道

对于这些优惠券又有很多种发放渠道,总结来说大概有以下几类。

1.用户主动领取

用户通过活动页主动领取,这是最常用的券的获取方式。一般是在活动页面或者是商详页上。下图为京东的领券中心,将所有的券聚合在一起方便用户挑选有需要的券。

微信图片_20171123170625.jpg

 
2.客服发券

为安抚、补偿客户,客服通过运营后台给指定用户发券。这个渠道知道的人应该不是很多,一般出现售后问题时并且是平台商自己的责任,客服为了安抚客户会给客户一定的补偿,这种补偿一般都是现金券。

3.系统发券

运营通过后台批量发券,通常是通过搞外部活动,收集到参与活动的uid或手机号进行定向发券。不知道大家有没有这种体验,一般在大促之前,我们之前注册过的各种电商平台都会给我们推送N多短信,提醒我们说“给您的账号里面发送了XX元优惠券,请在XX日期前登陆XX网站尽快使用”。

4.促销系统发券


321.png


单品赠券

这是一种促销方式,购买某个商品赠送指定优惠券。
 满返券

这也是一种比较常见的促销手段,提升复购率的一种比较有效的方式,通常是在购买特定范围的商品达到一定的金额后即自动返给用户特定的优惠券,这种券一般都是满减券。

优惠券生命周期

上面介绍了优惠券的几种常见类型和发放渠道,下面来介绍下优惠券的生命周期,基本上就是经过了创建、投放、领取、消耗/回收、统计分析。我们按照这个生命周期看下每个环节如何设计的。
 

419.png

 
创建券流程

制券的流程涉及到优惠券具体有哪些属性,正常制券至少应该包括如下几个信息: 
  1. 资源投入方:即谁来提供这批券的资源。
  2. 券的类别:私有券 or 公共券。
  3. 优惠券的名称:这里可以根据活动进行定制。
  4. 优惠券的类型:满减 or 现金券。
  5. 优惠券的面值,若是满减券的话需要达到条件的满减金额是多少?
  6. 发行数量:即这个批次的券一共要发放多少张?
  7. 优惠券的生效时间:这个比较好理解了,就是券是从什么时候生效到什么时候失效。
  8. 用户限领次数:一个用户最多允许领取几次,一般情况下一个用户都是只允许领取一次。细致点还会再分每天用户可以领取几次。
  9. 参与商品:这里就要确定下这个优惠券使用哪些商品。可以按照上面提到的几个维度进行筛选,例如按照品牌或者品类进行筛选商品范围。


这里还要考虑个稍微复杂点的场景是排除商品,可能某个品类里的商品绝大多数都可以使用这个优惠券,但是个别商品不能使用,可能是爆款或者是毛利比较低或者是国家政策等等原因,这个时候需要允许增加一个排除的范围。

投放券

投放渠道还是比较多的,上面也提到了几种主要领券的方式。

领券

领券对于用户来说比较简单,就是点击下鼠标领取优惠券,但实际这个简单的动作后台是有大量的逻辑需要运算。

518.png

  
用券

优惠券的用券场景主要在订单确认页,在订单确认页一般会根据用户选择的商品提示目前用户的优惠券账号里有哪些券可以使用。

微信图片_20171123171138.jpg

 因为每张券都有一定的使用门槛,或者是限定某些商品范围的商品才能使用或者限定满足一定金额的商品才能使用,所以尽管你的账号里面有很多优惠券,但在每次确认页结算时会由于你购买商品的不同导致你可以使用的优惠券也不同。这里会给用户造成比较大的迷惑,我账号里面有10张优惠券,每次结算的时候都需要用户自己去计算这次可以使用哪一张比较划算,对小白用户来说挑战还是比较大的,所以主流的电商平台都是帮用户计算好,根据用户选择的商品结合用户账号里的优惠券列表进行计算,帮助用户选出本次订单可以使用的优惠券。

具体的计算可用优惠券流程具体如下:

79.png

 
在查出可用券后真正用券的流程相对比较简单,提交订单后将用户选择的优惠券进行扣减。这里涉及到一个扣减优惠券的时机,是在生成订单的时候就进行扣减?还是用户支付后进行扣减?这个作为一个讨论的问题,有兴趣的可以留言交流下。

统计分析

发券的目的是为了提升销售,那么发的这些券到底有没有提升销售?对毛利率影响如何?每张订单用的这个券是谁发的?给谁用了?这都是需要进行一些列的事后的分析,这样才能计算出来这批券发的是否有意义,这里涉及比较多的财务核算的流程,本人对此领域不太擅长,为了避免误导大家这个流程就不过介绍了,有内行朋友欢迎留言指教。 
原文地址:http://www.yixieshi.com/74900.html
系列延展阅读:http://www.jianshu.com/p/528437a2042b