Kênh Tên Miền chuyên cung cấp tên miền đẹp, giá rẻ! Hãy liên hệ kỹ thuật: 0914205579 - Kinh doanh: 0912191357 để được tư vấn, hướng dẫn miễn phí, Cảm ơn quý khách đã ủng hộ trong thời gian qua!
kiem tien, kiem tien online, kiem tien truc tuyen, kiem tien tren mang
Chủ Nhật, 8 tháng 7, 2012

Vấn đề là chúng ta muốn đếm số người truy cập trang web của mình trong ngày, tuần, khách đang online thì làm sao ? Có 2 cách: 1 đang ký free account ở trang web cung cấp  modun đếm người .; 2. tự code . Mình có Demo tự code đếm số người truy cập web , thực hiện trình tự như sau:
1. Tạo file"connect.php", file này sẽ kết nối CSDL với MySQL, tự tạo ra  CSDL "online", bảng DL "counter" ,nội dung file như sau:
<?php
$db_host = 'localhost'; // localhost / ip
$db_user = 'root';// tai khoan Admin
$db_pass = ''; // pass dang nhap
$db_data = 'shopping'; // ten database 

// thực hiện kết nối và kiểm tra có thành công hay không
if ($conn = @mysql_connect($db_host, $db_user, $db_pass)) {
    // nếu thành công, thực hiện chọn CSDL
    if (!@mysql_select_db($db_data)) {
        // nếu chọn thất bại, tiến hành tạo CSDL và tạo bảng.
        mysql_query('CREATE DATABASE `' . $db_data . '` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci');
        mysql_select_db($db_data);
        mysql_query('CREATE TABLE IF NOT EXISTS `counter` (
                `ip_address` varchar(15) NOT NULL,
                `last_visit` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
                KEY `ip_address` (`ip_address`)
        ) ENGINE=InnoDB DEFAULT CHARSET=latin1;');
    }
} else {
    // thông báo lỗi nếu không kết nối CSDL được.
    die(mysql_error());
}
?>
2. Tạo file "counter.php", file có nhiệm vụ lấy IP máy khách rồi  gửi về Server , lấy CSDL in ra  trình duyệt, nội dung file như sau:
 <meta http-equiv="content-type" content="text/html;charset=utf-8" />

<?php
$time_now = time();    // lưu thời gian hiện tại
$time_out = 60; // khoảng thời gian chờ để tính một kết nối mới (tính bằng giây)
$ip_address = $_SERVER['REMOTE_ADDR'];    // lưu lại IP của kết nối


require_once('connect.php');    // nhúng file kết nối CSDL vào

// kiểm tra xem thời gian hiện tại so với lần truy cập cuối có lớn hơn khoảng thời gian chờ không
    //- nếu không thì thôi
    //- nếu có thì thêm vào như là một kết nối mới
if (!mysql_num_rows(mysql_query("SELECT `ip_address` FROM `counter` WHERE UNIX_TIMESTAMP(`last_visit`) + $time_out > $time_now AND `ip_address` = '$ip_address'")))
    mysql_query("INSERT INTO `counter` VALUES ('$ip_address', NOW())");

// đếm số người đang online
$online = mysql_num_rows(mysql_query("SELECT `ip_address` FROM `counter` WHERE UNIX_TIMESTAMP(`last_visit`) + $time_out > $time_now"));

// đếm số người ghé thăm trong ngày (từ 0h ngày hôm đó đến thời điểm hiện tại)
$day = mysql_num_rows(mysql_query("SELECT `ip_address` FROM `counter` WHERE DAYOFYEAR(`last_visit`) = " . (date('z') + 1) . " AND YEAR(`last_visit`) = " . date('Y')));

// đếm số người ghé thăm ngay hôm qua 
$yesterday = mysql_num_rows(mysql_query("SELECT `ip_address` FROM `counter` WHERE DAYOFYEAR(`last_visit`) = " . (date('z') + 0) . " AND YEAR(`last_visit`) = " . date('Y')));

// đếm số người ghé thăm trong tuần (từ 0h ngày thứ 2 đến thời điểm hiện tại)
$week = mysql_num_rows(mysql_query("SELECT `ip_address` FROM `counter` WHERE WEEKOFYEAR(`last_visit`) = " . date('W') . " AND YEAR(`last_visit`) = " . date('Y')));

// đếm số người ghé thăm tuần trước
$lastweek = mysql_num_rows(mysql_query("SELECT `ip_address` FROM `counter` WHERE WEEKOFYEAR(`last_visit`) = " . (date('W') - 1). " AND YEAR(`last_visit`) = " . date('Y')));

// đếm số người ghé thăm trong tháng
$month = mysql_num_rows(mysql_query("SELECT `ip_address` FROM `counter` WHERE MONTH(`last_visit`) = " . date('n') . " AND YEAR(`last_visit`) = " . date('Y')));

// đếm số người ghé thăm trong năm
$year = mysql_num_rows(mysql_query("SELECT `ip_address` FROM `counter` WHERE YEAR(`last_visit`) = " . date('Y')));

// đếm tổng số người đã ghé thăm
$visit = mysql_num_rows(mysql_query("SELECT `ip_address` FROM `counter`"));


echo '<pre>' .'<br />' .'<br />' .
     ' Đang online: ' . $online . '<br />' .
     ' Hôm nay: ' . $day . '<br />' .
     ' Hôm qua: ' . $yesterday . '<br />' .
     ' Tuần này: ' . $week . '<br />' .
     ' Tuần trước: ' . $lastweek . '<br />' .
     ' Tháng này: ' . $month . '<br />' .
     ' Năm nay: ' . $year . '<br />' .
     ' Lượt truy cập: ' . $visit .
     '</pre>';
?> 

3. Tạo file"index.php" , file này có nhiệm vụ include file counter  ( nếu muốn kết quả đếm hiện ở đâu thì đặt " <?php include("counter.php"); ?>  ở đó ), nội dung  file như sau:
<?php
include("counter.php"); 
?>


4. Demo:
Hình minh họa :






0 nhận xét:

Đăng nhận xét

domain, domain name, premium domain name for sales

Popular Posts