Code đếm số người đang online
Trang 1Web CD
Ý tưởng:
- Người dùng mở một trang thì có nghĩa là đang online
- Người dùng không mở trang nào sau một quảng thời gian nhất định thì xem như ra khỏi trang
1 User online:
Ý tưởng:
- Người dùng mở một trang thì có nghĩa là đang online
- Người dùng không mở trang nào sau một quảng thời gian nhất định thì xem như ra khỏi trang Giả mã:
Mỗi khi người dùng mở một trang thì
- Ghi vào CSDL thời điểm ghi, IP, trang đang mở
- Xóa bớt những record quá hạn tính từ thời điểm hiện tại
- Đếm số người đang xem trang theo IP
PHP:
1 $server = "localhost";
2 $db_user = "root";
3 $db_pass = "";
4 $database = "test";
5 $table = "userOnline";
6 $timeoutseconds = 300;
7 $timestamp=time();
8 $timeout=$timestamp-$timeoutseconds;
9 mysql_connect($server, $db_user, $db_pass) or die (mysql_error());
10 mysql_select_db($database);
11 mysql_query("INSERT INTO $table VALUES
('$timestamp','$REMOTE_ADDR','$PHP_SELF')") or die (mysql_error());
12 mysql_query("DELETE FROM $table WHERE timestamp<$timeout") or die (mysql_error());
13 $result=mysql_query("SELECT DISTINCT ip FROM $table WHERE file='$PHP_SELF'") or die (mysql_error());
14 $user =mysql_num_rows($result);
15 mysql_close();
16 echo "Có $user người đang xem trang $PHP_SELF.";
2 Đếm số người vào website
Ý tưởng:
- Khi người dùng mở trang chủ thì tăng số khách trong sổ ghi lên
- Tránh xung đột khi khi có hai hoạt động đọc và ghi cùng xãy ra
Giả mã:
- Mở file
- Khóa file
- Đọc nội dung file
- Tăng giá trị đọc lên 1
- Ghi trở lại file
- Mở khóa file
- Đóng file
PHP:
1 $COUNT_FILE = "countVisitor.dat";
Trang 22 if (file_exists($COUNT_FILE)) {
3 $fp = fopen("$COUNT_FILE", "r+");
4 flock($fp, 1);
5 $count = fgets($fp, 4096);
6 $count += 1;
7 fseek($fp,0);
8 fputs($fp, $count);
9 flock($fp, 3);
10 fclose($fp);
11 } else {
12 echo "Can't find file, check $COUNT_FILE
";
13 }
3 Đăng nhập:
Ý tưởng:
- Người dùng phải có user name và password hợp lệ
- Không cho đăng nhập tự động hay đăng nhập nhiều lần liên tiếp Giải pháp:
1 Dùng HTTP Authentication
2 Dùng Form đăng nhập tự tạo
PHP:
1 Dùng HTTP Authentication
1 $user="guest"; $password="password";
2 function authenticate() {
3 header('WWW-Authenticate: Basic realm="Đăng nhập"');
4 header('HTTP/1.0 401 Unauthorized');
5 echo "Vui lòng nhập tên và mật khẩu hợp lệ";
6 exit;
7 }
8 if (!isset($_SERVER['PHP_AUTH_USER'])