PHP サンプル チュートリアル: バックグラウンドでの MYSQL データベース サポートを使用した、Web サイト上のオンラインの人数に応じたプログラム コード。 Web サイト上で現在オンラインになっている人の数を直接カウントできます。
最初のステップは、MYSQL データベース テーブルを作成することです。
CREATE TABLE テーブル名 (
フィールドタイプ(最大長) DEFAULT デフォルト値 (NOT) NULL
}
使用できるSQL文。
CREATE TABLE useronline (
timestamp int(15) DEFAULT 0 NOT NULL,
ip varchar(40) NOT NULL,
file varchar(100) NOT NULL,
主キー (タイムスタンプ),
KEY ip (ip),
KEYファイル (ファイル)
);
次に、PHP スクリプトの使用を開始し、最初に MYSQL 情報を定義します。
$server = "localhost"; //あなたのサーバー
$db_pass = "password"; //あなたのmysqlパスワード
$database = "users ";テーブルの
$タイムアウト秒 = 300;
現在時刻を取得します。
$timestamp = time();
上記の完全なコード:
$server = "localhost"; //あなたのサーバー
$db_user = "root"; //あなたのmysqlデータベースのユーザー名
$db_pass = "password"; //あなたのmysqlデータベースのパスワード
$database = "users"; //データベース名
$timeoutseconds = 300;//タイムアウト秒の制限
//現在時刻を取得します
$timestamp = time();
//許容される最小のタイムスタンプを計算します
$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 VALUES に挿入
($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 の削除に失敗しました > ";
}
$result = mysql_db_query($database, "SELECT DISTINCT ip FROM useronline WHERE file=".$_SERVER[PHP_SELF]." ");
私たちは
を使用します
mysql_num_rows(クエリ);ユーザーをカウントするためのコードは次のとおりです。
$user = mysql_num_rows($result);
最後にデータベースを閉じる必要があります。
mysql_close();
オンラインの人数を表示します。
if($user == 1) {
print("1 ユーザーがオンライン
");
} else {
print("$user オンラインのユーザー
");
}
//基本的なサーバー情報をここに入力します
$server = "localhost"; //通常は localhost
$db_user = "root"; //MySQL データベースのユーザー名
$db_pass = "パスワード"; //MySQL データベースのパスワード
$database = "users";
$timeout秒 = 300; // 更新されていない (おそらく
// オフラインまたは非アクティブな) すべてのユーザーを $timieoutseconds 時間以内に削除します (つまり、実際には、最後の
// $timeout Seconds 秒間にアクティブだったユーザーをチェックします)
// これはここで、PHP は時間を取得します
$timestamp = time();
//タイムアウトをカウントします。このタイムスタンプより前にオンラインで最後に確認された人はすべて削除されます
$timeout = $timestamp-$timeout秒;
//データベースに接続します
mysql_connect($server, $db_user);
//オンラインリストにユーザーからのタイムスタンプを追加します
$insert = mysql_db_query($database, "INSERT INTO useronline VALUES
($timestamp,".$_SERVER[ REMOTE_ADDR].",".$_SERVER[PHP_SELF].")");
if(!($insert)) {
print "Useronline Insert Failed > ";
}
//オンラインになっていない人を削除します最後の $timeoutseconds 秒間 /active です。
$delete = mysql_db_query($database, "DELETE FROM useronline WHERE timestamp<$timeout");
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);