ホームページ  >  記事  >  バックエンド開発  >  PHPではログイン時間判定により1日複数ログインに対して1回だけスコアを付ける機能を実装しています。

PHPではログイン時間判定により1日複数ログインに対して1回だけスコアを付ける機能を実装しています。

不言
不言オリジナル
2018-05-02 10:41:561278ブラウズ

この記事では、1日複数回のログインで1ポイントだけを獲得するためのphpの機能を中心に紹介します。phpの時間判断やデータベース関連の操作スキルなどが含まれます。必要な方は参考にしてください

この記事では、PHPがログイン時間判定を利用して、1日複数ログインに対して1回のみスコアリングする機能を実現する例を説明します。参考までに、詳細は次のとおりです。

インターネット上で多くのケースを見つけましたが、それらはすべて非常に面倒だったので、自分でこの機能を実装する方法を試してみました。

この関数をデータシートに実装しました。フィールド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);

このようにして、この機能は実現されます

関連する推奨事項:

高度な電卓関数の PHP スタックベースの実装の詳細な説明

以上がPHPではログイン時間判定により1日複数ログインに対して1回だけスコアを付ける機能を実装しています。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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