オンラインの人数をカウントするための PHP コードとオンラインの人数をカウントするための mysql の組み合わせ

WBOY
リリース: 2016-07-25 08:58:59
オリジナル
1209 人が閲覧しました
  1. CREATE TABLE ccol(
  2. id integer not null auto_increment, #記録されたID
  3. ip char(15) not null, #訪問者のIPアドレス
  4. dtstamp datetime not null, #最終アクセス時刻
  5. uri char(255 ), #訪問者によって要求された URI
  6. 主キー (id)
  7. );
コードをコピー

次に、統計用の PHP コードを作成します

  1. /*

  2. ファイル: ccol.php
  3. 目的: 同時にオンライン閲覧している人の数を数える
  4. 編集: bbs.it-home.org
  5. * /
  6. $duration=1800 ;
  7. require "db.php"; //データベースアクセスクラスを準備してください
  8. //DBSQLが含まれています
  9. $ccol=new dbSQL;
  10. $ccol->connect();
  11. $ccol-> ;query("DELETE FROM ccol WHERE (UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(dtstamp))>$duration");
  12. //30 分より古いレコードを削除します
  13. $ccol->query("SELECT * FROM ccol WHERE ip='$REMOTE_ADDR '");
  14. //現在の IP がテーブルに存在するかどうかを確認します
  15. if ($ccol->nf())//Yes?
  16. {
  17. $ccol->next_record();//見つかったレコード配列のポインタを下に移動
  18. $id=$ccol->f('id');
  19. $ccol->query("UPDATE ccol SET dtstamp=now(), uri='$REQUEST_URI' WHERE id=$id");
  20. //最終アクセス時刻とアクセスページを設定
  21. }
  22. else//いいえ
  23. {
  24. $ccol->query(" INSERT INTO ccol VALUES (0, '$REMOTE_ADDR', now(), '$REQUEST_URI')");
  25. }

  26. $ccol->query("SELECT COUNT(*) AS ccol FROM ccol WHERE (UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(dtstamp))<=$duration");

  27. //30 分以内にレコードを検索します。次の WHERE 句はオプションです -- 時間切れのため削除されました
  28. $ccol->next_record()
  29. echo "オンラインの人数:", $ccol->f('ccol');
  30. $ccol->free_result();
  31. ?>
コードをコピー

callメソッドし、サイトのすべてのページでこのプログラムを呼び出します。 例えば:

  1. --index.php
  2. ...