php实现一天多次登录只积分一次功能的实现示例

黄舟
Lepaskan: 2023-03-16 20:32:01
asal
1092 orang telah melayarinya

本文实例讲述了php基于登陆时间判断实现一天多次登录只积分一次功能。分享给大家供大家参考,具体如下:

在网上找了很多的案例,感觉都差不多,有的还比较的繁琐,就自己尝试了一下,如何实现这个功能

实现这个功能我在数据表里面增加了一个字段logintime,表示最后一次的登录时间,然后使用一天中的零时零分零秒和上一次的登录时间进行比较,如果上一次的登录时间大于了这个时间点表示已经登陆过,如果上一次的登录时间小于了这个时间点,则表示第一次登录,增加积分

上代码:

// 判断是否是一天中第一次登录
// 上一次登陆的时间
$lastLogintime = $userinfo['logintime'];
// 一天中的零时零分零秒
$today = strtotime(date('Y-m-d'));
if($lastLogintime < $today) {
  // 一天中第一次登录增加积分(关联更新)
  // 注意:使用关联更新数据的时候需要传递两次id
  $data[&#39;id&#39;] = $userinfo[&#39;id&#39;];
  $data[&#39;userinfo&#39;] = array(
    &#39;points&#39; => $userinfo[&#39;points&#39;] + C(&#39;LOGIN&#39;),
  );
  $user->relation(true)->where(array(&#39;id&#39;=>$userinfo[&#39;id&#39;]))->save($data);
}
Salin selepas log masuk

需要注意的是还要修改登录时间:

// 更新登录时间和登录ip
$updateData = array(
  &#39;id&#39; => $userinfo[&#39;id&#39;],
  &#39;userinfo&#39; => array(
    &#39;logintime&#39; => time(),
    &#39;loginip&#39; => getIP(),
  ),
);
$user->relation(true)->where(array(&#39;id&#39;=>$userinfo[&#39;id&#39;]))->save($updateData);
Salin selepas log masuk

这样就实现了这个功能

Atas ialah kandungan terperinci php实现一天多次登录只积分一次功能的实现示例. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan