ホームページ  >  記事  >  php教程  >  PHP+MYSQL は、Web サイト上のオンライン人口の統計を実装します。

PHP+MYSQL は、Web サイト上のオンライン人口の統計を実装します。

WBOY
WBOYオリジナル
2016-06-21 08:57:00977ブラウズ

PHP+MYSQL は、バックグラウンドでの MySQL データベースのサポートにより、Web サイト上のオンライン人口を実現します。 Web サイト上で現在オンラインになっている人の数を直接カウントできます。

最初に、MYSQL データベース テーブルを作成します。

CREATE TABLE テーブル名 (
フィールドタイプ(最大長) DEFAULT 'default_value' (NOT) NULL
}

使用できる SQL ステートメント。

CREATE TABLE useronline (
タイムスタンプ int(15) デフォルトの '0' NOT NULL、
ip varchar(40) NOT NULL、
ファイル varchar(100) NOT NULL、
主キー (タイムスタンプ)、
キー IP (ip)、
KEYファイル(ファイル)
);

次に、PHP スクリプトの使用を開始し、最初に MYSQL 情報を定義します。

$server = "localhost" //あなたのサーバー
$db_user = "root" //mysql ユーザー名
; $db_pass = "パスワード" //mysql パスワード
; $database = "users" //テーブル名

;

統計時間を設定します (オンラインになっている秒数)

$タイムアウト秒 = 300;

現在時刻を取得します。

$timestamp = time();

上記の完全なコード:

$server = "localhost" // サーバー
; $db_user = "root" //mysql データベースのユーザー名
; $db_pass = "password" //mysql データベースのパスワード (存在する場合)
; $database = "users" //データベース名
; $timeout秒 = 300;//タイムアウト秒の制限
// 現在時刻を取得します
$タイムスタンプ = 時間(); // 許可される最小のタイムスタンプを計算します
$timeout = $timestamp-$timeout秒
?>

mysql に接続します

mysql_connect('localhost', 'ユーザー名', 'パスワード');

変数形式も使用できます。

mysql_connect($server, $db_user, $db_pass);

mysql データベースにパスワードがない場合は、次のコードを使用して接続できます (もちろん、独自のパスワードを設定することをお勧めします。そのため、少なくともハッカーはパスワードを復号化する必要があります)

mysql_connect($server, $db_user);

データベースにクエリを実行するコード:

mysql_db_query('データベース', 'クエリ');

訪問者がいるたびに記録を追加します。

$insert = mysql_db_query($database, "useronline 値に挿入

('$timestamp','".$_SERVER['REMOTE_ADDR']."','".$_SERVER['PHP_SELF']."')");

次に、ユーザーが使用した場合のエラー メッセージの対処方法を示します。

if(!($insert)) {

print "Useronline の挿入に失敗しました > "; }

次に、設定した時間が経過すると、ユーザー レコードが削除されることを認識する必要があります。

$delete = mysql_db_query($database, "DELETE FROM useronline WHERE timestamp

レコードの削除時のエラーの処理も提供します。

if(!($delete)) {

print "Useronline の削除に失敗しました > "; }


次に、データベース内に異なる IP がいくつあるかを示します

$result = mysql_db_query($database, "SELECT DISTINCT ip FROM useronline WHERE file='".$_SERVER['PHP_SELF']."' ");

ユーザーをカウントするには mysql_num_rows(query) を使用します。コードは次のとおりです。

$user = mysql_num_rows($result);

最後にデータベースを閉じる必要があります。

mysql_close();

オンラインの人数を表示します。

if($user == 1) {

print("1 ユーザーがオンライン"); } else {

print("$user ユーザーオンライン"); }

最後に、上記のコードを次のように PHP ファイルに記述します。

// 基本的なサーバー情報をここに入力します
$server = "ローカルホスト"; //通常はローカルホスト
$db_user = "ルート"; //MySQL データベースのユーザー名
$db_pass = "パスワード"; //MySQL データベースのパスワード
$database = "ユーザー";
$タイムアウト秒 = 300; // 更新していない人はすべて削除されます (おそらく
です) // オフラインまたは非アクティブ) $timieoutseconds 時間以内 (つまり、実際には最後の
にアクティブだった人をチェックします) // $timeout秒秒)
//ここで PHP が時間を取得します
$タイムスタンプ = 時間();
//タイムアウトをカウントします。このタイムスタンプより前に最後にオンラインになった人はすべて削除されます
$timeout = $timestamp-$timeout秒;
//データベースに接続
mysql_connect($server, $db_user);
// ユーザーからのタイムスタンプをオンライン リストに追加します
$insert = mysql_db_query($database, "useronline 値に挿入
('$timestamp','".$_SERVER['REMOTE_ADDR']."','".$_SERVER['PHP_SELF']."')");
if(!($insert)) {
print "Useronline の挿入に失敗しました > ";
}
// 最後の $timeoutseconds 秒間オンライン/アクティブになっていなかったユーザーを削除します。
$delete = mysql_db_query($database, "DELETE FROM useronline WHERE timestamp if(!($delete)) {
print "Useronline の削除に失敗しました > ";
}
//このページでオンラインになっているすべてのユニークなオンライン人数を選択します
$result = mysql_db_query($database, "SELECT DISTINCT ip FROM useronline WHERE file='".$_SERVER['PHP_SELF']."' ");
if(!($result)) {
print "Useronline 選択エラー > ";
}
// 行数 = オンラインの人数を数えます
$user = mysql_num_rows($result);
//結果を吐き出します
mysql_close();
if($user == 1) {
print("1 ユーザーがオンライン");
} else {
print("$user ユーザーオンライン");
}
?>
 



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