آموزش برنامه نویسی ، پایگاه داده sql server
آموزشگاه برنامه نویسی تحلیل داده : دوره های آموزشی برنامه نویسی و طراحی وب ASP.Net , C# , HTML , CSS , SQL Server


آموزشگاه برنامه نویسی مجتمع فنی تهران میرداماد : دوره های آموزشی برنامه نویسی و طراحی وب ASP.Net , C# , HTML , CSS , SQL Server

راهکارهای موثر در ASP.Net > اعتبار سنجی اطلاعات ورودی کاربران در فرم های وب

مقدمه :

یکی از مهمترین و ضروری ترین امکانات در طراحی سایت های تحت وب ، امکان اعتبار سنجی اطلاعات وارد شده توسط کاربران در فرم های ثبت اطلاعات است . برای این منظور به چند مثال اشاره می کنیم . مثلا در یک فرم ثبت نام اعضای جدید ، نیاز داریم مطمن شویم که کاربر آدرس Email ، يک آدرس صحیح ایمیل با فرمت مناسب را وارد کند و نه یکسری اعداد و ارقام بی معنی . یا مثلا در قسمت سن یا شماره تلفن ، اعداد وارد کرده و نیز این اعداد در شکل متعارفشان باشند .

برای سنجش داده های ورودی کاربران در فرم های وب و کنترل اینکه این اطلاعات در فرمت مورد نظر ما هستند ، در برنامه نویسی ASP.NET ، از کنترل های اعتبار سنج ( Validator Controls ) استفاده می شود . کنترل های اعتبار سنج در ASP.NٍET به 2 دسته کلی تقسیم می شوند :

  • دسته اول کنترل هایی هستند که عملیات اعتبار سنجی اطلاعات را به صورت اتوماتیک انجام داده و نیازی به کدنویسی اضافه توسط کاربر ندارند . برای مثال می توان به کنترل های RequiredFieldValidator و یا CompareValidator اشاره نمود .
  • دسته دوم کنترل هایی هستند که کاربر می تواند طبق نیاز و سلیقه خود ، جهت اعتبار سنجی داده های ورودی برای آنها کدنویسی مورد نظر خود را انجام می دهد . این کنترل ها بدون کدنویسی قادر به انجام کار خاصی نیستند . از این دسته کنترل ها می توان به کنترل CustomValidator اشاره کرد .

برای حمایت از این پروژه ، کتاب راهکارهای موثر در ASP.Net را دانلود نمایید ...

توضیح راهکار :

در این راهکار قصد داریم تا شما را با کنترل های مهم و پر کاربرد اعتبار سنجی اطلاعات و روش های استفاده از آنها در ASP.NET آشنا کنیم .
در اين قسمت ، شما ابتدا با چند کنترل اعتبار سنج داده که عملیات خود را به صورت اتوماتیک و بدون نیاز به کدنویسی خاص توسط کاربر انجام می دهند ، کار خواهید کرد . سپس با یک کنترل اعتبار سنج داده که می توانید برای آن کدنویسی دلخواه خود را انجام دهید ، آشنا خواهید شد .
روش استفاده شده در این راهکار به این صورت است که شما در یک سایت فرضی ، قصد دارید تا عملیات دریافت اطلاعات کاربران جدید را در قالب یک فرم ثبت نام انجام دهید . در این فرم ثبت نام ، از کاربران یک آدرس Email به عنوان شناسه کاربری و یک رمز عبور و تکرار آن برای حفظ امنیت و ورود به سیستم و در آخر هم سن آنها پرسیده می شود .
بنابراین با توجه به موارد فوق ، 4 هدف برای اعتبار سنجی داده ها در فرم فرضی خواهیم داشت :

  1. آدرس Email وارد شده توسط کاربر ِ ، یک آدرس Email در فرمت استاندارد باشد . مسلما در این مورد نمی توانیم بفهیم که آیا ایمیل وارد شده واقعا متعلق به کاربر مورد نظر است و يا اصلا چنین آدرس ایمیلی وجود دارد یا خیر . بلکه فقط می خواهیم مطمئن شویم که آدرس وارد شده با فرمت استاندارد آدرس ایمیل ( Someone@sth.xyz ) مطابقت داشته باشد . این عمل توسط کنترل RegularExpressionValidator انجام می شود .
  2. رمز عبور وارد شده توسط کاربر با رمز وارد شده در قسمت تکرار کلمه رمز یکسان باشد . این عمل توسط کنترل CompareValidator انجام می شود .
  3. سن وارد شده توسط کاربر در محدوده اعداد مورد نظر باشد . این عمل توسط کنترل RangeValidator انجام می شود .
  4. در کادرهایی که می بایست کاربر اطلاعات لازم را وارد کند ، از وارد شدن آنها مطمئن شویم ، تا کاربر آنها را خالی رها نکند . این کار توسط کنترل RequiredFieldValidator انجام می شود .


پس از توضیح اهدافی که در این راهکار داریم ، اقدام به طراحی کنترل ها و ملزومات لازم را برای تحقق هر یک از آنها می پردازیم .

گام اول :

در گام اول ، هدف شماره 1 یعنی نحوه تعیین اعتبار Email وارد شده توسط کاربر را نمایش می دهیم . این کار توسط کنترل RegularExpressionValidator انجام می شود . به طور کلی این کنترل توانایی مقایسه و اعتبار سنجی داده وارد شده با یکسری الگوهای ثابت را داراست . برای مثال تاریخ ، Email و یا شماره تلفن اطلاعاتی هستند که از یکسری الگوهای ثابت و خاص پیروی می کنند . کنترل RegularExpressionValidator توانایی آن را دارد که اطلاعات وارد شده را با الگو و قالب تعیین شده برای آن مقایسه کرده و صحت یا عدم صحت آن را اعلام نماید .
برای انجام این مرحله کنترل های ذبل با خواص تعیین شده برای هر کدام از آنها را در فرم خود قرار می دهیم :

  1. کنترل TextEmail : این کنترل که از نوع کادر متن < asp:TextBox > می باشد ، Email وارد شده از کاربر را دریافت می کند .
  2. کنترل 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 قرار داده ایم .
  3. کنترل 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 اشتباه را وارد نمایید . سپس کادر آدرس را خالی کرده و نتیجه را مشاهده نمایید . در انتها نیز یک آدرس صحیح را وارد کنید . خواهید دید که کنترل های اعتبار سنج پیام خطایی صادر نمی کنند .

مثال کنترل RegularExpressionValidator
<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>

کد
لطفا آدرس Email را وارد نمایید : خروجی

دانلود فایل عملی پروژه و نسخه PDF راهکار



راجع این مطلب سوال یا اشکالی دارید ؟! آن را در انجمن سایت مطرح نمایید ...         >>>>>  ورود به انجمن تخصصی


نطر خودتان درباره این صفحه را با ما در میان گذاشته و در صورت تمایل از Developer1 حمایت نمایید :

آیا مطالب این صفحه برای شما مناسب و مفید بوده است :

نام :                 
آدرس Email :    
 
نظر شما :  
 
سوال امنیتی : پایتخت ایران ؟      
حمایت از سایت Developer1