【问题标题】:End Session / PHPSESSID on Chrome closeChrome 上的结束会话/PHPSESSID 关闭
【发布时间】:2019-07-12 07:32:07
【问题描述】:

我正在使用 opencart 2,并且我制作了一个盒子,如果您对产品有任何疑问,您可以在其中询问电话,每次您发送电话请求其记录产品 ID 和 session_id

        $data_fast['product_id'] = $this->request->post['product_id'];
        $data_fast['session_id'] = $this->session->getId();

在查看模板中,我比较了您的会话和产品,以查看您是否已发送有关此产品的请求,以在您关闭浏览器时显示或隐藏“请求电话”按钮(一种垃圾邮件保护)您的会话结束没问题,但在 Chrome 上,如果选项:“从上次中断的地方继续”打开,您的会话在浏览器关闭后仍然相同,因此您将永远不会再看到此产品的此按钮。即使每次浏览器像其他浏览器一样打开时,即使此 Chrome 选项打开以使用新会话运行,我还能做些什么吗?

【问题讨论】:

    标签: php session opencart


    【解决方案1】:

    您可以降低服务器的会话时间。 把这些值放在你的 php.ini 中

    session.gc_maxlifetime = 86400
    session.cookie_lifetime = 86400
    session.cache_expire = 86400
    

    根据您的需要调整时间。

    【讨论】:

    • 它会降低管理会话时间吗?
    • 是的。它还将缩短管理会话。
    • 您对其他类型的垃圾邮件防护有什么不同的建议吗?
    【解决方案2】:

    或者,您可以将 customer_id/phone_number 和 product_id 存储在一个表中。这样您就可以检查此客户或电话号码是否已请求。你真的需要一个会话吗?

    【讨论】:

    • 我使用的会话是比较他是否已经发送请求(显示或隐藏按钮“请求电话”),其他方式他可以刷新页面并一次又一次地发送。 ...所以在会话相同之前,他将无法再次发送相同产品的请求,当他关闭浏览器并在第二天再次返回时,他将拥有新会话,并且如果他想要相同的产品,他将能够再次发送请求
    • 那么如何将电话号码和product_id 存储在一个表中。并检查此请求是否已经发出?
    • 他们是客人,即使我将他们的手机和 product_id 存储在页面刷新时,我也无法比较这些信息,因为他们没有个人资料
    • 用户在点击“请求电话”按钮时提交的数据是什么?
    • 一定会的。
    猜你喜欢
    • 1970-01-01
    • 2012-11-24
    • 2019-07-15
    • 1970-01-01
    • 1970-01-01
    • 2021-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多