Chào bạn, nếu bạn là thành viên xin đăng nhập (Quên mật khẩu?) nếu chưa bạn có thể đăng ký tài khoản mới.
Thông báo: Thành viên muốn đăng nhập ở trang chủ, vui lòng vào Diễn đàn đăng nhập, sau đó quay lại trang chủ.


Bài viết mới nhất

Tìm kiếm [Nâng cao]

Viết trang theo dõi thông tin khách

Người gửi: lyhuuloi

02/08/2005, 06:51 pm
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)

Bài phản hồi

 Thống kê chung
Đang trực tuyến
96 khách, 2 thành viên.
Thông số
Tổng số bài viết đã đăng: 57,953
Tổng số thành viên: 109155
Thành viên mới nhất: Anh Tú
Kỷ lục số người trực tuyến: 521   [ 09/04/2008, 02:18 am ]
[Thời gian tải trang này là 0.608 giây] - [25 truy vấn] - [GZIP bật]