PHP MYSQL实例:网站在线人数的程序代码




PHP实例教程:网站在线人数的程序代码,后台有MYSQL数据库支持。可以直接统计出网站当前的在线人数。

首先是创建MYSQL数据库表。

以下为引用的内容:
CREATE TABLE tablename (
field type(max_length) DEFAULT 'default_value' (NOT) NULL
}
Tiffany TEARDROP Earrings Tiffany LOVING HEART earrings

可以使用的SQL语句。

以下为引用的内容:
CREATE TABLE useronline (
timestamp int(15) DEFAULT '0' NOT NULL,
ip varchar(40) NOT NULL,
file varchar(100) NOT NULL,
PRIMARY KEY (timestamp),
KEY ip (ip),
KEY file (file)
);

下面我们开始使用PHP脚本,首先定义MYSQL的信息。

$server = "localhost"; //你的服务器

$db_user = "root"; //你的mysql的用户名

$db_pass = "password"; //你的mysql的密码

$database = "users"; //表的名字

设置统计的时间(多少秒内在线人数)

$timeoutseconds = 300;

取当前时间。

$timestamp = time();

上面的完整代码:
Tiffany TEARDROP Earrings Tiffany LOVING HEART earrings

以下为引用的内容:
$insert = mysql_db_query($database, "INSERT INTO useronline VALUES
('$timestamp','".$_SERVER['REMOTE_ADDR']."','".$_SERVER['PHP_SELF']."')");

连接mysql

mysql_connect('localhost', 'username', 'password');

也答应使用变量形式。

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

假如mysql数据库没有密码的话可以使用下面代码连接(当然建议大家一定要设置好自己的密码,这样起码黑客得要解密啊)

mysql_connect($server, $db_user);

查询数据库的代码:

mysql_db_query('database', 'query');

我们只要有访客就要增加一条记录。

以下为引用的内容:
$insert = mysql_db_query($database, "INSERT INTO useronline VALUES
('$timestamp','".$_SERVER['REMOTE_ADDR']."','".$_SERVER['PHP_SELF']."')");

然后我们给出假如用户用错误信息的处理方式。
Tiffany QUADRIFOGLIO Pendant Tiffany SCRIBBLE Pendant Tiffany Two Hearts Pendant Tiffany T&ampCO Charm Pendant Tiffany TAG Pendant Tiffany SIRIUS STAR Pendant Tiffany TEARDROP CROSS Pendant Tiffany Nature Collection DAISY Pendant Tiffany TENDERNESS HEART Pendant Tiffany OPEN TEARDROP Pendant Tiffany Open Wave Pendant Tiffany TENDERNESS HEART CROSS Pendant Tiffany NUMERIC ROUND Pendant Tiffany NUMERIC OPEN BAR Pendant Tiffany ROTATABLE COIN Pendant Tiffany Engraved OVAL TAG necklace Tiffany Engraved HEART TAG Choker Tiffany VENETIAN LINK Necklace Tiffany Engraved HEART TAG Toggle Link Necklace Tiffany DONUT CHAIN Necklace Tiffany Star Lariat Necklace Tiffany Continuous OPEN HEART Necklace Tiffany Engraved HEART TAG Necklace Tiffany Continuous MINI BEAN Necklace Tiffany 1837 LOCK necklace Tiffany BEAD Necklace Tiffany TEN ROW DISC Toggle Necklace Tiffany TEN ROW HEART Toggle Necklace Tiffany 5 OPEN HEART Necklace Tiffany 3 OPEN HEART Necklace Tiffany CONTINUOUS TEARDROP Necklace Tiffany 1837 COLLAR Tiffany Twist Necklace Tiffany HEART TAG Necklace Tiffany HEART LINK Necklace Tiffany HEART LINK Lariat Tiffany GRADUATED BEAD Necklace Tiffany FIVE TEARDROP Necklace Tiffany HEART STRINGS Necklace Tiffany Engraved ROUND TAG Necklace Tiffany HEART TAG Toggle Link Necklace Tiffany LINK Necklace with Heart Clasp Tiffany Numerical Hoop earrings Tiffany OPEN HEART Earrings Tiffany Open Heart drop earrings Tiffany Bead Earrings

以下为引用的内容:
if(!($insert)) {
print "Useronline Insert Failed > ";
}

然后我们得实现当超过我们设置的时间我们就要删除该用户记录。

$delete = mysql_db_query($database, "DELETE FROM useronline WHERE timestamp<$timeout");

同样给出删除记录出错的处理。

以下为引用的内容:
if(!($delete)) {
print "Useronline Delete Failed > ";
}

下面我们显示数据库中有多少个不同的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 user online/n");
} else {
print("$user users online/n");
}

最终把上面代码写成一个PHP文件如下。

以下为引用的内容:

<?php
//Put your basic server info here
$server = "localhost"; //normally localhost
$db_user = "root"; //your MySQL database username
$db_pass = "password"; //your MySQL database password
$database = "users";
$timeoutseconds = 300; //it will delete all people which haven't refreshed(so probbably are
// offline or inactive) in $timieoutseconds time (so it actually checks the people that are active in the last
// $timeoutseconds seconds)
//this is where PHP gets the time
$timestamp = time();
//counts the timeout, all people which have been seen last online in earlier than this timestamp, will get removed


$timeout = $timestamp-$timeoutseconds;
//connect to database
mysql_connect($server, $db_user);
//add the timestamp from the user to the online list
$insert = mysql_db_query($database, "INSERT INTO useronline VALUES
('$timestamp','".$_SERVER['REMOTE_ADDR']."','".$_SERVER['PHP_SELF']."')");
if(!($insert)) {
print "Useronline Insert Failed > ";
}
//delete the peoples which haven't been online/active in the last $timeoutseconds seconds.
$delete = mysql_db_query($database, "DELETE FROM useronline WHERE timestamp<$timeout");
if(!($delete)) {
print "Useronline Delete Failed > ";
}
//select the amount of people online, all uniques, which are online on THIS page
$result = mysql_db_query($database, "SELECT DISTINCT ip FROM useronline WHERE file='".$_SERVER['PHP_SELF']."' ");
if(!($result)) {
print "Useronline Select Error > ";
}
//Count the number of rows = the number of people online
$user = mysql_num_rows($result);
//spit out the results
mysql_close();
if($user == 1) {
print("1 user online/n");
} else {
print("$user users online/n");
}
?>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值