Thành thật mà nói, nó gây ra quá nhiều rắc rối trong v1.0 để có chức năng yêu cầu ba lần gửi biểu mẫu, với $_SESSION
dữ liệu phiên giữ tất cả nội dung trung gian - chỉ để người dùng bắt đầu một hoạt động, sau đó mở tab thứ hai và thực hiện một hoạt động thứ hai mà chà đạp qua dữ liệu phiên.Làm cách nào để hạn chế ứng dụng của tôi thành một tab trình duyệt?
Tôi nghi ngờ rằng điều này là độc hại (nhưng không thể giảm giá). Nhiều khả năng người dùng bắt đầu một hoạt động, bị gián đoạn, quên rằng họ đã bắt đầu hoặc không thể tìm thấy tab gốc để bắt đầu lại (sau đó tìm tab gốc và cố gắng hoàn thành thao tác lần thứ hai).
Vì tôi đang viết mã bằng PHP, tôi có thể phát hiện sự tồn tại của dữ liệu phiên trong quá trình gửi biểu mẫu (làm cách nào để làm điều đó với JS nếu người dùng mở nhiều tab khác - tôi đoán rằng tôi sẽ cần Ajax - phải không?) .
Vì vậy, mỗi khi tôi bắt đầu một hoạt động, tôi kiểm tra cờ trong dữ liệu phiên và nếu tôi đặt lại thành “Tôi rất tiếc, Dave. Tôi sợ tôi không thể làm điều đó ”trang, khác tôi đặt cờ và tiếp tục (nhớ để xóa nó vào cuối của hoạt động).
Tôi đoán điều đó sẽ hiệu quả, nhưng:
1) Có thể chấp nhận giới hạn các ứng dụng trình duyệt cho một tab/cá thể không?
2) Tôi có nên cố gắng cho phép nhiều phiên bản trong v2.0 không?
Bất kỳ nhận xét, trợ giúp hoặc lời khuyên nào khác?
Nếu gặp sự cố này, có thể bạn cũng gặp sự cố với người dùng nhấp vào nút Quay lại của trình duyệt và sau đó tương tác với trang trước, ngay cả khi không có nhiều tab. Bạn không thể giả định rằng '$ _SESSION' luôn đồng bộ với trình duyệt. – Wyzard