2010-08-09 35 views
8

Điểm trong việc xác thực các biểu mẫu HTML của bạn bằng cách sử dụng Javascript là gì, nếu bạn luôn cần phải xác thực các biểu mẫu bằng cách sử dụng PHP? Tôi nhận ra rằng bạn nhận được một tăng tốc độ từ này, và nó thuận tiện hơn cho người sử dụng, nhưng ngoài ra, là thời gian dành cho nó có giá trị nó? Nếu bất cứ ai có bất kỳ bằng chứng tốt về điều này tôi rất thích nghe nó.Tại sao bạn nên xác thực biểu mẫu bằng javascript?

Cảm ơn bạn đã trợ giúp!
Metropolis

CẬP NHẬT

Sau khi nhận được nhiều câu trả lời tôi muốn thay đổi câu hỏi một chút. Chúng ta đều biết rằng javascript thuận tiện hơn nhiều cho người dùng và nó cung cấp phản hồi nhanh hơn. Những gì tôi đang tự hỏi là: Có ai từng thấy bất kỳ "bằng chứng" nào đáng giá không? Hay chúng ta chỉ làm điều đó bởi vì nó làm cho mọi thứ tốt hơn một chút và mọi người nói chúng ta nên làm gì? Sự khác biệt tốc độ không phải là quan trọng, và khi internet được xác thực javascript nhanh hơn sẽ trở nên lỗi thời hơn tôi nghĩ.

Tôi bắt đầu tự hỏi liệu thời gian để xác thực một trang bằng javascript có thể được chi tiêu tốt hơn không.

+1

tôi hoàn toàn đồng ý với bạn, tôi không bao giờ sử dụng JS để xác thực, chỉ để trang trí :) – darma

+2

Do câu hỏi chúng tôi nhận thấy rằng bạn hiểu cả xác thực máy chủ và xác thực người dùng nên ** câu hỏi thực sự ở đây là việc tạo trải nghiệm người dùng tốt hơn bị lãng phí hay không **. Nó khá chủ quan. – Frankie

+0

@Frankie Có bạn là đúng ..... Những gì im thực sự tìm kiếm là tốt "bằng chứng" rằng nước ép có giá trị bóp. Đã có bất kỳ nghiên cứu thực hiện về điều này? Hầu hết các câu trả lời tôi nhận được ở đây đã nói với tôi những gì tôi biết. Mọi người luôn nói "javascript giúp người dùng dễ dàng hơn", nhưng nó có thực sự trả hết không? Hay chúng ta chỉ làm điều đó bởi vì nó làm cho nó dễ dàng hơn cho họ và giả định rằng nó trả hết? Ví dụ: – Metropolis

Trả lời

15

Lý tưởng nhất là bạn xác thực thông qua javascript và (trong trường hợp của bạn) PHP.

Cả hai phương pháp xác thực sẽ hoạt động song song để đảm bảo bạn có được chức năng thân thiện và thân thiện nhất có thể cho người dùng cuối của mình.

Bạn sẽ sử dụng xác thực phía máy khách để đảm bảo rằng tất cả các trường được điền vào, địa chỉ email hợp lệ, v.v. điều này sẽ cung cấp phản hồi tức thì và sẽ không gây gánh nặng cho máy chủ của bạn hoặc kết nối internet của người dùng.

bạn xác thực phía máy chủ cho bảo mật. Bạn có thể kiểm soát mọi thứ trên máy chủ và không có gì trên máy khách. Ở đây bạn đảm bảo rằng tất cả dữ liệu đã nhập không độc hại và chính xác.

Lưu ý điều này: nếu bạn chỉ đi với một loại xác thực, chọn xác thực phía máy chủ vì nó an toàn hơn. Bạn nên không bao giờ dựa vào mã phía máy khách cho bất kỳ loại bảo mật nào.

Sử dụng cả hai loại xác thực cung cấp cho bạn tốt nhất của cả hai thế giới (đáp ứng và bảo mật) trong khi không có bất kỳ nhược điểm nào. Tất nhiên, điều này có nghĩa là bạn phải viết nhiều mã hơn, nhưng theo ý kiến ​​của tôi, nó đáng giá.

EDIT: Để đối phó với những ý kiến ​​

Vâng, bạn phải viết mã hơn theo cách này ... Theo nguyên tắc của ngón tay cái, nếu nó khó khăn hơn cho các lập trình viên, nó dễ dàng hơn trên người dùng .Nó có thể không có ý nghĩa trong một số ngân sách để làm cả hai loại xác nhận và đó là một cuộc gọi bạn sẽ phải thực hiện. Chỉ cần đảm bảo xác thực phía máy chủ của bạn là đá rắn bất kể.

Có, thời gian là tiền và thời gian đầu tư để cải thiện trải nghiệm của người dùng được dành nhiều thời gian. Nếu bạn không thể đủ khả năng để làm điều đó ngay bây giờ (thời hạn/lịch trình/ngân sách) thì hãy làm điều đó khi bạn có thể.

+0

Vì vậy, điều duy nhất bạn thực sự có được là tốc độ? Nhưng tất cả thời gian thêm bạn chi tiêu làm javascript xác nhận để tiết kiệm một vài giây (hoặc ít hơn trong nhiều trường hợp)? Đừng làm cho tôi sai, tôi đã luôn luôn thực hiện cả hai cho đến bây giờ. Nhưng tôi chỉ đến một hình thức với 14 lĩnh vực và Im bắt đầu nghĩ rằng nó không có giá trị của hassel. – Metropolis

+8

Ngừng suy nghĩ về những gì thuận tiện cho BẠN, và bắt đầu suy nghĩ về những gì thuận tiện cho NGƯỜI DÙNG. ;) –

+0

@Liam LOL Tôi đồng ý ...... Nhưng thời gian là tiền bạc. – Metropolis

-9

Chạy PHP serverside, javascript chạy ứng dụng khách. Bạn không muốn xác thực biểu mẫu crunching máy chủ của mình khi bạn có thể yêu cầu máy tính khách làm như vậy. Thêm vào đó nó tiết kiệm băng thông.

+6

cũng bạn luôn cần phải xác thực hình thức máy chủ anyway ... – darma

+3

Sắp tới: phía khách hàng tiêm phòng tiêm sql. – Mchl

+0

Tôi đã biết những điều đó .... Đó là lý do tại sao tôi nói "Tôi nhận ra rằng bạn có được tốc độ tăng tốc từ điều này". Điều tôi muốn biết là, tôi có nhận được gì khác không? Bởi vì nó cần có thời gian để xác nhận trên cả hai đầu khi php là cần thiết, nhưng javascript thực sự là không. – Metropolis

2

Đó là tất cả về khả năng sử dụng. Nó thuận tiện hơn nhiều cho người dùng để đọc những lỗi mà họ đã thực hiện trước khi trang tải lại, thay vì liên tục gửi và tải lại trang. Nó cũng có thể cung cấp cho một cái nhìn đẹp hơn với một số AJAX và thích, chứ không phải là một tải lại của trang và các thông báo lỗi rất xấu xí tìm kiếm màu đỏ, tôi nghĩ. Vì vậy, lợi thế? Có thể sử dụng nhiều hơn là chỉ có xác thực phía máy chủ.

0

Để cung cấp trải nghiệm người dùng tốt hơn.

Phản hồi về xác thực JS nhanh hơn và do đó tốt hơn xác thực phía máy chủ khi gửi biểu mẫu.

0

Điểm chính của xác thực JavaScript (nếu có) là nó cải thiện trải nghiệm người dùng. Một chuyến đi khứ hồi tới máy chủ yêu cầu tải trang và nhấp nháy gây phiền nhiễu liên quan khi nó vẽ lại. Việc xác nhận hợp lệ trong mã JavaScript cho phép bạn hiển thị một thông báo mà không có tất cả điều đó.

Điều đó đang được nói, xác thực phía máy chủ vẫn được yêu cầu vì JavaScript không phải lúc nào cũng khả dụng (NoScript khá phổ biến) và vì người dùng độc hại sẽ bỏ qua JavaScript.

0

Riêng đối với các trang web được cơ sở dữ liệu hỗ trợ, nó có xu hướng là bạn cần phải thực hiện xác thực phía máy chủ. ví dụ. để đảm bảo bạn nhập dữ liệu hợp lệ vào cơ sở dữ liệu hoặc hệ thống khác. Tùy thuộc vào những gì trang web đang cập nhật điều này có thể là hoàn toàn quan trọng.

Tuy nhiên, xác thực phía khách hàng có thể mang đến trải nghiệm người dùng tốt hơn. Nó có thể được sử dụng để cung cấp phản hồi tức thì. ví dụ. khi bạn di chuyển tiêu điểm ra khỏi hộp văn bản, trình xác thực có thể cung cấp phản hồi tức thì, điều tuyệt vời khi bạn điền vào biểu mẫu phức tạp.

Điểm mấu chốt là bạn sẽ vẫn cần phải nhập dữ liệu tốt vào cơ sở dữ liệu của mình. Và chính xác hơn các thông tin được lưu trữ trong đó, các vấn đề ít hơn với hệ thống bạn sẽ có sau này. Bạn cần cả hai.

ví dụ: Điều gì sẽ xảy ra nếu ai đó cập nhật mã trang web trong tương lai và phá vỡ xác thực? hoặc ai đó viết kịch bản để tự động nhập dữ liệu, bỏ qua giao diện web của bạn, tất cả đều là xác thực?

Tôi sẽ nói lại. Bạn cần cả hai.

0

... tôi nghĩ bạn cũng đang giữ nghiệp lực của mình, khi hàng trăm hoặc hàng nghìn người dùng của bạn không muốn bạn đốt cháy địa ngục để họ điền vào 5-7 trường (với văn bản) để được thông báo trang tiếp theo họ gõ nhầm email của họ để họ phải bắt đầu lại: D nó không ăn nhiều thời gian của tôi để kết hợp javascript, id nói 1-2 phút tối đa cho 1 hình thức. và nó tiết kiệm rất nhiều tế bào thần kinh của người dùng của tôi. là một nhà nhân văn! yêu người hàng xóm!))

0

Xác thực phía máy khách cho phép trải nghiệm người dùng tăng lên. Phản hồi bạn cung cấp cho người dùng dẫn đến ít thất vọng hơn, ít lỗi hơn, nhiều chuyển đổi hơn, nhiều tiền hơn. Bạn thường có tỷ lệ phản hồi tốt hơn với loại xác thực này, điều này rất có giá trị.

Phần mềm chất lượng cao cần điều này. Người dùng cảm thấy hạnh phúc và họ sẽ truyền bá niềm vui của họ. Người dùng có trải nghiệm xấu sẽ không đến và sẽ không nói với bạn bè của mình.

Nó không chỉ trang trí khi bạn đến kinh doanh và bán hàng. ;) Lợi tức đầu tư đáng giá.

0

Dễ dàng.

Javascript để giúp người dùng nhập dữ liệu được định dạng chính xác. PHP để đảm bảo mọi thứ vào tập lệnh của bạn được làm sạch trước khi xử lý tiếp.

ofcourse bạn sẽ phải làm cả hai. Người dùng muốn nó, khách hàng của bạn muốn nó và thẳng thắn, bạn nghĩ rằng nó fugly nhận được php errormessages sau khi gửi là tốt.

Tôi không nghĩ rằng đối số của việc phải mã thêm .js mà có lẽ sẽ ăn lên thời gian/ngân sách của bạn giữ bất kỳ thruth. Có rất nhiều libs và script outthere, hoặc là một trong những sẽ cho phép bạn thiết lập xác nhận disco trong thời gian không ở tất cả. Tuy nhiên, không được mang đi với giao dịch kẹo mắt. .js xác nhận là chỉ có để giúp đỡ. Không gây ấn tượng.

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