Code đếm số người đang online
Web 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 trang1. 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 trangGiả 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 IPPHP: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 filePHP:1. $COUNT_FILE = "countVisitor.dat"; 2. 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']) . 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. 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