3

私は、現在(ライブで)私のウェブサイトにアクセスしている人の数を示すための良い方法を探しています。

私は、自分のサーバー/サイトにアクセスする人のIPアドレスをmysqlテーブルに保存するときに、おそらく最も簡単な方法であると考えました。

だから私がおそらくしなければならないことは:

適切に構成されたmysqlテーブルの作成

IPアドレスを保存する機能(phpで推測)を追加する

不要になった場合は、IPアドレスを削除する機能を追加します

プロセスをリアルタイムまたはリアルタイムに近づける

誰かが私を助けることができますか?

4

5 に答える 5

5

クライアントの実際の IP アドレスを取得し、その値を mysql DB に保存して取得する方法の簡単な例を次に示します。

//Test if it is a shared client
if (!empty($_SERVER['HTTP_CLIENT_IP'])){
  $ip=$_SERVER['HTTP_CLIENT_IP'];
//Is it a proxy address
}elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
  $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}else{
  $ip=$_SERVER['REMOTE_ADDR'];
}
//The value of $ip at this point would look something like: "192.0.34.166"
$ip = ip2long($ip);
//The $ip would now look something like: 1073732954

クライアントの実際の IP アドレスが INT 形式に変換されたので、通常どおり DB に書き込むことができます。

$sql = "INSERT INTO user(ip) VALUES('$ip')";
$dbQuery = mysql_query($sql,$dbLink);

このリンクの詳細: MySQL に IP アドレスを保存する最良の方法

追加情報: SQL インジェクションからコードを安全にするため。PDOまたはMYSQLIを使用する

PDO 拡張機能の使用例:

<?php

    $stmt = $dbh->prepare("INSERT INTO user(ip) VALUES(?)");
    $stmt->bindParam(1, $ip);

    $stmt->execute();
?>
于 2012-09-06T15:56:29.020 に答える
2

訪問者をデータベースに保存します(他の回答と同様)。datetime訪問者の最後のリクエストの日付を保持するフィールドを使用します (ページビューごとに行を更新する必要があります)。

これで、MySQL 間隔を使用して「現在オンラインの訪問者」を計算できます。

例えば:

SELECT
COUNT(1) AS `online_visitors`
FROM `visitors`
WHERE `datetime` > NOW() - INTERVAL 30 SECONDS
于 2012-09-06T16:06:25.900 に答える
1

まず、この質問のタイトルが適切ではないことを示唆してもよろしいですか? 助けを求めるときに、問題の解決策を二番目に推測するのはよくある間違いです。私が働いていた現在または以前の会社では、スタッフがバグ レポートを送信するときに、このようなことがよくあります。

あなたが達成しようとしているのは、なんらかの形式の分析を実装して、サイトにアクセスしている人の数、そのうちの何人がユニークな訪問者であるかを判断し、現在サイトを使用しているユーザーのリアルタイム データを確認できるようにすることです。 . したがって、「自分のサイトにアクセスしているユーザーに関する情報を取得するにはどうすればよいですか?」のようなタイトルの方が適しています。

テーブルに IP アドレスを格納することは、これを実現するための有効な方法ですが、理想とはほど遠いものです。Google アナリティクス(またはそれらに沿ったもの)を使用することを強くお勧めします。これにより、この情報やその他のすべての情報を確認できるようになり、さらに多くの労力を必要としません。コーダーである必要はありません。提供されたスニペットをコピーして HEAD タグに貼り付けるだけです。これを行う方法についてはたくさんの情報があるので、詳しくは説明しませんが、問題がある場合は遠慮なく尋ねてください。

于 2012-09-06T16:03:55.157 に答える
1

これは、 Google Analyticsにすでに組み込まれている機能です。IPアドレスは、訪問者数を追跡する最良の方法ではありません。

于 2012-09-06T15:58:22.667 に答える
0

ページが要求されるたびに、IP アドレスを MySQL データベースにプッシュして、一意になるようにすることができます。

<?php
    $ipaddress = $_SERVER["REMOTE_ADDR"];
    mysql_connect();
    mysql_select_db("visitors");
    mysql_query("INSERT INTO `visitors` (`ipaddress`) VALUES ('$ipaddress')");
    mysql_close();
?>
于 2012-09-06T15:56:50.480 に答える