2

重複の可能性:
java スクリプトまたは php を使用してサイトの現在の訪問者をカウントする方法

ウェブサイトにストリームを埋め込んでいますが、そのページのライブ ビューアの数を取得したいと考えています。PHP / AJAX でこれを行う方法はありますか?

4

3 に答える 3

3

免責事項:私はずっと前にこのようなことをしたので、ここに醜い古いコードがあります(これはあなたにアイデアを与えるためだけなので、最初にプログラミングを始めたときではなく、見栄えを良くするために努力するつもりはありませんどのようにそれを行うことができ、特定のコードをスプーンでフィードしないでください)。

$timeout = time() - (20);

$sessid_exist = mysql_query("SELECT sessid FROM bw_sessions WHERE sessid='" . session_id() . "'") or die (mysql_error());
$sessid_check = mysql_num_rows($sessid_exist);

if ($_SESSION['bw_username']) {
                $sql = mysql_query("UPDATE bw_sessions SET timestamp='" . time() . "', username='" . $_SESSION['bw_username'] . "' WHERE sessid='" . session_id() . "'");
} else {
  if($sessid_check > 0){
                $sql = mysql_query("UPDATE bw_sessions SET timestamp='" . time() . "' WHERE sessid='" . session_id() . "'");
              } else {
              $sql = mysql_query("INSERT INTO bw_sessions (id, username, sessid, timestamp, ip)
        VALUES(null, '', '" . session_id() . "', '" . time() . "', '" . $_SERVER['REMOTE_ADDR'] . "')") or die (mysql_error());
          }
}


$sql = mysql_query("SELECT distinct sessid FROM bw_sessions WHERE username='' AND timestamp >= '$timeout' ORDER BY timestamp DESC") or die (mysql_error());
$sql2 = mysql_query("SELECT distinct sessid,username FROM bw_sessions WHERE username!='' AND timestamp >= '$timeout' ORDER BY username DESC") or die (mysql_error());
$num_guests = mysql_num_rows($sql);
$num_reg = mysql_num_rows($sql2);
?>

<font size='1'>Currently Online: <br>
                        <?=$num_guests;?> Guests<br>
                        <?=$num_reg;?> Registered users

テーブルを作成し、session_idを保持する必要があります。次に、そのテーブルに「最近の」アクティビティを照会します。リアルタイムの更新が必要な場合は、上記のコード(テーブルデザインに変更)を「online.php」に配置し、x秒ごとにjqueryを介して呼び出すか、実行することにします。

于 2012-04-11T21:00:39.200 に答える
1

どこかで見たことがあれば、おそらく可能です。この種の機能は、ほとんどのフォーラム ソフトウェアに組み込まれており、多くの Web サイトで使用されているため、おそらくそれほど難しくはありません。

これを行う通常の方法は、$_SERVER['REMOTE_ADDR']から接続された訪問者の IP を取得し、それをファイルに書き込み、すべての一意の IP を合計して、接続している人の数を調べます。これには、接続されなくなった IP を削除するための何らかのクリーニング機能が必要になります。

スクリプトはページロードで実行され、ファイル内の訪問者をカウントします。そのため、ajax を使用する場合、そのファイルを頻繁にポーリングする PHP スクリプトを実行してカウントを動的に更新するか、ページロードで実行できますが、ajax は必要ないため、 PHPでそれを行うことができます。

方法がわからない場合は、最初に$.ajaxで PHP スクリプトを実行する方法を理解し、次に訪問者をカウントする関数を作成します。

そのようなスクリプトの検索で 2 億 4,400 万件のヒットがありまし

于 2012-04-11T21:10:47.393 に答える
1

Clickyのようなものがうまくいくはずです。

于 2012-04-11T20:39:49.187 に答える