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

黄舟
リリース: 2023-03-16 20:32:01
オリジナル
1064 人が閲覧しました

本記事の例では、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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!