2009-08-18 28 views
10

Tôi muốn ngăn các địa chỉ email trùng lặp trong quá trình đăng ký. Làm cách nào để tôi xác thực hộp văn bản khi nhập để địa chỉ email tương tự sẽ không được chấp nhận hai lần?Làm cách nào để ngăn chặn địa chỉ email trùng lặp trên biểu mẫu đăng ký người dùng?

+55

Huy hiệu "Không thô lỗ với người dùng mới" ở đâu? Chúng tôi sẽ bàn giao rất nhiều trong số những ngày này. Cắt người một chút chùng. Tiếng Anh có lẽ không phải là ngôn ngữ đầu tiên của anh và đây là lần đầu tiên anh đến đây. Ít nhất anh cũng bận tâm đăng ký. – tvanfosson

+7

Hoàn toàn đồng ý với @tvanfosson, có lẽ họ sẽ tốt hơn khi đặt câu hỏi về Chuyên gia-Trao đổi ...? – Kieron

+8

+1 cho tvanfosson để trỏ đến một vấn đề tràn ngăn xếp lớn thực sự. – bastianneu

Trả lời

0

Mã đó sẽ không được nhập vào/trên một hộp văn bản thay vì khi biểu mẫu được gửi, bạn sẽ kiểm tra xem nó đã được sử dụng chưa. Ngoài ra nếu bạn muốn làm điều đó nếu không (trong khi người dùng đang gõ) bạn có thể sử dụng ajax để giúp bạn làm điều này.

15

Tôi nghĩ rằng có lẽ là phù hợp nhất được xử lý như một ràng buộc duy nhất (hoặc chỉ số duy nhất) trên cột đó trong cơ sở dữ liệu. Điều này sẽ đảm bảo tính toàn vẹn của cơ sở dữ liệu và bạn có thể kiểm tra thông báo lỗi để xác định liệu chèn/cập nhật không thành công có phải là nguyên nhân hay không.

1

Tôi biết hai cách.

Cách 1: Tự động truy vấn cơ sở dữ liệu và hiển thị thông báo như "Địa chỉ email này đã có trong máy chủ, vui lòng chọn một địa chỉ khác" Bạn sẽ thực hiện kiểm tra mỗi lần người dùng nhập vào hộp văn bản.

Cách 2: Đăng ký hai giai đoạn khi gửi thông tin, bạn có một quy trình xác thực để kiểm tra xem tất cả thông tin có được chấp nhận hay không - trong trường hợp của bạn, kiểm tra sao chép địa chỉ email.

Tôi khuyên bạn nên sử dụng cách thứ hai để giảm tải máy chủ.

0

Tôi khuyên bạn nên thực hiện cả chỉ mục duy nhất trên cơ sở dữ liệu để bảo vệ toàn vẹn dữ liệu, nhưng bạn cũng phải có xác thực khi gửi hoặc thông qua một số cuộc gọi ajax kiểm tra địa chỉ email.

Các vấn đề liên quan