Trong mã PHP của bạn, làm như sau:
if(isset($_SESSION["pagename-LAST_VIEWED"])) {
v = $_SESSION["pagename-LAST_VIEWED"])
if(time() - v < 15) {
// user is refreshing more than once per 15 seconds
// send them something else and die
}
}
$_SESSION["pagename-LAST_VIEWED"] = time();
Hãy bỏ qua dể thương của tôi pseudo-PHP, nó không phải là ngôn ngữ hàng ngày của tôi.
Điều này sẽ ngăn cả làm mới trang (F5) và người dùng chỉ cần nhấp lại vào dấu trang hoặc nhấn Enter trong thanh địa chỉ một lần nữa.
Bạn cũng có thể bật một số thẻ meta và tiêu đề HTTP bộ nhớ đệm tích cực, điều này sẽ ngăn không cho làm mới một số làm không bao giờ đánh máy chủ của bạn, nhưng mã trên phải khá dễ mở rộng.
Một điều cần xem xét: vấn đề gốc là mã khác của bạn, không phải là người dùng của bạn. Cân nhắc viết lại trang của bạn để nó tự động cập nhật phần họ muốn xem qua AJAX theo thời gian trễ. Điều này sẽ cung cấp cho họ sự khuyến khích không sử dụng Làm mới và sẽ giúp máy chủ của bạn đối phó bằng cách chỉ phải làm mới một chút dữ liệu mà họ muốn xem cập nhật.
Tại sao? Bạn đang cố gắng chống lại các biến POST gửi lại? Sử dụng AJAX. –
Bạn có nghĩa là khi mọi người làm mới trang hoặc CHỈ khi họ làm mới trang bằng cách nhấn F5? Làm rõ – colithium
Tại sao bạn muốn làm điều này? – Randell