0

私は現在、PHP でコミュニティをプログラミングしていますが、ユーザーがサイトに費やした時間を確認する方法がわからないため、行き詰まっています。「このユーザーは sitename で 10 時間 10 分を費やしました」のように、プロファイルに表示する必要があります。しかし、私はこれをどのように作成すればよいかわかりません!

ユーザーテーブル (My MySQL データベース内) に「last_visit_time」という行を追加して、ユーザーが最後に Web サイトのサイトにアクセスした時間を保存し、「total_time」という行を追加して、オンラインで費やした合計時間を保存することを考えています。

次に、ユーザーがページをロードするたびに、最初にログインしているかどうかを確認します。次に、ログインしている場合は、まず if('last_visit_time' + 2 minutes >= $current_time) を確認し、それが true の場合は差を追加します「last_visit_time」と「$current_time」の「total_time」行へ。その後、「last_visit_time」を現在の時刻に更新します。

これにより、ユーザーが新しいページにアクセスするための 2 分間の許容範囲が与えられ、前のページで費やされた時間が追加されます (2 分未満の場合)。私が理解できるように、ページをスパム更新したり、2 つのウィンドウで (同じアカウントで) ページにアクセスしても何も得られないため、ユーザーがこのスクリプトでごまかすことはできません。

しかし、現在の時刻と last_visit_time の差を実際に取得し、2 分以上経過しているかどうかを確認するにはどうすればよいでしょうか。それとも、これを別の方法にする必要がありますか?

私は非常に必要とされているので、提案と特に助けを求めています。

ありがとうございました!

4

1 に答える 1

0

簡単なスクリプトでこれを解決しました。X分の時間「許容範囲」があります。ユーザーが別のページを開くたびに、ページが「レンダリング」される前に、スクリプト「ユーザー時間を更新」を実行します。前回のユーザーアクティビティを保存しましたが、現在の時刻を取得して違いを生むと、最後の「更新」からの時間がわかります。今回は、サイトに費やすユーザー時間を増やします。

時間の計測には、扱いやすいシンプルな UNIX タイムスタンプを使用しています。2 つの数値を引くだけで、最後のアクティビティからの時間を秒単位で取得できます。

ただし、1 つの欠点があります。ユーザーが別の場所に移動した場合。彼は 1 ページで何時間も過ごした後、出かけることができます。このようにカウントされることはありません。これもカウントするには、JavaScript とタイマーを使用する必要があります。これは、時々 AJAX を介してスクリプトを起動し、ユーザーが Web 上の別のページを「クリック」した場合と同じことを行います。

于 2013-07-28T17:35:27.953 に答える