Bạn đang viết một trang web, bạn cần theo dõi thông tin của khách vì một lý do nào đó!? Hôm nay tôi sẽ trình bày cho các bạn cách viết một trang theo dõi thông tin của khách, tuy nhiên để dễ dàng cho bạn nên trong bài viết chỉ lấy địa chỉ IP (Internet Protocol) và OS (Operating System), dĩ nhiên là bạn có thể thêm bớt tùy ít :).
Tạo file mysql.php để kết nối database: (Cần thiết lập lại thông tin trong code dưới)
<?php
$db_host = "localhost";
$db_name = "sanchoituoitre.vn";
$db_username = "root";
$db_password = "";
@mysql_connect("{$db_host}", "{$db_username}", "{$db_password}") or die("Không thể kết nối");
@mysql_select_db("{$db_name}") or die("Không thể chọn database");
?>
Tạo table sessions:
CREATE TABLE `sessions` (
`id` VARCHAR( 255 ) NOT NULL ,
`ip_address` VARCHAR( 255 ) NOT NULL,
`os` VARCHAR( 255 ) NOT NULL,
`time` int( 11 ) NOT NULL
) TYPE = MYISAM ;
Tạo file index.php, để insert thông tin của khách:
<?php
require_once("mysql.php"); // tải file mysql
$ip_address = $_SERVER['REMOTE_ADDR']; // Lấy địa chỉ ip của khách
$minutes = 10; // số phút hết hạn truy cập, nếu khách có thời gian truy cập cuối sẽ bị xóa thông tin
$time_now = time(); // thời gian hiện tại
$time_out = $time_now - ( $minutes *60);
$session_id = md5( uniqid(microtime()) );
@mysql_query("DELETE FROM sessions WHERE time < {$time_out}"); // Xóa thông tin khách có thời gian quá 10 phút
$sql_query = @mysql_query("SELECT * FROM sessions WHERE ip_address='{$ip_address}'"); // Lấy thông tin khách
if ( @mysql_num_rows( $sql_query ) <= 0 ) // Nếu chưa có sẽ thêm vào table
{
@mysql_query("INSERT INTO sessions (id, ip_address, os, time) VALUES ($session_id, $ip_address, PHP_OS, $time_now)");
}
else // Nếu có sẽ cập nhật thời gian hiện tại
{
@mysql_query("UPDATE sessions SET time='{$time_now}' WHERE ip_address=''{$ip_address}");
}
?>
Tạo file session.php, để select thông tin của khách:
<?php
require_once("mysql.php"); // tải file mysql
$time_zone = 7;
$sql_query = @mysql_query("SELECT * FROM sessions ORDER BY time DESC");
print "Số khách truy cập trong vòng 10 phút qua:<br />";
if ( @mysql_num_rows )
{
while ( $result = @mysql_fetch_array( $sql_query ) )
{
$result['time'] = gmdate("d/m/Y, h:i a", $result['time'] + $time_zone*3600);
print "Khách {$result['ip_address']} sử dụng hệ điều hành {$result['os']} truy cập lần cuối vào lúc {$result['time']}.<br />";
}
}
?>
lyhuuloi
(Cung cấp bởi sanchoituoitre.vn) |