【问题标题】:Detect if user has wrong date / time which can cause site errors检测用户是否有可能导致站点错误的错误日期/时间
【发布时间】:2012-12-31 15:20:34
【问题描述】:

我注意到,如果用户关闭计算机时钟(错误的日期或上午而不是下午等)并将商品添加到购物车并点击结帐,他将收到一条消息,指出他的购物车中没有商品,因为时间不匹配会破坏代码。

因此,与其让用户感到沮丧并致电支持(或完全放弃购物车),我想知道是否有某种方法可以检测用户的时间/日期是否正确,如果没有则创建警报以修复他的时钟.

有什么想法吗?该网站在 php 上运行,因此任何 php、javascript / ajax 等脚本都很棒。

谢谢!

【问题讨论】:

  • 当用户的时钟错误时,您应该诊断导致购物车消失的原因。例如,也许你应该给你的 cookie 一个更宽泛的过期日期?
  • 与其尝试修复客户端的时钟,不如从服务器获取时间。
  • 我不确定 magento 的内部是如何工作的,并且更改核心中的某些内容会造成更多混乱,然后只需添加一个小脚本(如果仅此而已)...
  • 你是在说cookies吗?
  • 老实说,我不确定 magento 使用什么方法来考虑用户的时钟。 Cookie 确实有意义……

标签: php javascript magento


【解决方案1】:

您最好更改您的代码,以便完全不依赖客户端时钟。

你如何处理不同的时区等...?

服务器端代码不应该依赖客户端环境来匹配。

【讨论】:

    【解决方案2】:

    我不建议您主要依靠客户端来验证购物车的时间/时区。客户端的时间可能设置不正确(甚至是故意为恶意行为......诡计永远不会结束。)

    你需要做的是妥善处理不同时区用户的场景。

    你可以这样做:

    • 使用 JavaScript 检索客户端的时间/时区 (see this question)
    • 发帖到服务器进行验证。
    • 将时间转换为相应的时区。这可用于向用户正确显示某个时间或存储在 cookie/会话中以跟踪用户信息。
    • 如果未提供有效时间,请使用服务器时间。

    这完全取决于您当前如何处理不同的时区...

    【讨论】:

    • 这是个好建议,因为我不想改变magento的内部功能。我想我可以使用该方法来测试用户的时钟,如果它与服务器不匹配,请提醒他们他们的时钟已关闭。同样,它可以防止用户可能遇到的其他错误(例如,如果您的时钟已经过时,您将收到 SSL 证书警告......)。
    • 确实如此。错误预防和验证是关键。
    猜你喜欢
    • 2012-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-04
    • 2018-10-27
    • 2022-01-21
    • 2017-01-16
    相关资源
    最近更新 更多