Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Một số phương pháp để ngăn chặn việc đăng hai lần trong một biểu mẫu là gì? (PHP)

Nếu bạn muốn ngăn việc gửi hai lần, bạn phải lưu trữ trạng thái "được gửi" so với "không được gửi". Bạn có một số lựa chọn về nơi lưu giữ thông tin này.

  • Cơ sở dữ liệu - Thêm một trường ẩn với giá trị được tạo tự động là duy nhất (bạn có thể tạo một chuỗi ngắn ngẫu nhiên cho nó và thêm vào thời gian hiện tại). Giá trị này cũng có thể được sử dụng để xác định cuộc trò chuyện - nếu bạn cần một cuộc trò chuyện trên web trạng thái. Thêm giá trị này vào cơ sở dữ liệu và làm cho nó trở thành duy nhất. Nhược điểm:lưu trữ dư thừa trong cơ sở dữ liệu, giảm hiệu suất khi chèn nhận xét, phải tạo một chuỗi duy nhất.
  • Phiên - Thêm cùng một trường ẩn với một giá trị được tạo ra trong một vấn đề tương tự. Khi người dùng gửi biểu mẫu, hãy lưu giá trị trong phiên nếu nó chưa có ở đó. Nếu đúng, đó là một lần đệ trình gấp đôi. Nhược điểm:bạn vẫn cần tạo mã thông báo duy nhất.
  • Trình duyệt - (1) Thêm một số javascript để tắt nút gửi khi nó được nhấp vào. (2) có một trường ẩn bắt đầu bằng giá trị 0 và được thay đổi thành 1 khi người dùng nhấp vào nút gửi. Nếu người dùng nhấp lại vào nút, bạn kiểm tra xem giá trị có phải là 1 hay không và hủy bỏ nếu có. Ưu điểm:không có chuỗi duy nhất. Nhược điểm:yêu cầu kích hoạt javascript; bạn vẫn có thể yêu cầu chuỗi để triển khai các cuộc hội thoại trên web trạng thái.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Xử lý tập hợp kết quả lớn từ mysql với bộ nhớ hạn chế

  2. Chỉ chèn nếu các giá trị khác với bản ghi trước đó với nhiều lần chèn?

  3. MySQL - PHP:Hiển thị kết quả trong hàng bảng (5 kết quả mỗi hàng)

  4. MySQL khóa trong lỗi khóa trùng lặp

  5. Gọi thủ tục lưu trữ MySQL trên PHP