Thống kê web tư số lượng truy cập, số người online, số thành viên đang online, số khách đang online là vấn đề không thẻ thiếu trong 1 website. Nay ITSEOVN hướng dẫn các bạn cách tạo thống kê này giống hình dưới, thống kế hoàn chỉnh mà 90% các web đang sử dụng. Code thống kê bao gồm: Tổng số lượng truy cập Số người đang online Số thành viên đang online Số khách đang online Code thống kê thành viên online trong php 1. Tạo Cơ Sở Dữ Liệu Trong MySQL Tạo cơ sở dữ liệu gồm 2 bảng như dưới, chỉ cần copy code cho vào mysql chạy là được. Mã: CREATE TABLE `user_online` ( `id` VARCHAR( 50 ) NOT NULL PRIMARY KEY, `lastvisit` INT( 14 ) NOT NULL, `user` VARCHAR( 100 ) NULL ); CREATE TABLE `counter` ( `cnt` int(4) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8; INSERT INTO `counter` VALUES (0); 2. Tạo file PHP biến đếm Tạo 1 file php có tên thongke.php sau đó copy toàn bộ đoạn code sau vào trong file này. PHP: <?phpsession_start(); //khởi tạo session?><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><?php//Ket noi co so du lieu$link=mysqli_connect('localhost','root','','test') or die (mysqli_error());mysqli_query($link,'set names utf8');//Start Session $timeout=1;// Thoi gian timeout, tinh bang phut $id=session_id();//Lay id cua moi phien nguoi dung $user=$_SESSION['id'];//lay session để kiểm tra là thành viên hay khách (Dựa vào session của trang đăng nhập, Chỉ cần khi nhúng vào trang web đang làm) //Xem id da co trong csdl hay chua $sql="select 1 from `user_online` where `id`='$id'"; $rs=mysqli_query($link,$sql); if(mysqli_num_rows($rs)>0) { //Da co trong CSDL -> Cap nhat lai lastvisit $sql="update `user_online` set `lastvisit`=unix_timestamp(),`user`='$user' where `id`='$id'"; mysqli_query($link,$sql); } else { //Chua co trong CSDL -> Thêm vào CSDL $sql="insert into `user_online` values ('$id',unix_timestamp(),'$user')"; mysqli_query($link,$sql); } //Xoa nhung user da het thoi gian timeout $sql="delete from `user_online` where unix_timestamp()-lastvisit > $timeout * 60"; mysqli_query($link,$sql); //Lay so luong nguoi dang online $sql="select count(*) from `user_online`"; $rs=mysqli_query($link,$sql); $r=mysqli_fetch_row($rs); $cnt=str_pad($r[0],3,'0',STR_PAD_LEFT); $songuoionline=""; for($i=0;$i<strlen($cnt);$i++) { $digit=substr($cnt,$i,1); $songuoionline.="<img src='images/$digit.png' width='16' align='absmiddle' height='21' />"; }// Dem so thanh vien $sql="select count(*) from `user_online` where `user`!=''"; $rs=mysqli_query($link,$sql); $r=mysqli_fetch_row($rs); $cnt=str_pad($r[0],3,'0',STR_PAD_LEFT); $sothanhvien=""; for($i=0;$i<strlen($cnt);$i++) { $digit=substr($cnt,$i,1); $sothanhvien.="<img src='images/$digit.png' width='16' align='absmiddle' height='21' />"; }// Dem so khach $sql="select count(*) from `user_online` where `user`=''"; $rs=mysqli_query($link,$sql); $r=mysqli_fetch_row($rs); $cnt=str_pad($r[0],3,'0',STR_PAD_LEFT); $sokhach=""; for($i=0;$i<strlen($cnt);$i++) { $digit=substr($cnt,$i,1); $sokhach.="<img src='images/$digit.png' width='16' align='absmiddle' height='21' />"; } //Tang so luot truy cap (Mở rộng: Dùng thêm SESSION để 1 phiên truy cập chỉ tăng 1 lần) $sql="UPDATE `counter` SET `cnt`=`cnt`+1 "; mysqli_query($link,$sql); // Dem so luot truy cap $sql="SELECT `cnt` from `counter`"; $rs=mysqli_query($link,$sql); $r=mysqli_fetch_assoc($rs); $cnt=str_pad($r['cnt'],5,'0',STR_PAD_LEFT); $luotruycap=""; for($i=0;$i<strlen($cnt);$i++) { $digit=substr($cnt,$i,1); $luotruycap=$luotruycap. "<img src='images/$digit.png' width='16' align='absmiddle' height='21' />"; }?><div class="mycart" style="text-align:right;padding-right:10px"><div class="small_heading"> <h5 class="colr">THỐNG KÊ</h5></div><div style="clear:both"></div><?php echo "Số lượt truy cập: $luotruycap"; echo "<br/>Số người online: $songuoionline"; echo "<br/>Số thành viên: $sothanhvien"; echo "<br/>Số khách: $sokhach";?></div> Sau đó include('thongke.php') này vào nơi bạn cần. Chúc bạn thành công. Bài viết được bảo vệ bởi
Code thống kê bao gồm: Tổng số lượng truy cập : mỗi lần F5 tăng 1 Số người đang online : theo IP Số thành viên đang online : theo user Số khách đang online : theo IP
Toàn bộ em thấy khá ok nhưng mà có cách nào mà để khi F5 trên cùng một ip mà nó không tăng không anh nhỉ, nếu mà chỉnh được cái này em nghĩ quá ngon luôn
Theo mình thì bạn dùng hàm lấy ip rồi lưu vào bảng cơ sở dữ liệu sau đó kiểm tra để có insert vào bảng dữ liệu nữa k.
Cho mình hỏi là tại sau mình copy làm giống bạn mà bị lỗi chổ $user=$_SESSION['id']; nó không hiểu id là gì? cảm ơn
GIờ cái này cũng ko còn như xưa nữa hết hot rùi, giờ cố tình khỏi cho ng xem biết thông kê luôn, có chủ yếu admin xem thui à!
Cho mình hỏi là tại sau mình copy làm giống bạn mà bị lỗi chổ $user=$_SESSION['id']; nó không hiểu id là gì? cảm ơn ạk