php同时抢购 代码,PHP秒杀抢购问答题解决方案
拒绝黄牛
1、语意问答题
我们在做秒杀的的时候,在点击抢购按钮的时候,为了防止机器人和老黄牛自动抢购,会设置一系列的阻碍机器人请求的步骤。
像我们设置的问答就是典型的方案, 让机器人无法猜测到答案,只能通过人工去确认正确答案。 这样防止机器人自动抢购。
如下面的题图:
看到这个题目,人们很清楚的就能可以做出判断,机器人很难知道语义的意境。
为了防止机器人,
把问答的题目,每次活动都重新设置问答题目,这样就可以有效的防止机器人。
2、视听问答题
颜色、语音、图片
通过上面这两个说明,开阔了我们思维,真正要在项目中使用,还要进行代码的编写。
看程序代码
每一步的请求一定要关联起来,先请求 check__status 这个接口,如果这个接口请求成功,则 getQestion 获取问题,
这样做的好处,就是为了防止跳过接口、直接去后台请求。
问答题逻辑
1、获取到题目、随机选择一道题目
2、选择的题目获取题库中 随机的4道题
把这四道题种的一道题 的问题 和 答案 拿出来,
把剩下的三道题中的答案拿出来,和上边一题的答案 拼装在一个数组中,通过array_shffle 打乱顺序,返回。
把ask 答案通过一定的加密算法,同时返回到客户端
这里再次添加一个时间戳, 添加时间戳是 验证用户时长。
最后把整体题目 json 返回 。
可以明文返回用于渲染页面,但是不要包含答案;再密文返回一个包含答案的,验证答案的时候,提交密文到服务器。
3、验证问答题是否正确?
通过密文 得到问题、和答案, 验证用户提交的答案是否与正确答案一致,如果一致,放行。
否则提醒用户 问答 错误。
上边设置了一个时间,我们在验证正确答案的时候,这也是需要进行验证时间的,不要时间太长。 这里设置 300 秒
解决刷问题的方法
每个人获取到的问题数量是要限制的,否则很容易被全部获取和分析,失去问题的保密性
1、每个人生成问答题,是否有作答? 如果没有 则这次再次生成这个问题; 如果已经作答,回答是否正确?正确 则下一次
通过上面的模型,防止用户刷我们的题库、失去保密性。
至于问题 保存在哪里?
1、cookie 客户端 建议 保存在cookie
2、服务器端 ? 这个相对来说比较复杂
点触式验证码
php同时抢购 代码,PHP秒杀抢购问答题解决方案相关推荐
- php同时抢购 代码,php如何处理抢购类功能的高并发请求
在高并发请求下容易参数两个问题 1.数据出错,导致产品超卖. 2.频繁操作数据库,导致性能下降. 本文主要和大家详细介绍了php处理抢购类功能的高并发请求,具有一定的参考价值,感兴趣的小伙伴们可以参考 ...
- redis使用watch完成秒杀抢购功能
redis使用watch完成秒杀抢购功能: 使用redis中两个key完成秒杀抢购功能,mywatchkey用于存储抢购数量和mywatchlist用户存储抢购列表. 它的优点如下: 1. 首先选用内 ...
- 基于Redis实现的抢购代码示例
示例代码是基于博客 https://blog.csdn.net/qq1013598664/article/details/70183908的错误案例修改而来,如果有问题望多多指点,错误代码可以去原文查 ...
- 简单的redis使用watch完成秒杀抢购功能
2019独角兽企业重金招聘Python工程师标准>>> Redis使用watch完成秒杀抢购功能: 使用redis中两个key完成秒杀抢购功能,mywatchkey用于存储抢购数量和 ...
- 【黄啊码】php结合redis实现商城在线秒杀抢购
抢购.秒杀是如今很常见的一个应用场景,主要需要解决的问题有两个: 1 高并发对数据库产生的压力 2 竞争状态下如何解决库存的正确减少("超卖"问题) 对于第一个问题,已经很容易想到 ...
- java抢购_java redis 实现抢购秒杀
2018.10.24 今天研究了下抢购秒杀的功能实现 网上查了一大堆 用redis的最多. 主要是通过redis的 watch multi 事务来控制秒杀数量 不超卖. 这里说下自己的感受: 不超卖的 ...
- python 抢购还是js抢购好_一句JS帮你秒杀,抢购
标签: 刚刚看到一哥们儿写了一篇jquery插件之倒计时-团购秒杀 突然想到一个主意就是如题 想法:现在很多地方有类似秒杀,抢购等拼手速,网速的(其实就是服务器渣,如:某米), 很多人就想到可以写 ...
- Java商品秒杀抢购模拟双十一基础版
Java秒杀抢购 需要用到的技术 java多线程 Redis mysql数据库 Quartz定时器 用到的框架: SSM 整体项目结构: 前端页面不用我们写,我这里提源码项目自己下载 链接:https ...
- 秒杀抢购案例,基于 Redis 实现
目录 1.关于全局唯一 ID 生成器 1.1 需要满足的特性 1.2 代码实现 1.3 其他的唯一 ID 生成策略 2.实现秒杀下单 2.1 超卖问题的产生 2.2 超卖问题的分析与解决 2.21 悲 ...
最新文章
- 在Linux下怎样让top命令启动之后就按内存使用排序(或CPU使用排序)?
- 模块化编程AMDCommonJS
- 没有调查就没有发言权
- 方欣科技算法题面试:蛇形矩阵
- python学习-字符串格式化
- 鸟哥学习笔记六(基础篇第十一章)
- Some Principles
- 【Java】数组元素的赋值与输出
- android retrofit 2.0公共参数,Retrofit2.0 添加公共参数
- linux netstat
- js中几个对象的区别和用法
- 全网销售额超 2.67 亿!德施曼连续 5 年蝉联双11全网智能锁销冠
- linux中dns服务故障,Linux nslookup命令对DNS域名服务器进行故障排除
- 计算机睡眠和休眠哪个更好,电脑睡眠和休眠哪个好 有什么区别
- 鸿蒙版瑞幸咖啡开发日记(六)详情页与首页联动
- 解决fullpage滑动,控制台的报错提示
- 电脑装windows和安卓双系统引导_Remix mini安卓电脑,玩的不只是Windows那张皮
- 套头文件html重复,关于C++头文件重复包含的问题
- NVIDIA Jetson AGX Xavier
- Java 联网五子棋(socket)
热门文章
- 如何让word左边显示目录
- MATLAB函数——lowpass
- html首页我的待办,我的待办.html
- Android与iOS在DES加密算法上的统一
- 别坐在金矿上捡垃圾:给管理者的10条建议
- 基于MMRotate训练自定义数据集 做旋转目标检测 2022-3-30
- Redis TTL说明
- 2022 最新 Android 基础教程,从开发入门到项目实战【b站动脑学院】学习笔记——第八章:高级控件
- MATLAB:零状态响应(lsim(连续);filter(离散))、冲激响应(impulse或impz)和阶跃响应(step)、卷积(conv)
- IT运维服务外包管理的两种模式