راهکارهای موثر در ASP.Net > اعتبار سنجی اطلاعات ورودی کاربران در فرم های وب
مقدمه :
یکی از مهمترین و ضروری ترین امکانات در طراحی سایت های تحت وب ، امکان اعتبار سنجی
اطلاعات وارد شده توسط کاربران در فرم های ثبت اطلاعات است . برای این منظور به چند
مثال اشاره می کنیم . مثلا در یک فرم ثبت نام اعضای جدید ، نیاز داریم مطمن شویم که
کاربر آدرس Email ، يک آدرس صحیح ایمیل با فرمت مناسب را وارد کند و نه یکسری اعداد
و ارقام بی معنی . یا مثلا در قسمت سن یا شماره تلفن ، اعداد وارد کرده و نیز این اعداد
در شکل متعارفشان باشند .
برای سنجش داده های ورودی کاربران در فرم های وب و کنترل اینکه این اطلاعات در فرمت
مورد نظر ما هستند ، در برنامه نویسی ASP.NET ، از کنترل های اعتبار سنج ( Validator
Controls ) استفاده می شود . کنترل های اعتبار سنج در ASP.NٍET به 2 دسته کلی تقسیم
می شوند :
- دسته اول کنترل هایی هستند که عملیات اعتبار سنجی اطلاعات را به صورت اتوماتیک انجام
داده و نیازی به کدنویسی اضافه توسط کاربر ندارند . برای مثال می توان به کنترل های
RequiredFieldValidator و یا CompareValidator اشاره نمود .
- دسته دوم کنترل هایی هستند که کاربر می تواند طبق نیاز و سلیقه خود ، جهت اعتبار سنجی
داده های ورودی برای آنها کدنویسی مورد نظر خود را انجام می دهد . این کنترل ها بدون
کدنویسی قادر به انجام کار خاصی نیستند . از این دسته کنترل ها می توان به کنترل CustomValidator
اشاره کرد .
برای حمایت از این پروژه ، کتاب
راهکارهای موثر در ASP.Net را دانلود نمایید ...
توضیح راهکار :
در این راهکار قصد داریم تا شما را با کنترل های مهم و پر کاربرد اعتبار سنجی اطلاعات
و روش های استفاده از آنها در ASP.NET آشنا کنیم .
در اين قسمت ، شما ابتدا با چند کنترل اعتبار سنج داده که عملیات خود را به صورت اتوماتیک
و بدون نیاز به کدنویسی خاص توسط کاربر انجام می دهند ، کار خواهید کرد . سپس با یک
کنترل اعتبار سنج داده که می توانید برای آن کدنویسی دلخواه خود را انجام دهید ، آشنا
خواهید شد .
روش استفاده شده در این راهکار به این صورت است که شما در یک سایت فرضی ، قصد دارید
تا عملیات دریافت اطلاعات کاربران جدید را در قالب یک فرم ثبت نام انجام دهید . در
این فرم ثبت نام ، از کاربران یک آدرس Email به عنوان شناسه کاربری و یک رمز عبور و
تکرار آن برای حفظ امنیت و ورود به سیستم و در آخر هم سن آنها پرسیده می شود .
بنابراین با توجه به موارد فوق ، 4 هدف برای اعتبار سنجی داده ها در فرم فرضی خواهیم
داشت :
- آدرس Email وارد شده توسط کاربر ِ ، یک آدرس Email در فرمت استاندارد باشد . مسلما
در این مورد نمی توانیم بفهیم که آیا ایمیل وارد شده واقعا متعلق به کاربر مورد نظر
است و يا اصلا چنین آدرس ایمیلی وجود دارد یا خیر . بلکه فقط می خواهیم مطمئن شویم
که آدرس وارد شده با فرمت استاندارد آدرس ایمیل ( Someone@sth.xyz ) مطابقت داشته باشد
. این عمل توسط کنترل RegularExpressionValidator انجام می شود .
- رمز عبور وارد شده توسط کاربر با رمز وارد شده در قسمت تکرار کلمه رمز یکسان باشد .
این عمل توسط کنترل CompareValidator انجام می شود .
- سن وارد شده توسط کاربر در محدوده اعداد مورد نظر باشد . این عمل توسط کنترل RangeValidator
انجام می شود .
- در کادرهایی که می بایست کاربر اطلاعات لازم را وارد کند ، از وارد شدن آنها مطمئن
شویم ، تا کاربر آنها را خالی رها نکند . این کار توسط کنترل RequiredFieldValidator
انجام می شود .
پس از توضیح اهدافی که در این راهکار داریم ، اقدام به طراحی کنترل ها و ملزومات لازم
را برای تحقق هر یک از آنها می پردازیم .
گام اول :
در گام اول ، هدف شماره 1 یعنی نحوه تعیین اعتبار Email وارد شده توسط کاربر را نمایش
می دهیم . این کار توسط کنترل RegularExpressionValidator انجام می شود . به طور کلی
این کنترل توانایی مقایسه و اعتبار سنجی داده وارد شده با یکسری الگوهای ثابت را داراست
. برای مثال تاریخ ، Email و یا شماره تلفن اطلاعاتی هستند که از یکسری الگوهای ثابت
و خاص پیروی می کنند . کنترل RegularExpressionValidator توانایی آن را دارد که اطلاعات
وارد شده را با الگو و قالب تعیین شده برای آن مقایسه کرده و صحت یا عدم صحت آن را
اعلام نماید .
برای انجام این مرحله کنترل های ذبل با خواص تعیین شده برای هر کدام از آنها را در
فرم خود قرار می دهیم :
- کنترل TextEmail : این کنترل که از نوع کادر متن < asp:TextBox
> می باشد ، Email وارد شده از کاربر را دریافت می کند .
- کنترل RegularExpressionValidator :برای این کنترل که عمل اعتبار
سنجی داده را انجام می دهد ، خواص زیر را تعریف می کنیم :
نام خاصيت
|
مقدار مورد نظر
|
شرح و عملکرد
|
ControlToValidate
|
TextEmail
|
این خاصیت تعیین کننده ID کنترلی است که می خواهیم اطلاعات آن را اعتبار سنجی کنیم
. در این مثال می خواهیم که اطلاعات کنترل TextEmail را بررسی کنیم . بنابراین مقدار
آن را برابر با ID آن قرار می دهیم .
|
Display
|
Dynamic
|
این خاصیت تعیین کننده حالت نمایش پیام error احتمالی در صورت بروز خطا در اطلاعات
وارده شده توسط کنترل RegularExpressionValidator است . هنگامی که مقدار آن را روی
مقدار Dynamic تنظیم کنیم ، کنترل به صورت پویا پیام error ایجاد شده را نمایش می دهد
.
|
ErrorMessage
|
آدرس Email وارد شده باید در قالب صحیح name@domain.xyz باشد .
|
این خاصیت که از نوع متن می باشد ، تعیین کننده یک پیام error است که در صورتی که email
وارد شده صحیح نباشد ، آن را نمایش خواهد داد . در جالت عادی فقط پیام خطا خاصیت
Text کنترل نمایش داده می شود و این پیام به صورت خودکار توسط کنترل در هنگام
بروز خطا نمایش داده نمی شود و برای نمایش آن باید از یک کنترل ValidationSummery استفاده
کرد که در بخش دوم این راهکار نحوه استفاده از آن را به شما نشان خواهیم داد
.
|
Text
|
قالب اشتباه !
|
این خاصیت که از نوم متن می باشد یک پیام error کوتاه را در صورتی که Email وارد شده
در قالب صحیح نباشد را نمایش می دهد .
|
ValidationGroup
|
AllValidators
|
این خاصیت گروه بندی کنترل های اعتبار سنج را در یک فرم یا صفحه تعیین می کند . کنترل
های اعتبار سنج را می توان به صورت دلخواه در گروه های مختفلی قرار داد . برای مثال
این کنترل را در گروه کنترل های AllValidators قرار داده ایم .
|
- کنترل RequiredFieldValidator : این کنترل برای جلوگیری از
خالی رها کردن کادر Email توسط کاربر استفاده می شود . اگر کاربر مقداری را در کنترل
وارد نکرده و آن را خالی بگذارد ، این کنترل یک پیام خطا نمایش می دهد . برای این کنترل
خواص زیر را تعیین می کنیم :
نام خاصيت
|
مقدار مورد نظر
|
شرح و عملکرد
|
ControlToValidate
|
TextEmail
|
این خاصیت تعیین کننده ID کنترلی است که می خواهیم کاربر آن را خالی رها نکند. در این
مثال می خواهیم کاربر حتما در کنترل TextEmail متن وارد کند . بنابراین مقدار آن را
برابر با ID آن قرار می دهیم .
|
Display
|
Dynamic
|
این خاصیت تعیین کننده حالت نمایش پیام error احتمالی در صورت خالی رها کردن کادر
متن کنترل شده توسط کنترل RequiredFieldValidator است . هنگامی که مقدار آن را
روی مقدار Dynamic تنظیم کنیم ، کنترل به صورت پویا پیام error ایجاد شده را نمایش
می دهد .
|
ErrorMessage
|
آدرس Email را وارد نمایید .
|
این خاصیت که از نوع متن می باشد ، تعیین کننده یک پیام error است که در صورتی که کادر
متن تحت کنترل خالی رها شده باشد ، آن را نمایش خواهد داد . در حالت عادی فقط پیام
خطا خاصیت Text کنترل نمایش داده می شود و این پیام به صورت خودکار توسط کنترل در هنگام
بروز خطا نمایش داده نمی شود و برای نمایش آن باید از یک کنترل ValidationSummery استفاده
کرد که در بخش دوم این راهکار نحوه استفاده از آن را به شما نشان خواهیم داد .
|
Text
|
*
|
این خاصیت چنانچه کنترل کادر متن خالی رها شود ، یک علامت * در کنار کنترل نشان می
دهد تا به کاربر اعلام نماید که فیلد داده ای مورد نظر خالی است .
|
ValidationGroup
|
AllValidators
|
این خاصیت گروه بندی کنترل های اعتبار سنج را در یک فرم یا صفحه تعیین می کند . کنترل
های اعتبار سنج را می توان به صورت دلخواه در گروه های مختفلی قرار داد . برای مثال
این کنترل را در گروه کنترل های AllValidators قرار داده ایم .
|
ValidationExpression
|
Internet e-mail address
|
این خاصیت تعیین کننده الگو و قالبی است که می خواهیم اطلاعات کنترل کادر متن مورد
نظرمان با آن مقایسه شود . کننرل RegularExpressionValidator
دارای چندین الگو و قالب پیش فرض برای اطلاعات پرکابرد مثل تاریخ و Email است . برای
انتخاب قالب Email در برنامه Visual Studio به حالت Design رفته و کنترل
RegularExpressionValidator را از روی صفحه انتخاب می کنیم . از پنجره Properties
Window خاصیت ValidationExpression کنترل را انتخاب کرده و یک کادر باز می شود . از
کادر باز شده گزینهInternet e-mail address را انتخاب می کنیم .
|
مثال : در مثال زیر نحوه استفاده از کنترل RegularExpressionValidator
به صورت عملی نشان داده است . در این مثال یک کنترل کادر متن که آدرس Email را از کاربر
دریافت می کند به همراه یک کنترل RegularExpressionValidator که آدرس وارد شده را چک
کرده و ِیک کنترل RequiredFieldValidator که از خالی ماندن آن جلوگیری می کند ، قرار
داده ایم . برای مشاهده عملکرد کنترل ها ، ابتدا یک آدرس Email اشتباه را وارد نمایید
. سپس کادر آدرس را خالی کرده و نتیجه را مشاهده نمایید . در انتها نیز یک آدرس صحیح
را وارد کنید . خواهید دید که کنترل های اعتبار سنج پیام خطایی صادر نمی کنند .
<asp:Label runat="server" ID="Label1" Text="
: را وارد نمایید Email لطفا آدرس "> </asp:Label>
<asp:TextBox ID="TextٍEmail" runat="server">
</asp:TextBox>
<asp:RegularExpressionValidator runat="server" ControlToValidate="TextEmail"
Display="Dynamic"
ID="REV1" ErrorMessage=" باید طبق الگو تعریف شده باشد Email آدرس"
Text="قالب اشتباه" ValidationGroup="AllValidators" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>
<asp:RequiredFieldValidator runat="server" ID="RF1"
ControlToValidate="TextEmail"
ErrorMessage="آدرس Email را وارد نمایید" Display="Dynamic" Text="*"></asp:RequiredFieldValidator>
|
|
دانلود فایل عملی پروژه و نسخه PDF راهکار
راجع این مطلب
سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...
>>>>> ورود به انجمن تخصصی
نطر خودتان درباره این صفحه را با ما در میان گذاشته و در صورت تمایل از Developer1
حمایت نمایید :