فصل ۷.۳
اعتبارسنجی دادههای فرم (Validating Form Data)
در این بخش، نحوه انجام بررسیهای اعتبارسنجی (Validation Checks) روی دادههای فرم (Form Data) را بررسی میکنیم. برای مثال، میخواهیم مطمئن شویم که فیلدهای ضروری (Required Fields) خالی نیستند و محدودیتهای طول (Length Constraints) رعایت شدهاند.
برای شروع، بیایید یک نوع خطا (Error Type) جدید برای نگهداری خطاهای اعتبارسنجی (Validation Errors) ایجاد کنیم:
package main import "strings" // Define a new errors type, which we will use to hold the validation errors for // a form. The name of the form field will be used as the key. type errors map[string]string // Implement an Add() method to add error messages for a given field to the map. func (e errors) Add(field, message string) { e[field] = message } // Implement a Get() method to retrieve the first error message for a given // field from the map. func (e errors) Get(field string) string { return e[field] } // Define a new validator type which contains a map of validation errors for our // form fields. type validator struct { Errors errors } // Create a new validator instance with an empty errors map. func newValidator() *validator { return &validator{Errors: make(errors)} } // Valid() returns true if the errors map doesn't contain any entries. func (v *validator) Valid() bool { return len(v.Errors) == 0 } // NotBlank() returns true if a value is not an empty string. func (v *validator) NotBlank(value string) bool { return strings.TrimSpace(value) != "" } // MaxChars() returns true if a value contains no more than n characters. func (v *validator) MaxChars(value string, n int) bool { return len(value) <= n } // PermittedInt() returns true if a value is in a list of permitted integers. func (v *validator) PermittedInt(value int, permittedValues ...int) bool { for i := range permittedValues { if value == i { return true } } return false }
واژهنامه اصطلاحات فنی
| اصطلاح فارسی | معادل انگلیسی | توضیح |
|---|---|---|
| بررسیهای اعتبارسنجی | Validation Checks | بررسی صحت و اعتبار دادههای ورودی |
| دادههای فرم | Form Data | اطلاعات وارد شده توسط کاربر در فرم |
| فیلدهای ضروری | Required Fields | فیلدهایی که باید حتماً پر شوند |
| محدودیتهای طول | Length Constraints | محدودیت تعداد کاراکترهای مجاز |
| نوع خطا | Error Type | ساختار داده برای نگهداری خطاها |
| خطاهای اعتبارسنجی | Validation Errors | پیامهای خطا در مورد دادههای نامعتبر |
| نقشه خطاها | Error Map | ساختار داده برای ذخیره خطاها |
| اعتبارسنج | Validator | شیء مسئول بررسی اعتبار دادهها |
| بررسی خالی نبودن | Not Blank Check | بررسی پر بودن فیلد |
| مقادیر مجاز | Permitted Values | مقادیر قابل قبول برای یک فیلد |