ホームページ  >  記事  >  バックエンド開発  >  1日複数回ログインして1回だけポイントを獲得する機能のPHP実装例

1日複数回ログインして1回だけポイントを獲得する機能のPHP実装例

黄舟
黄舟オリジナル
2017-10-30 11:02:041089ブラウズ

本記事の例では、1日複数ログインに対して1回だけスコアを付ける機能を実現するため、ログイン時間判定に基づくphpを記述しています。参考のために皆さんと共有してください。詳細は次のとおりです:

インターネットで多くのケースを見つけましたが、どれも似たようなもので、いくつかは非常に面倒だったので、自分で試してみて、この機能を実装する方法を説明します

この関数をデータ A フィールドに実装しました。logintime がテーブルに追加され、最終ログイン時刻が示され、最終ログインの場合はその日の 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);

これはこの機能で実現されています

以上が1日複数回ログインして1回だけポイントを獲得する機能のPHP実装例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。