PHP 一枚,请教关于 session 相关的问题!!

2018-10-24 19:06:45 +08:00
 DamonLin

最近遇到了一个 bug,同个客户最新的订单号会替换成之前已成功的订单号,一直在查找这个 bug,从业务逻辑语句,C 层,M 层,查了个遍,感觉都没有什么问题。结款页面的逻辑是这样的:用户点了购物车,然后进入结款,数据库插入最新的 order_id,根据 order 订单状态来判断该笔订单是否结账,客户付款成功,再来更新绑定 customer_id,这个 order_id 会保存为 session,通过 cookies 发送到客户端,重新刷新该结账页面,客户端通过 cookies 上面的 PHPSESSID,找到 session 里面的 order_id。所以想请教一下会不会可能是 session 更新的问题呢?会不会在结账的时候读取了上一笔订单的 session ?

1529 次点击
所在节点    程序员
2 条回复
DamonLin
2018-10-24 19:07:58 +08:00
1024 快乐啊
markgor
2018-10-24 20:42:59 +08:00
第一,所谓的 bug 其实都是因为没有按照设计者的理想逻辑去执行而导致的。
第二,究竟是通过 cookies 来存了 order_id 还是你只是存了去 session,然后说了遍 session 的实现流程。

其实最好的方法还是放代码出来,或者抓重点问。
另外 session 不会存在不及时更新的问题,PHP 运行的时候 session 是在内存里的,然后 PHP 结束后默认会写入 tmp 里面,当你再次运行 session_start 时候会从这个 tmp 文件夹里读取回之前写入的 session。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/500782

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX