【发布时间】:2012-12-18 19:08:28
【问题描述】:
我想制作一个 PHP if 条件代码,它将检查用户阅读的最后 10 篇文章或 10 分钟是否已经过去。
例如
用户打开一个 id = 235 的页面(这个 id 值在 url localhost/article/235 中)
并且这个 id 值将保存在会话中,其中包含 当前时间戳,可能还有他的 IP 地址
然后他又读了一篇文章,同样的事情也会发生。
我需要记住另外十次点击的点击内容,然后只为第一行重置。例如。第 10 次点击后,id 和时间戳不会变为第 11 行,而是会替换列表中的第 1 行。
CodeIgniter 中的 php 条件将检查这些值,并更新文章表和列计数器中的文章命中计数器值,如下所示:
$this->db->where('id', $id);
$this->db->set('counter', 'counter+1', FALSE);
$this->db->update('articles');
但在调用此代码之前,我需要从会话中进行此项检查吗?
怎么做?
我认为存储例如会话中每个用户有 10 个带有时间戳的条目就足够了。
只是不要在会话中保存同一个页面两次。
条件将检查当前时间戳与保存的时间戳,是否超过例如10 分钟或用户已经阅读/点击了另外 10 篇文章,它将允许更新计数器 php 代码。
我不需要这个防弹。只是使用浏览器的刷新按钮禁用增量。
所以,如果他想增加计数器,他需要等待 10 分钟或再阅读 10 篇文章;)
【问题讨论】:
-
可能只有我,但我不明白您要做什么。
-
好的,我相信你的previous problem 已经解决了吗?
-
是的,绿色勾号已批准;)
-
现在我需要帮助解决这种情况。
-
现在有点想多了……你需要比较 IP,比较时间戳,并跟踪访问过的文章(你没有提到你是怎么做的)。至于 cookie,可以使用 cookie_helper,也可以直接使用 session 类
标签: php codeigniter session cookies