Хуудсыг ачаалж байна. Түр хүлээнэ үү.
loading...

Хэрэгцээтэй мэдээлэл

Хандалт бүрийг тоолох [PHP+MySQL]
Уг тоолуур нь зочдыг давхцуулахгүй тоолох ба идэвхтэй хугацааг $session_active_time -д оноож өгсөн. Мөн кодны бүтэц нь PHP эхлэн суралцагчидад зориулагдсан болно.

1. Баазын хүснэгтээ үүсгэнэ.

Code:
CREATE TABLE `stats` (
  `id` int(11) NOT NULL auto_increment,
  `ip` varchar(255) default NULL,
  `session_id` varchar(255) default NULL,
  `session_time` int(11) default NULL,
  `user_id` int(11) default NULL,
  PRIMARY KEY  (`id`)
);


2. PHP код

Code:
<?
session_start();
$link = mysql_connect('localhost','root','');
mysql_select_db("test",$link);
$ip = getenv("REMOTE_ADDR");
$user_id=0; // hichneen user online bgaag medej bolno
$session_active_time = 10; //second oor. session ii idevhtei hugatsaag second eer todorhoilno. herev suuliin 5 min ii baidlaar gevel 300 geh met tohiruulna. bi turshihiin tuld 10 second deer tohiruulsan bolno.

$q_check_session = mysql_query("SELECT * FROM stats WHERE session_id='".session_id()."' AND ip='".$ip."' AND session_time>'".(time()-$session_active_time)."'");
if(mysql_num_rows($q_check_session)>0){
    mysql_query("UPDATE stats SET session_time='".time()."' WHERE ip='".$ip."' AND session_id='".session_id()."' LIMIT 1") or mysql_error(die("session ii tsagiig shinechilj chadsangui"));
}else{
    mysql_query("UPDATE stats SET session_id='' WHERE session_time<'".(time()-$session_active_time)."'") or mysql_error(die("huuchin session uudiig tseverlej chadsangui"));
    mysql_query("INSERT INTO stats(ip,session_id,session_time,user_id) VALUES('".$ip."','".session_id()."','".time()."','".$user_id."')") or mysql_error(die("session-g burtgej chadsangui"));
}
$niit_handalt = mysql_query("SELECT COUNT(*) FROM stats");
echo 'Niit handalt: <strong>'.mysql_result($niit_handalt,0).'';

//niit heden zochid online bgaag tooloh
$active_users = mysql_query("SELECT * FROM stats WHERE session_time>'".(time()-$session_active_time)."'");

// niit heden hereglegch holbogdson bgaag tooloh
$users_online = mysql_query("SELECT * FROM stats WHERE session_time>'".(time()-$session_active_time)."' AND user_id!=0");

?>



Нэмэлт тайлбар:
Хүмүүс USERS_ONLINE хэсгийг яаж хийх талаар их сонирхож байсан юм. Тиймээс user_id нүдийг би хичнээн хэрэглэгч холбогдсон болон хичнээн хэрэглэгч идэвхтэй үзэж байгааг тоолохоор ашигласан болно. Нийт үзэж буй хэрэглэгчийг session_time нүдэнд time() функц ашиглан тухайн цагийг аван сүүлийн хэдэн минутанд нийт хэдэн хүн зочилж байгааг харуулах боломжтой бөгөөд уг тооцооллыг давхцуулахгүй тооцоолъё гэвэл session_id нүдийг ашиглаарай.
Үнэлэх
Нэвтрэнэ үү
Үнэлгээ (4)

Сэтгэгдэл үлдээх
Нэр
Сэтгэгдэл
Өмнөх сэтгэгдлүүд »