php基于登陆时间判断实现一天多次登录只积分一次功能示例

yipeiwu_com7年前PHP代码库

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

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

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

上代码:

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

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

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

这样就实现了这个功能

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php日期与时间用法总结》、《PHP数组(Array)操作技巧大全》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家PHP程序设计有所帮助。

相关文章

PHP 字符串长度判断效率更高的方法

有经验的程序员发现,php判断字符串长度,使用isset()在速度上比strlen()更快,执行效率更高。即:复制代码 代码如下:$str = ‘aaaaaa';if(strlen($s...

php引用计数器进行垃圾收集机制介绍

PHP 有一个非常简单的垃圾收集器,它实际上将对不再位于内存范围(scope)中的对象进行垃圾收集。垃圾收集的内部方式是使用一个引用计数器,因此当计数器达到 0 时(意味着对该对象的引用...

php经典算法集锦

本文实例讲述了php几个经典算法。分享给大家供大家参考,具体如下: 有5个人偷了一堆苹果,准备在第二天分赃。晚上,有一人遛出来,把所有菜果分成5份,但是多了一个,顺手把这个扔给树上的猴了...

使用PHP编写的SVN类

复制代码 代码如下:<?php/** * SVN 外部命令 类 * * @author rubekid * * @todo com...

PHP Primary script unknown 解决方法总结

相信很多配置php环境的都遇到过这个恼人的问题: 浏览器访问php文件,返回来 File not found 查看/var/log/nginx/error.log ,有 “Pr...