>  기사  >  백엔드 개발  >  PHP는 로그인 시간 판단에 따라 하루에 여러 번의 로그인에 대해 한 번만 점수를 매기는 기능을 구현합니다.

PHP는 로그인 시간 판단에 따라 하루에 여러 번의 로그인에 대해 한 번만 점수를 매기는 기능을 구현합니다.

不言
不言원래의
2018-05-02 10:41:561275검색

이 글에서는 하루에 여러 번 로그인해도 1포인트만 달성할 수 있는 로그인 시간 판단 기반의 PHP 기능을 주로 소개합니다. 이는 PHP 시간 판단 및 데이터베이스 관련 운영 기술을 포함하는 멤버십 시스템의 포인트 기능에 적합합니다. 필요하면 참고하세요

이 기사에서는 PHP가 로그인 시간 판단을 사용하여 하루에 여러 번 로그인할 때 한 번만 점수를 매기는 기능을 구현하는 예를 설명합니다. 참고하시라고 자세한 내용을 공유합니다.

인터넷에서 많은 사례를 찾아봤는데, 일부는 꽤 복잡해 보여서 직접 구현해 봤습니다.

데이터 시트에 이 기능을 구현했습니다. 로그인 시간 필드가 추가되어 마지막 로그인 시간을 표시한 다음, 마지막 로그인 시간이 이보다 큰 경우 해당 날짜의 0:00:00을 사용하여 비교합니다. 시점은 로그인했다는 의미입니다. 마지막 로그인 시간이 이 시점보다 작을 경우 첫 번째 로그인을 의미하며 포인트가 증가합니다

코드 업로드:

// 判断是否是一天中第一次登录
// 上一次登陆的时间
$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);
}

주의하세요. 로그인 시간도 수정해야 합니다:

// 更新登录时间和登录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);

이런 방식으로 이 기능이 실현됩니다

관련 권장 사항:

PHP 스택 기반 고급 계산기 기능 구현에 대한 자세한 설명

위 내용은 PHP는 로그인 시간 판단에 따라 하루에 여러 번의 로그인에 대해 한 번만 점수를 매기는 기능을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.