怎样实现统计在线人数状况? 怎样实现统计在线人数状况? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 create table online_user(UID mediumint(8) unsigned not null primary key,login_time int(10) unsigned,last_action_time int(10) unsigned) last_action_time是MYSQL的函数么?统计在线情况和MYSQL有什么关系呢? create table online_user(UID mediumint(8) unsigned not null primary key,last_action_time int(10) unsigned)last_action_time记录用户上次动作时间,PHP中预设一个变量$logout_time=300,time()-last_action_time>$logout_time的用户即视为不在线 用戶多,性能不好!php有沒有別的方法,判斷用戶是否離線!! 為什麼session機制是這樣的:頁面有響就的時候其生命期限就會一直延長!它是否也一直在更新sessionID的最後一次訪問時間呢!! B/S的程序作到很准确的在线人数是不可能的,http的连接就是这样的 last_action_time记录用户上次动作时间,PHP中预设一个变量$logout_time=300,time()-last_action_time>$logout_time的用户即视为不在线-----------------------------------------------------用当前时间减去用户上次动作时间大于预设的300就能视为不在线???我怎么还是不懂?? 用当前时间减去用户上次动作时间大于预设的300就能视为不在线???我怎么还是不懂??--------------------------------------------------------------用户每次有动作就更新last_action_time字段为当前时间,300秒内没有任何动作即视为掉线,所以time()-last_action_time>300 <?php/*Description: 统计在线人数,本日访问人数,总访问人数,来访者IP,来访者操作系统和浏览器CREATE TABLE `wp_zwq_statistics` (`id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,`counter` INT( 15 ) NOT NULL DEFAULT '0',`date` VARCHAR( 20 ) NOT NULL DEFAULT '0',`flag` TINYINT NOT NULL DEFAULT '1',`timestamp` INT( 15 ) NOT NULL DEFAULT '0',`ip` VARCHAR( 40 ) NOT NULL DEFAULT '0') ENGINE = MYISAM ;INSERT INTO `wp_zwq_statistics` ( `id` , `counter` , `date` , `flag` , `timestamp` , `ip` ) VALUES ('1', '0', '0', '2', '0', '0');INSERT INTO `wp_zwq_statistics` ( `id` , `counter` , `date` , `flag` , `timestamp` , `ip` )VALUES ('2', '0', '0', '3', '0', '0');*/header("content-type:text/html;charset=gb2312");function wp_zwq_statistics() {//mysql_query("set names gbk"); /* * flag = 1 : 记录在线者IP的记录的标志位(缺省) * flag = 2 : 记录总访问人数的记录的标志位 * flag = 3 : 记录当日访问人数的记录的标志位 */ if(getenv('HTTP_CLIENT_IP')) { $onlineip = getenv('HTTP_CLIENT_IP'); } elseif(getenv('HTTP_X_FORWARDED_FOR')) { $onlineip = getenv('HTTP_X_FORWARDED_FOR'); } elseif(getenv('REMOTE_ADDR')) { $onlineip = getenv('REMOTE_ADDR'); } else { $onlineip = $HTTP_SERVER_VARS['REMOTE_ADDR']; } $browser = $_SERVER['HTTP_USER_AGENT']; $online = zwq_usr_online($onlineip); $totalcount = zwq_total_counter(); $todaycount = zwq_day_counter(); //修改下面代码来决定你想显示的内容/* echo "当前在线人数: $online<br> 本日访问: $todaycount 人次<br> 总访问量: $totalcount 人次<br> 您的IP地址是:<br>$onlineip<br> 您使用的浏览器是:<br>$browser<br>"; */ echo "$totalcount<br> $online<br>"; //echo iconv("ISO-8859-1", "UTF-8", "This is a test.");}/////////////////////////////////////////////////////////////////////////////////////////////////////function zwq_usr_online ($ip) { $timestamp = time(); $timeout = time()-300; mysql_query("INSERT INTO wp_zwq_statistics (timestamp,ip) VALUES ('$timestamp', '$ip')") or die("Error in query: ". mysql_error()); mysql_query("DELETE FROM wp_zwq_statistics WHERE timestamp<'$timeout' and flag=1") or die("Error in query: ". mysql_error()); $result = mysql_query("SELECT DISTINCT ip FROM wp_zwq_statistics") or die("Error in query: ". mysql_error()); $user = mysql_num_rows($result) - 1; return $user; }////////////////////////////////////////////////////////////////////////////////////////////////////function zwq_total_counter() { if (session_is_registered("tcount") == false) { session_register("tcount"); } else { return $_SESSION["tcount"]; } $result = mysql_query("SELECT counter FROM wp_zwq_statistics WHERE flag=2") or die("Error in query: ". mysql_error()); $row = mysql_fetch_row($result); $_SESSION["tcount"] = $row[0] + 1; $count=$_SESSION["tcount"]; mysql_query("UPDATE wp_zwq_statistics SET counter=$count WHERE flag=2") or die("Error in query: ". mysql_error()); return $count;}////////////////////////////////////////////////////////////////////////////////////////////////////////function zwq_day_counter() { if (session_is_registered("dcount") == false) { session_register("dcount"); } else { return $_SESSION["dcount"]; } $today = getdate(); $result = mysql_query("SELECT date, counter FROM wp_zwq_statistics WHERE flag=3") or die("Error in query: ". mysql_error()); $row = mysql_fetch_row($result); $date = $row[0]; $_SESSION["dcount"] = $row[1]; if (!strcmp($date, $today[mday].$today[month])) { $_SESSION["dcount"]++; } else { $_SESSION["dcount"] = 1; $date = $today[mday].$today[month]; } $count = $_SESSION["dcount"]; mysql_query("UPDATE wp_zwq_statistics SET counter=$count, date='$date' WHERE flag=3") or die("Error in query: ". mysql_error()); return $count;} ?> 招聘PHP开发人员 招聘人数2-3名职位描述: 基于 PHP + MySQL 开发网站程序任职资格 :1、精通使用 Apache + PHP + MySQL进行WEB的开发;2、掌握UML,至少熟练掌握一种UML建模工具;3、具有文档编写能力,面向对象的编程思想,优良的编程风格和习惯;4、计算机相关学历;有两年以上的php脚本开发经验; 5、对软件开发工作有富有热情,工作责任心强,富于团队精神和敬业精神;待遇根据能力定薪金,具体待遇面议,保证不低于同行业水平,有意者请发电子邮件到Email:[email protected]工作地点:北京望京科技园利泽中园或北京电子城科技园区 [靠近望京和酒仙桥地区] sql 简单便捷的分页技术(原创) libmcrypt 鼠标失去焦点自动保存广西框中的内容 新手问题 apache启动了,网站却不能访问? 请问哪儿有网上超市的源代码(php、MY SQL)!谢谢! 下载的源码文件怎么用要设什么吗?在线等,急 终于考完试了~~那个经常每天12小时在线的斑竹又回来啦~~ ^_^ (zxyufan) 请问PHP可不可以调用ActiveX控件啊 屏蔽phpmailer错误 有精通SEO技术的吗?我有个站有点问题,能帮忙诊断下吗? 求一正则表达式写法.
(
UID mediumint(8) unsigned not null primary key,
login_time int(10) unsigned,
last_action_time int(10) unsigned
)
是MYSQL的函数么?
统计在线情况和MYSQL有什么关系呢?
(
UID mediumint(8) unsigned not null primary key,
last_action_time int(10) unsigned
)last_action_time记录用户上次动作时间,PHP中预设一个变量$logout_time=300,time()-last_action_time>$logout_time的用户即视为不在线
用当前时间减去用户上次动作时间大于预设的300就能视为不在线???
我怎么还是不懂??
我怎么还是不懂??
--------------------------------------------------------------
用户每次有动作就更新last_action_time字段为当前时间,300秒内没有任何动作即视为掉线,
所以time()-last_action_time>300
/*
Description: 统计在线人数,本日访问人数,总访问人数,来访者IP,来访者操作系统和浏览器
CREATE TABLE `wp_zwq_statistics` (
`id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`counter` INT( 15 ) NOT NULL DEFAULT '0',
`date` VARCHAR( 20 ) NOT NULL DEFAULT '0',
`flag` TINYINT NOT NULL DEFAULT '1',
`timestamp` INT( 15 ) NOT NULL DEFAULT '0',
`ip` VARCHAR( 40 ) NOT NULL DEFAULT '0'
) ENGINE = MYISAM ;
INSERT INTO `wp_zwq_statistics` ( `id` , `counter` , `date` , `flag` , `timestamp` , `ip` ) VALUES ('1', '0', '0', '2', '0', '0');
INSERT INTO `wp_zwq_statistics` ( `id` , `counter` , `date` , `flag` , `timestamp` , `ip` )VALUES (
'2', '0', '0', '3', '0', '0');*/
header("content-type:text/html;charset=gb2312");
function wp_zwq_statistics() {
//mysql_query("set names gbk");
/*
* flag = 1 : 记录在线者IP的记录的标志位(缺省)
* flag = 2 : 记录总访问人数的记录的标志位
* flag = 3 : 记录当日访问人数的记录的标志位
*/
if(getenv('HTTP_CLIENT_IP')) {
$onlineip = getenv('HTTP_CLIENT_IP');
} elseif(getenv('HTTP_X_FORWARDED_FOR')) {
$onlineip = getenv('HTTP_X_FORWARDED_FOR');
} elseif(getenv('REMOTE_ADDR')) {
$onlineip = getenv('REMOTE_ADDR');
} else {
$onlineip = $HTTP_SERVER_VARS['REMOTE_ADDR'];
}
$browser = $_SERVER['HTTP_USER_AGENT'];
$online = zwq_usr_online($onlineip);
$totalcount = zwq_total_counter();
$todaycount = zwq_day_counter();
//修改下面代码来决定你想显示的内容
/* echo "当前在线人数: $online<br>
本日访问: $todaycount 人次<br>
总访问量: $totalcount 人次<br>
您的IP地址是:<br>$onlineip<br>
您使用的浏览器是:<br>$browser<br>"; */
echo "$totalcount<br> $online<br>";
//echo iconv("ISO-8859-1", "UTF-8", "This is a test.");
}
/////////////////////////////////////////////////////////////////////////////////////////////////////
function zwq_usr_online ($ip) {
$timestamp = time();
$timeout = time()-300;
mysql_query("INSERT INTO wp_zwq_statistics (timestamp,ip) VALUES ('$timestamp', '$ip')") or die("Error in query: ". mysql_error());
mysql_query("DELETE FROM wp_zwq_statistics WHERE timestamp<'$timeout' and flag=1") or die("Error in query: ". mysql_error());
$result = mysql_query("SELECT DISTINCT ip FROM wp_zwq_statistics") or die("Error in query: ". mysql_error());
$user = mysql_num_rows($result) - 1;
return $user; }
////////////////////////////////////////////////////////////////////////////////////////////////////
function zwq_total_counter() {
if (session_is_registered("tcount") == false) {
session_register("tcount");
}
else {
return $_SESSION["tcount"];
}
$result = mysql_query("SELECT counter FROM wp_zwq_statistics WHERE flag=2") or die("Error in query: ". mysql_error());
$row = mysql_fetch_row($result);
$_SESSION["tcount"] = $row[0] + 1;
$count=$_SESSION["tcount"];
mysql_query("UPDATE wp_zwq_statistics SET counter=$count WHERE flag=2") or die("Error in query: ". mysql_error());
return $count;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
function zwq_day_counter() {
if (session_is_registered("dcount") == false) {
session_register("dcount");
}
else {
return $_SESSION["dcount"];
}
$today = getdate();
$result = mysql_query("SELECT date, counter FROM wp_zwq_statistics WHERE flag=3") or die("Error in query: ". mysql_error());
$row = mysql_fetch_row($result);
$date = $row[0];
$_SESSION["dcount"] = $row[1];
if (!strcmp($date, $today[mday].$today[month])) {
$_SESSION["dcount"]++;
}
else {
$_SESSION["dcount"] = 1;
$date = $today[mday].$today[month];
}
$count = $_SESSION["dcount"];
mysql_query("UPDATE wp_zwq_statistics SET counter=$count, date='$date' WHERE flag=3") or die("Error in query: ". mysql_error());
return $count;
}
?>
招聘人数2-3名
职位描述: 基于 PHP + MySQL 开发网站程序
任职资格 :
1、精通使用 Apache + PHP + MySQL进行WEB的开发;
2、掌握UML,至少熟练掌握一种UML建模工具;
3、具有文档编写能力,面向对象的编程思想,优良的编程风格和习惯;
4、计算机相关学历;有两年以上的php脚本开发经验;
5、对软件开发工作有富有热情,工作责任心强,富于团队精神和敬业精神;待遇根据能力定薪金,具体待遇面议,保证不低于同行业水平,有意者请发电子邮件到Email:[email protected]
工作地点:
北京望京科技园利泽中园或北京电子城科技园区 [靠近望京和酒仙桥地区]