【问题标题】:Detect Users Viewing Same Webpage, or URL检测查看相同网页或 URL 的用户
【发布时间】:2012-01-05 23:46:32
【问题描述】:

我有一个票务系统,允许任何用户查看他们希望选择的任何票证。每张票将共享同一页面。 (例如ticket.php)URL 将包含唯一的参数来识别票。例如:/ticket.php?a=10000&tid=987654。其中 tid 是票证编号。我想检测是否有多个用户正在查看票证,并在条件为真时将其显示为网页中的通知。我该怎么做呢?我必须使用 PHP Server 变量吗?会话变量? Javascript?两者都有?

【问题讨论】:

    标签: php mysql view url-parameters


    【解决方案1】:

    在数据库中使用 unix 时间戳,因此您可以设置超时。 在用户仍在查看票证时让 ajax 发送请求。

    然后使用 foreach 循环并过滤所有活动的时间戳,输出用户名或 id。

    以 json 格式将响应发送回您的客户端(除非您的贫民区足以使用 XML)

    【讨论】:

    • 好的。所以你的意思是,当用户查看页面时,ajax 会不断地向数据库发送更新,这是用户查看数据库的记录?
    • 另外,我们需要识别那些离开页面的人。我们将如何做到这一点?
    • 可以设置一些JS代码在用户离开页面时执行,否则一定时间后会超时,不用担心有人“查看”页面被卡住
    【解决方案2】:

    Ajax 和服务器变量应该可以解决问题。

    加载时更新服务器变量 在卸载更新服务器变量时 在页面上时,Ajax 会不断更新网页的当前状态

    看看这篇文章。您所要做的就是将其中一个 array_map 存储在一个以页面名称为键的服务器变量中。

    Is there Java HashMap equivalent in PHP?

    【讨论】:

    • 我就是这么想的。但是,如何识别访问该页面的每个用户?例如:通知内容为:“A 用户、B 用户和 C 用户也在查看此工单。”
    • 您的服务器变量可以是一个数组。因此,当用户到达您添加到数组的页面时,当用户离开删除时,Ajax 只需加载数组并显示。
    • 你能给我一个示例代码吗?我仍然不明白 SERVER 变量如何跟踪访问该页面的每个用户。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-29
    • 2017-02-03
    • 2011-06-24
    • 2011-03-08
    • 2014-03-13
    相关资源
    最近更新 更多