V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
DamonLin
V2EX  ›  程序员

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

  •  
  •   DamonLin · 2018-10-24 19:06:45 +08:00 · 1374 次点击
    这是一个创建于 1982 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    其实最好的方法还是放代码出来,或者抓重点问。
    另外 session 不会存在不及时更新的问题,PHP 运行的时候 session 是在内存里的,然后 PHP 结束后默认会写入 tmp 里面,当你再次运行 session_start 时候会从这个 tmp 文件夹里读取回之前写入的 session。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5742 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 06:23 · PVG 14:23 · LAX 23:23 · JFK 02:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.