Professional Documents
Culture Documents
ﺳﻠﺴﻠﺔ
اﻋﺪاد اﻟﻤﮭﻨﺪس
ﻣﺤﻤﺪ ﻋﻤﺮ اﻟﺤﺎج ﺧﻠﻒ
اﺳﺗﺧدام أدوات اﻟﺗﺣﻘق اﻟﻔﺻل اﻟﺛﺎﻟث
اﻟﻔﺻل اﻟﺛﺎﻟث
ﻓﻲ ھذا اﻟﻔﺻل ﺳﻧﺗﻌﻠم ﻛﯾف ﻧﺗﺣﻘق ﻣن ﻣدﺧﻼت اﻟﻣﺳﺗﺧدم ﻋﻧد ﻣﺣﺎوﻟﺔ إرﺳﺎﻟﮫ ﺑﯾﺎﻧﺎت ﻧﻣوذج ﻣﺎ إﻟﻰ
اﻟﺳﯾرﻓر ،ﻛﻣﺎ ﺳﻧﺗﻌﻠم ﻛﯾﻔﯾﺔ اﺳﺗﺧدام أدوات اﻟﺗﺣﻘق ﻟﻣﻧﻊ اﻟﻣﺳﺗﺧدم ﻣن إرﺳﺎل أﻧﻣﺎط ﺧﺎطﺋﺔ ﻣن
اﻟﺑﯾﺎﻧﺎت إﻟﻰ ﺟداول ﻗﺎﻋدة اﻟﺑﯾﺎﻧﺎت ،ﻋﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل ﻣﻧﻊ اﻟﻣﺳﺗﺧدم ﻣن إرﺳﺎل ﻛﻠﻣﺔ " ﺗﻔﺎﺣﺔ " ﻓﻲ
ﺣﻘل ﻣﺧﺻص ﻟﺗﺎرﯾﺦ اﻟﻣﯾﻼد .
ﻓﻲ اﻟﻘﺳم اﻷول ﻣن ھذا اﻟﻔﺻل ﺳﻧﺗﻌرف ﻋﻠﻰ أدوات اﻟﺗﺣﻘق اﻟﻘﯾﺎﺳﯾﺔ اﻟﻣﺿﻣﻧﺔ ﻓﻲ إطﺎر اﻟﻌﻣل
، ASP.net 4.0ﺣﯾث ﺳﻧﺗﻌﻠم ﻛﯾﻔﯾﺔ اﻟﺗﺣﻛم ﺑﻌرض رﺳﺎﺋل اﻷﺧطﺎء اﻟﻧﺎﺗﺟﺔ ﻋن ﻋﻣﻠﯾﺔ اﻟﺗﺣﻘق ،
وﻛﯾﻔﯾﺔ ﺿم ﻋﻧﺎﺻر اﻟﺗﺣﻘق ﻓﻲ ﻣﺟﻣوﻋﺎت ،وﺳﯾﺗم إرﻓﺎق ﻣﺛﺎل ﺗوﺿﯾﺣﻲ ﻟﻛل أداة ﻣن أدوات
اﻟﺗﺣﻘق ﻋﻠﻰ ﺣدى .
ﺑﻌد ذﻟك ﺳﻧﺗوﺳﻊ ﻓﻲ ﻣﻔﺎھﯾم أدوات اﻟﺗﺣﻘق ،ﺣﯾث ﺳﻧﺗﻌﻠم ﻛﯾﻔﯾﺔ اﻟﺗﻌﺎﻣل ﻣﻊ أدوات اﻟﺗﺣﻘق اﻟﺧﺎﺻﺔ ،
ﻣﺛﻼ ً ﻛﯾﻔﯾﺔ اﺳﺗﺧدام ﺗﻘﻧﯾﺔ اﻷﺟﺎﻛس ﻟﻠﺗﺣﻘق " "AjaxValidator controlواﻟذي ﯾﻣﻛﻧﻧﺎ ﻣن اﺳﺗدﻋﺎء
ﺗﺎﺑﻊ ﺗﺣﻘق ﻣوﺟود ﻋﻠﻰ اﻟﺳﯾرﻓر ﻣن ﻗﺑل اﻟﻌﻣﯾل ).(client
ﺗﺣﺗوي ﻣﻧﺻﺔ اﻟﻌﻣل ASP.net 4.0ﻋﻠﻰ ﺳت أدوات ﻗﯾﺎﺳﯾﺔ ﻟﻠﺗﺣﻘق ﻣن ﻣدﺧﻼت اﻟﻣﺳﺗﺧدم وھم :
ﻣﺛﺎل :
ﻓﻲ ھذا اﻟﻣﺛﺎل ﺳﻧﻘوم ﺑﺈﻧﺷﺎء ﻧﻣوذج ﺑﺳﯾط ،ﺣﯾث ﯾﻘوم اﻟﻣﺳﺗﺧدم ) طﺎﻟب اﻟﺛﺎﻧوﯾﺔ( ﺑﺈدﺧﺎل رﻗم
اﻛﺗﺗﺎﺑﮫ وﻧوع ﺷﮭﺎدﺗﮫ ﻟﻠﺣﺻول ﻋﻠﻰ ﻧﺗﺎﺋﺟﮫ اﻻﻣﺗﺣﺎﻧﯾﺔ .أﻧﺷﺊ ﺻﻔﺣﺔ ﺟدﯾدة ،أﺿف ﻋﻠﯾﮭﺎ أداة ﺗﺣﻛم
TextBoxوأداة DropDownListواﺟﻌﻠﮭﺎ ﺗﺣﺗوي ﻋﻠﻰ ﺛﻼﺛﺔ ﻋﻧﺎﺻر )ﻏﯾرﻣﺣدد ،ﻋﻠﻣﻲ ،أدﺑﻲ(
،أﺿف زر ﺳﻣـ ّـﮫ "إرﺳﺎل اﻟﺑﯾﺎﻧﺎت" ،أﺿف أداﺗﻲ ﺗﺣﻘق RequiredFieldValidatorواﺿﺑط
ﺧﺻﺎﺋﺻﮭم ﻛﺎﻟﺗﺎﻟﻲ :
: ﻛود اﻟﺻﻔﺣﺔ
ASP.net ﻛود
<div>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
ErrorMessage=" "اﻟﺤﻘﻞ ھﺬا اﻣﻸControlToValidate="TextBox1"
ForeColor="Red"></asp:RequiredFieldValidator>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<اﻻﻛﺘﺘﺎب رﻗﻢbr />
<asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server"
ControlToValidate="DropDownList1" ErrorMessage=""اﻟﺤﻘﻞ ھﺬا اﻣﻸ
ForeColor="Red" InitialValue=">"ﻏﯿﺮﻣﺤﺪد
</asp:RequiredFieldValidator>
<asp:DropDownList ID="DropDownList1" runat="server" Height="20px"
Width="125px">
<asp:ListItem Value="none"><واﺣﺪة اﺧﺘﺮ/asp:ListItem>
<asp:ListItem><ﻋﻠﻤﻲ/asp:ListItem>
<asp:ListItem><أدﺑﻲ/asp:ListItem>
</asp:DropDownList>
<اﻟﺸﮭﺎدة ﻧﻮعbr />
<asp:Button ID="Button1" runat="server" Text=" "اﻟﺒﯿﺎﻧﺎت إرﺳﺎل/>
</div>
ﻻﺣظ، اﺿﻐط ﻋﻠﻰ اﻟزر دون ادﺧﺎل ﺑﯾﺎﻧﺎت وﻻﺣظ ظﮭور رﺳﺎﺋل اﻟﺧطﺄ، ﻗم ﺑﺗﻔﯾذ اﻟﺻﻔﺣﺔ اﻟﺳﺎﺑﻘﺔ
" وﻣﻊ ذﻟكnone" ﺑﺄن ﺣﻘل ﻧوع اﻟﺷﮭﺎدة ﻟﯾس ﻓﺎرغ ﺣﯾث ﯾظﮭر ﻓﯾﮫ اﻟﻧص "ﻏﯾرﻣﺣدد" واﻟذي ﻗﯾﻣﺗﮫ
" ﻟﻠﺧﺎﺻﯾﺔnone" ﻓﻘد ظﮭرت رﺳﺎﻟﺔ اﻟﺧطﺄ "ھذا اﻟﺣﻘل ﻣطﻠوب " واﻟﺳﺑب ھو ﺗﺣدﯾد اﻟﻘﯾﻣﺔ
. DropDownList1 " ﻓﻲnone" وﻣﻌﻧﻰ ھذا أﻧﮫ ﯾﺟب إدﺧﺎل ﻗﯾﻣﺔ ﻣﻐﺎﯾرة ﻟﻠﻘﯾﻣﺔinitialValue
ﺗﻔﺣص ﻓﯾﻣﺎ إذا ﻛﺎﻧت اﻟﻘﯾﻣﺔ اﻟﻣدﺧﻠﺔ ﺗﻘﻊ ﺿﻣن ﻣﺟﺎل ﻣﺣدد ﻣن اﻟﻘﯾم أم: RangeValidator -٢
: وﻣن ﺧﺻﺎﺋﺻﮭﺎ. ﻻ
. ﻟﺗﺣدﯾد أداة اﻟﺗﺣﻛم اﻟﻣرﺗﺑطﺔ ﺑﺄداة اﻟﺗﺣﻘق ھذه: ControlToValidate
ﻟﺗﺣدﯾد رﺳﺎﻟﺔ اﻟﺧطﺄ اﻟﺗﻲ ﺳﺗظﮭر ﻓﻲ ﺣﺎل إدﺧﺎل ﻗﯾﻣﺔ ﺗﻘﻊ ﺧﺎرج: ErrorMessage
. اﻟﻣﺟﺎل اﻟﻣﺣدد
. أﻋﻠﻰ ﻗﯾﻣﺔ ﯾﻣﻛن ﻗﺑوﻟﮭﺎ: MaximumValue
. أﺻﻐر ﻗﯾﻣﺔ ﯾﻣﻛن ﻗﺑوﻟﮭﺎ: MinimumValue
اﺳﺗﺧدام أدوات اﻟﺗﺣﻘق اﻟﻔﺻل اﻟﺛﺎﻟث
: Type ﻧﻣط اﻟﺑﯾﺎﻧﺎت ،ﺣﯾث ﯾﺟب وﺿﻊ ﻧﻣط اﻟﺑﯾﺎﻧﺎت اﻟﻣﻧﺎﺳب ﻟﺗﺗم ﻋﻣﻠﯾﺔ ﻓﺣص
اﻟﻘﯾﻣﺔ اﻟﻣدﺧﻠﺔ ﺑﺷﻛل ﺳﻠﯾم ،وﯾﺄﺧذ إﺣدى اﻟﻘﯾم :
String , Integer , Double , Date, Currency .
ﻣﺛﺎل :
ﻓﻲ ﻧﻣوذج إدﺧﺎل ﻋﻼﻣﺎت اﻻﻣﺗﺣﺎن ﺣﯾث إن اﻟﻌﻼﻣﺔ ﯾﺟب أن ﺗﻘﻊ ﺿﻣن اﻟﻣﺟﺎل ﻣن ٠إﻟﻰ . ١٠٠
أﻧﺷﺊ ﺻﻔﺣﺔ ﺟدﯾدة ،أﺿف ﻋﻠﯾﮭﺎ أداة ﺗﺣﻛم ،TextBoxأﺿف زر ﺳﻣـ ّـﮫ "إرﺳﺎل اﻟﺑﯾﺎﻧﺎت" ،أﺿف
أداة ﺗﺣﻘق RangeValidatorواﺿﺑط ﺧﺻﺎﺋﺻﮭﺎ ﻛﺎﻟﺗﺎﻟﻲ :
اﻟﻘﯾﻣﺔ اﻟﺧﺎﺻﯾﺔ
TextBox1 ControlToValidate
ﻋﻼﻣﺔ ﺧﺎطﺋﺔ ErrorMessage
٠ MinimumValue
١٠٠ MaximumValue
Integer Type
ﻛود ASP.net
><div
"<asp:RangeValidator ID="RangeValidator1" runat="server
"" ControlToValidate="TextBox1" ForeColor="Redﺧﺎطﺌﺔ ﻋﻼﻣﺔ"=ErrorMessage
>"MaximumValue="100" MinimumValue="0" Type="Integer
></asp:RangeValidator
><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox
اﻟﻌﻼﻣﺔ أدﺧﻞ
><br /
>" /اﻟﺒﯿﺎﻧﺎت إرﺳﺎل"=<asp:Button ID="Button1" runat="server" Text
></div
ﻗم ﺑﺗﻧﻔﯾذ اﻟﺻﻔﺣﺔ اﻟﺳﺎﺑﻘﺔ وأدﺧل رﻗم أﻛﺑر ﻣن ١٠٠أو أﺻﻐر ﻣن ٠ﻟﺗظﮭر ﻟك رﺳﺎﻟﺔ "ﻋﻼﻣﺔ
ﺧﺎطﺋﺔ " ،ﺟرب ﺑﻌد ذﻟك إدﺧﺎل ﻗﯾﻣﺔ ﻧﺻﯾﺔ – ﻣﺛﻼ ً :ﺗﻔﺎﺣﺔ – ﺳﺗﺟد أن رﺳﺎﻟﺔ اﻟﺧطﺄ ﺳﺗظﮭر أﯾﺿﺎ ً
ﻗم ﺑﻌد ذﻟك ﺑﺗرك اﻷداة TextBox1ﻓﺎرﻏﺔ واﺿﻐط ﻋﻠﻰ اﻟزر ﺳﺗﻼﺣظ ﻋدم ظﮭور رﺳﺎﻟﺔ اﻟﺧطﺄ ،
وذﻟك ﻷن أداة اﻟﺗﺣﻘق ھذه ﺗﻘوم ﻓﻘط ﺑﻔﺣص اﻟﻘﯾﻣﺔ اﻟﻣدﺧﻠﺔ إن وﺟدت وإن ﻟم ﺗوﺟد ﻓﻼ ﺗطﺎﻟب
ﺑﺈدﺧﺎﻟﮭﺎ ،ﻹﺟﺑﺎر اﻟﻣﺳﺗﺧدم ﻋﻠﻰ إدﺧﺎل ﻋﻼﻣﺔ ﯾﺟب اﺳﺗﺧدام اﻷداة RequiredFieldValidator
ورﺑطﮭﺎ ﻣﻊ TextBox1ﺣﯾث ﻣن اﻟﻣﻣﻛن رﺑط أﻛﺛر ﻣن أداة ﺗﺣﻘق ﻣﻊ ﻧﻔس ﺣﻘل اﻹدﺧﺎل .
اﺳﺗﺧدام أدوات اﻟﺗﺣﻘق اﻟﻔﺻل اﻟﺛﺎﻟث
ﻣﺛﺎل :
ﻧﺳﺗﻌرض ﻓﻲ ھذا اﻟﻣﺛﺎل ﻛﯾﻔﯾﺔ اﻟﺗﺣﻘق ﻣن ﻧﻣط اﻟﺑﯾﺎﻧﺎت اﻟﻣدﺧﻠﺔ ،ﺳﻧﻘوم ﺑﺈﻧﺷﺎء ﻧﻣوذج ﺑﺳﯾط ﻹدﺧﺎل
ﺗﺎرﯾﺦ اﻟﻣﯾﻼد و ﺳﺗظﮭر رﺳﺎﻟﺔ ﺧطﺄ إن ﻗﺎم اﻟﻣﺳﺗﺧدم ﺑﺈدﺧﺎل ﻗﯾﻣﺔ ﻣن ﻧﻣط ﺑﯾﺎﻧﺎت آﺧر ﻏﯾر ، Date
أﻧﺷﺊ ﺻﻔﺣﺔ ﺟدﯾدة،أﺿف أدوات اﻟﺗﺣﻛم Button،TextBoxوأداة اﻟﺗﺣﻘق CompareValidator
واﺿﺑط ﻓﯾﮭﺎ اﻟﺧﺻﺎﺋص اﻟﺗﺎﻟﯾﺔ :
اﻟﻘﯾﻣﺔ اﻟﺧﺎﺻﯾﺔ
TextBox1 ControlToValidate
ﻧﻣط ﺑﯾﺎﻧﺎت ﺧﺎطﺊ ErrorMessage
date Type
DataTypeCheck Operator
اﺳﺗﺧدام أدوات اﻟﺗﺣﻘق اﻟﻔﺻل اﻟﺛﺎﻟث
: ﻛود اﻟﺻﻔﺣﺔ
ASP.net ﻛود
<div>
<asp:CompareValidator ID="CompareValidator1" runat="server"
ErrorMessage=""ﺧﺎطﺊ ﺑﯿﺎﻧﺎت ﻧﻤﻂ
ControlToValidate="TextBox1"
ForeColor="Red"
Operator="DataTypeCheck" Type="Date">
</asp:CompareValidator>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<اﻟﻤﯿﻼد ﺗﺎرﯾﺦbr />
<asp:Button ID="Button1" runat="server" Text=" "اﻟﺒﯿﺎﻧﺎت إرﺳﺎل/>
</div>
أﻣﺎ ﻟو أدﺧﻠت، ﺳﯾﺗم ﻗﺑول اﻟﺑﯾﺎﻧﺎت، واﺿﻐط ﻋﻠﻰ اﻟزر1/1/2000 ﻧﻔذ اﻟﺻﻔﺣﺔ اﻟﺳﺎﺑﻘﺔ وأدﺧل
. ﻗﯾﻣﺔ ﻣن ﻧﻣط ﺑﯾﺎﻧﺎت ﺧﺎطﺊ ﻓﺳﺗظﮭر رﺳﺎﻟﺔ اﻟﺧطﺄ اﻟﻣﺣددة
١٠ ﺳﻧﻘوم ﻓﻲ ھذا اﻟﻣﺛﺎل ﺑﺈﻧﺷﺎء ﻧﻣوذج ﺑﺳﯾط ﯾﺗم ﻓﯾﮫ ﻗﺑول اﻟدﺧل إذا ﻛﺎﻧت اﻟﻘﯾﻣﺔ اﻟﻣدﺧﻠﺔ أﻛﺑر ﻣن
وأداةButton،TextBox أﺿف أدوات اﻟﺗﺣﻛم، أﻧﺷﺊ ﺻﻔﺣﺔ ﺟدﯾدة، وإﻻ ﺳﺗظﮭر رﺳﺎﻟﺔ ﺧطﺄ
: واﺿﺑط ﻓﯾﮭﺎ اﻟﺧﺻﺎﺋص اﻟﺗﺎﻟﯾﺔCompareValidator اﻟﺗﺣﻘق
اﻟﻘﯾﻣﺔ اﻟﺧﺎﺻﯾﺔ
TextBox1 ControlToValidate
ﻗﯾﻣﺔ ﺧﺎطﺋﺔ ErrorMessage
Integer Type
GreaterThan Operator
10 ValueToCompare
: ﻛود اﻟﺻﻔﺣﺔ
ASP.net ﻛود
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:CompareValidator ID="CompareValidator1" runat="server"
ErrorMessage=""ﺧﺎطﺌﺔ ﻗﯿﻤﺔ
ControlToValidate="TextBox1"
ForeColor="Red"
Operator="GreaterThan"
اﺳﺗﺧدام أدوات اﻟﺗﺣﻘق اﻟﻔﺻل اﻟﺛﺎﻟث
Type="Integer"
ValueToCompare="10">
</asp:CompareValidator>
<br />
<asp:Button ID="Button1" runat="server" Text="Button" />
</div>
وھﻲ إﻋﺎدة ﻛﺗﺎﺑﺔ ﻛﻠﻣﺔ اﻟﻣرور، ﺳﻧﻘوم ﻓﻲ ھذا اﻟﻣﺛﺎل ﺑﺗطﺑﯾق أﺣد اﺳﺗﺧداﻣﺎت أدوات اﻟﺗﺣﻘق اﻟﺷﺎﺋﻌﺔ
Button،TextBox1,TextBox2 أﺿف أدوات اﻟﺗﺣﻛم، أﻧﺷﺊ ﺻﻔﺣﺔ ﺟدﯾدة، ﻟﻠﺗﺄﻛد ﻣن ﺻﺣﺗﮭﺎ
: واﺿﺑط ﻓﯾﮭﺎ اﻟﺧﺻﺎﺋص اﻟﺗﺎﻟﯾﺔCompareValidator وأداة اﻟﺗﺣﻘق
اﻟﻘﯾﻣﺔ اﻟﺧﺎﺻﯾﺔ
TextBox2 ControlToValidate
TextBox1 ControlToCompare
ﻛﻠﻣﺔ اﻟﻣرور وﺗﺄﻛﯾدھﺎ ﻏﯾر ﻣﺗطﺎﺑﻘﯾن ErrorMessage
String Type
Equal Operator
: ﻛود اﻟﺻﻔﺣﺔ
ASP.net ﻛود
<div>
<asp:TextBox ID="TextBox1" runat="server" TextMode="Password">
</asp:TextBox>
<اﻟﻤﺮور ﻛﻠﻤﺔ أدﺧﻞbr />
<asp:TextBox ID="TextBox2" runat="server" TextMode="Password">
</asp:TextBox>
اﻟﻤﺮور ﻛﻠﻤﺔ ﻛﺘﺎﺑﺔ أﻋﺪ
<asp:CompareValidator ID="CompareValidator1" runat="server"
ErrorMessage=""ﻣﺘﻄﺎﺑﻘﯿﻦ ﻏﯿﺮ وﺗﺄﻛﯿﺪھﺎ اﻟﻤﺮور ﻛﻠﻤﺔ
ControlToCompare="TextBox1"
ControlToValidate="TextBox2"
ForeColor="Red">
</asp:CompareValidator>
<br />
<asp:Button ID="Button1" runat="server" Text=" "اﻟﺒﯿﺎﻧﺎت إرﺳﺎل/>
</div>
، ﻧﻔذ اﻟﺻﻔﺣﺔ اﻟﺳﺎﺑﻘﺔ وﻗم ﺑﺈدﺧﺎل ﻛﻠﻣﺗﻲ ﻣرور ﻣﺧﺗﻠﻔﺗﯾن ﻓﻲ ﺣﻘﻠﻲ اﻹدﺧﺎل ﻟﺗظﮭر ﻟك رﺳﺎﻟﺔ اﻟﺧطﺄ
. وھذا ﻣﺎ ﻧراه ﻋﺎدة ﻓﻲ اﻟﻣﻧﺗدﯾﺎت ﻋﻧد ﺗﺳﺟﯾل ﻋﺿوﯾﺔ ﺟدﯾدة
اﺳﺗﺧدام أدوات اﻟﺗﺣﻘق اﻟﻔﺻل اﻟﺛﺎﻟث
وﻟﻛن ﻣﺎھو اﻟﺗﻌﺑﯾر اﻟﻣﻧﺗظم ؟ ﺑﺈﯾﺟﺎز :ھو ﺻﯾﻐﺔ ﻛﺗﺎﺑﺔ ﺷﻲء ﻣﺎ .ﻓﻣن اﻟﻣﻌﻠوم ﻋﻠﻰ ﺳﺑﯾل اﻟﻣﺛﺎل أن
اﻟﺑرﯾد اﻹﻟﻛﺗروﻧﻲ ﯾﻣﻠك اﻟﺻﯾﻐﺔ اﻟﺗﺎﻟﯾﺔ xxxxx@xxxxxxx.xxx :أي أﻧﮫ ﯾﺗﺄﻟف ﻣن )اﺳم اﻟﺣﺳﺎب
@ اﺳم اﻟﺟﮭﺔ اﻟﻣﺳﺗﺿﯾﻔﺔ .اﻟﻧطﺎق ( وﺑﺎﻟﺗﺎﻟﻲ ﻓﺈن إﻧﻘﺎص أي ﺟزء ﻣن اﻟﺻﯾﻐﺔ اﻟﺳﺎﺑﻘﺔ ﯾؤدي
ﻟﻠﺣﺻول ﻋﻠﻰ ﺑرﯾد إﻟﻛﺗروﻧﻲ ﻏﯾر ﺻﺣﯾﺢ ،ﻣﺎﻧرﯾد ﻋﻣﻠﮫ ھو اﻟﺗﺣﻘق ﻣن أن اﻟﻣﺳﺗﺧدم أدﺧل ﻗﯾﻣﺔ
ﺗﺗواﻓق ﻣﻊ ﺻﯾﻐﺔ ﻣﺣددة ،ﯾﺗم ﺗﺣدﯾد اﻟﺻﯾﻐﺔ ﺑﻣﺎ ﯾدﻋﻰ ﺑﺎﻟﺗﻌﺑﯾر اﻟﻣﻧﺗظم ،اﻟﺗﻌﺑﯾر اﻟﻣﻧﺗظم ﻟﻠﺑرﯾد
اﻻﻟﻛﺗروﻧﻲ :
*)\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+
ﻣﺛﺎل :
ﺳﻧﻘوم ﻓﻲ ھذا اﻟﻣﺛﺎل ﺑﻌﻣل ﻧﻣوذج ﺑﺳﯾط ﻹدﺧﺎل اﻟﺑرﯾد اﻹﻟﻛﺗروﻧﻲ واﻟﺗﺣﻘق ﻣن ﺻﺣﺔ ﺻﯾﻐﺗﮫ ،
أﻧﺷﺊ ﺻﻔﺣﺔ ﺟدﯾدة ،أﺿف أدوات اﻟﺗﺣﻛم Button ، TextBoxوأداة اﻟﺗﺣﻘق
RegularExpressionValidatorواﺿﺑط ﻓﯾﮭﺎ اﻟﺧﺻﺎﺋص اﻟﺗﺎﻟﯾﺔ :
اﻟﻘﯾﻣﺔ اﻟﺧﺎﺻﯾﺔ
TextBox1 ControlToValidate
ﺻﯾﻐﺔ ﺑرﯾد إﻟﻛﺗروﻧﻲ ﻏﯾر ﺻﺣﯾﺣﺔ ErrorMessage
*)\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+ ValidationExpression
ﻛود ASP.net
><div
><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox
اﻻﻟﻜﺘﺮوﻧﻲ ﺑﺮﯾﺪك أدﺧﻞ
><br /
"<asp:RegularExpressionValidator ID="RegularExpressionValidator1
"runat="server
"ﺻﺤﯿﺤﺔ ﻏﯿﺮ ﺻﯿﻐﺔ"=ErrorMessage
"ControlToValidate="TextBox1" ForeColor="Red
>"*)ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+
اﺳﺗﺧدام أدوات اﻟﺗﺣﻘق اﻟﻔﺻل اﻟﺛﺎﻟث
></asp:RegularExpressionValidator
><br /
>" /اﻟﺒﯿﺎﻧﺎت إرﺳﺎل"=<asp:Button ID="Button1" runat="server" Text
></div
ﻧﻔذ اﻟﺻﻔﺣﺔ اﻟﺳﺎﺑﻘﺔ وﻻﺣظ ظﮭور رﺳﺎﻟﺔ اﻟﺧطﺄ ﻋﻧد إدﺧﺎﻟك ﻟﺑرﯾد إﻟﻛﺗروﻧﻲ ذو ﺻﯾﻐﺔ ﻏﯾر ﺻﺣﯾﺣﺔ
ﻋﻧﺎوﯾن اﻟﺑرﯾد اﻹﻟﻛﺗروﻧﻲ ﻟﯾﺳت اﻷﻣر اﻟوﺣﯾد اﻟذي ﯾﺧﺿﻊ ﻟﻘواﻋد اﻟﺗﻌﺎﺑﯾر اﻟﻣﻧﺗظﻣﺔ ،ﻓﺄرﻗﺎم
اﻟﮭواﺗف ،أرﻗﺎم اﻟﺿﻣﺎن اﻻﺟﺗﻣﺎﻋﻲ ،ﻋﻧﺎﻧوﯾن ﻣواﻗﻊ اﻻﻧﺗرﻧت ....إﻟﺦ ﺟﻣﯾﻌﮭم ﯾﺧﺿﻌون ﻷﺳﻠوب
ﻛﺗﺎﺑﺔ ﻣﺣدد ﺑواﺳطﺔ اﻟﺗﻌﺎﺑﯾر اﻟﻣﻧﺗظﻣﺔ .ﺗﺣﺗوي ﻣﻧﺻﺔ اﻟﻌﻣل Visual Studioﻋﻠﻰ ﺻﯾﻎ اﻟﺗﻌﺎﺑﯾر
اﻟﻣﻧﺗظﻣﺔ اﻷﻛﺛر ﺷﯾوﻋﺎ ً ،ﻛﻣﺎ ﯾوﺟد اﻟﻌدﯾد ﻣن ﻣواﻗﻊ اﻻﻧﺗرﻧت اﻟﺗﻲ ﺗﻘدم ھذه اﻟﺧدﻣﺔ وﻣن أھﻣﮭﺎ :
http://regexlib.com
: CustomValidator -٥إن ﻟم ﺗؤدي أﯾﺎ ً ﻣن أدوات اﻟﺗﺣﻘق اﻟﺳﺎﺑﻘﺔ وظﯾﻔﺔ اﻟﺗﺣﻘق اﻟﺗﻲ ﺗرﯾدھﺎ
ﻓﺑﺈﻣﻛﺎﻧك ﺗﺻﻣﯾم أﺳﻠوب اﻟﺗﺣﻘق اﻟﺧﺎص ﺑك وذﻟك ﺑﺎﺳﺗﺧدام اﻷداة CustomValidatorوﻣن
اﻟﺧﺻﺎﺋص اﻟﮭﺎﻣﺔ ﻷداة اﻟﺗﺣﻘق ھذه :
: ControlToValidate ﻟﺗﺣدﯾد أداة اﻟﺗﺣﻛم اﻟﻣرﺗﺑطﺔ ﺑﺄداة اﻟﺗﺣﻘق ھذه .
: ErrorMessage ﻟﺗﺣدﯾد رﺳﺎﻟﺔ اﻟﺧطﺄ اﻟﺗﻲ ﺳﺗظﮭر ﻓﻲ ﺣﺎل ﻋدم ﺗواﻓق اﻟﻘﯾﻣﺔ اﻟﻣدﺧﻠﺔ
ﻣﻊ ﻗﯾد اﻟﺗﺣﻘق اﻟﻣﺣدد .
: ClientValidationFunction اﺳم ﺗﺎﺑﻊ ) ( functionاﻟﺗﺣﻘق اﻟذي ﺳﯾﺗم ﺗطﺑﯾﻘﮫ ﻋﻠﻰ
ﺟﺎﻧب اﻟﻌﻣﯾل ) . ( ClientSide
ﻣﺛﺎل :
ﻟو أردﻧﺎ ﻣﺛﻼ ً ﺟﻌل دﺧل اﻟﻣﺳﺗﺧدم ﻻ ﯾﺗﺟﺎوز ١٠أﺣرف ،وإﻻ ﺳﺗظﮭر رﺳﺎﻟﺔ ﺧطﺄ ﺗﺧﺑر اﻟﻣﺳﺗﺧدم
ﺑﺄﻧﮫ ﺗﺟﺎوز اﻟطول اﻟﻣﺳﻣوح ﺑﮫ .أﻧﺷﺊ ﺻﻔﺣﺔ ﺟدﯾدة ،أﺿف أدوات اﻟﺗﺣﻛم Button ، TextBox
وأداة اﻟﺗﺣﻘق CustomValidatorواﺿﺑط ﻓﯾﮭﺎ اﻟﺧﺻﺎﺋص اﻟﺗﺎﻟﯾﺔ :
اﺳﺗﺧدام أدوات اﻟﺗﺣﻘق اﻟﻔﺻل اﻟﺛﺎﻟث
اﻟﻘﯾﻣﺔ اﻟﺧﺎﺻﯾﺔ
TextBox1 ControlToValidate
ﺗﺟﺎوزت اﻟطول اﻟﻣﺳﻣوح ﺑﮫ ErrorMessage
C# ﻛود
protected void CustomValidator1_ServerValidate(object source,
ServerValidateEventArgs args)
{
if (args.Value.Length > 10)
args.IsValid = false;
else
args.IsValid = true;
}
VB ﻛود
Protected Sub CustomValidator1_ServerValidate(ByVal source As Object, ByVal
args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles
CustomValidator1.ServerValidate
. CustomValidator ﺗﻣﺛل اﻟﻘﯾﻣﺔ اﻟﻣدﺧﻠﺔ ﻓﻲ أداة اﻟﺗﺣﻛم اﻟﻣرﺗﺑطﺔ ﺑﺄداة اﻟﺗﺣﻘق: Value
. ﺗﺣدد ھل ﺗم ﺗﺟﺎوز ﺷرط اﻟﺗﺣﻘق ﺑﻧﺟﺎح أم ﻓﺷل: IsValid
ﺗﺣدد ھل ﯾﺗم ﺗطﺑﯾق ﺗﺎﺑﻊ اﻟﺗﺣﻘق اذا ﻟم ﯾدﺧل اﻟﻣﺳﺗﺧدم أي ﻗﯾﻣﺔ: ValidateEmptyText
. ﻓﻲ ﺣﻘل اﻹدﺧﺎل أم ﻻ
ﻣﺣﺎرف ﯾﺗم إﻋطﺎء اﻟﺧﺎﺻﯾﺔ١٠ ﻓﻲ اﻟﻛود اﻟﺳﺎﺑق ﻗﻣﻧﺎ ﺑﻔﺣص طول اﻟﻘﯾﻣﺔ اﻟﻣدﺧﻠﺔ ﻓﺈن ﺗﺟﺎوزت
وﺗﺟﺎوز اﺧﺗﺑﺎرtrue ) أي ﻓﺷل اﺧﺗﺑﺎر اﻟﺗﺣﻘق ( وإﻻ ﯾﺗم إﻋطﺎﺋﮫ اﻟﻘﯾﻣﺔfalse اﻟﻘﯾﻣﺔIsValid
. اﻟﺗﺣﻘق ﺑﻧﺟﺎح
اﺳﺗﺧدام أدوات اﻟﺗﺣﻘق اﻟﻔﺻل اﻟﺛﺎﻟث
ﻛود ASP.net
><div
><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox
"<asp:CustomValidator ID="CustomValidator1" runat="server
"ﺑﮫ اﻟﻤﺴﻤﻮح اﻟﻄﻮل ﺗﺠﺎوزت"=ErrorMessage
"ControlToValidate="TextBox1
"ForeColor="Red
>"onservervalidate="CustomValidator1_ServerValidate
></asp:CustomValidator
><br /
إن ﻛود C#أو VBاﻟﺳﺎﺑق ﻣوﺟود ﻋﻠﻰ اﻟﺳﯾرﻓر وﺑﺎﻟﺗﺎﻟﻲ ﻓﺈن ﻋﻣﻠﯾﺔ اﻟﺗﺣﻘق ﻣن دﺧل اﻟﻣﺳﺗﺧدم ﺳﺗﺗم
ﻋﻠﻰ اﻟﺟﺎﻧب اﻟﺳﯾرﻓر وھذا ﯾﺗطﻠب إرﺳﺎل ﺑﯾﺎﻧﺎت اﻟﺻﻔﺣﺔ ﻣﻣﺎ ﯾؤدي إﻟﻰ ﺑطﺊ ﻓﻲ ﻋﻣﻠﯾﺔ اﻟﺗﺣﻘق ،
ﺑﺈﻣﻛﺎﻧﻧﺎ ﺟﻌل ﻋﻣﻠﯾﺔ اﻟﺗﺣﻘق ﺗﺗم ﻋﻠﻰ ﺟﺎﻧب اﻟﻣﺳﺗﺧدم واﻟﺳرﻓر ﻣﻌﺎ ً وذﻟك ﺣﯾث ﻧﺳﺗﻔﺎد ﻣن ﺳرﻋﺔ
اﻟﺗﺣﻘق ﻋﻠﻰ ﺟﺎ ﻧب اﻟﻣﺳﺗﺧدم وﻣن ﺳﻼﻣﺔ ﻋﻣﻠﯾﺔ اﻟﺗﺣﻘق وﺿﻣﺎﻧﮭﺎ ﻋﻠﻰ ﺟﺎﻧب اﻟﺳﯾرﻓر ،ﯾﺗم اﻟﺗﺣﻘق
ﻋﻠﻰ ﺟﺎﻧب اﻟﻣﺳﺗﺧدم ﺑواﺳطﺔ ﻟﻐﺔ اﻟﺟﺎﻓﺎﺳﻛرﯾﺑت ،ﺣﯾث ﺗﺗم إﺿﺎﻓﺔ داﻟﺔ اﻟﺗﺣﻘق ﻓﻲ ﺻﻔﺣﺔ ASP
وھذا ﻣﺎﺳﯾﺗﺿﺢ ﻣن ﺧﻼل اﻟﻣﺛﺎل اﻟﺗﺎﻟﻲ .
أﻋد ﺗطﺑﯾق اﻟﻣﺛﺎل اﻟﺳﺎﺑق وأﺿف ﻓﻲ ﺻﻔﺣﺔ ASPداﻟﺔ اﻟﺟﺎﻓﺎﺳﻛرﺑت اﻟﺗﺎﻟﯾﺔ ) ﺣﯾث ﺗﺗم إﺿﺎﻓﺔ أﻛود
اﻟﺟﺎﻓﺎﺳﻛرﺑت ﺑﯾن وﺳﻣﻲ > <head>…. </headأﻋﻠﻰ اﻟﺻﻔﺣﺔ ( اﻟﻛود :
ﻛود JavaScript
>"<head runat="server
><title></title
>"<script type="text/javascript
)function My_ClientValidate(source, args
{
)if (args.Value.length > 10
;args.IsValid = false
else
;args.IsValid = true
}
></script
></head
><body
. . . .ﺑﺎﻗﻲ ﻛود اﻟﺻﻔﺣﺔ . . . . . .
اﺳﺗﺧدام أدوات اﻟﺗﺣﻘق اﻟﻔﺻل اﻟﺛﺎﻟث
ﺑﻌد اﻹﺿﺎﻓﺔ اﻟﺳﺎﺑﻘﺔ ﻗم ﺑﺗﻧﻔﯾذ اﻟﺻﻔﺣﺔ وأدﺧل ﻧص أطول ﻣن ١٠ﻣﺣﺎرف ﺛم اﺿﻐط ﻋﻠﻰ اﻟزر ،
ﺳوف ﺗظﮭر رﺳﺎﻟﺔ اﻟﺧطﺄ ،وﻟﻛن ﻻﺣظ ﻋدم إﻋﺎدة ﺗﺣﻣﯾل اﻟﺻﻔﺣﺔ ) ﻋدم ظﮭور ﺷرﯾط اﻟﺗﺣﻣﯾل
أﺳﻔل اﻟﻣﺗﺻﻔﺢ ( وھذا ﯾﻌﻧﻲ أن اﻟﺻﻔﺣﺔ ﻟم ﺗرﺳل ﻟﻠﺳﯾرﻓر ﺑﻌد ،وأن ﻋﻣﻠﯾﺔ اﻟﺗﺣﻘق ﻗد ﺗﻣت ﻋﻠﻰ
طرف اﻟﻣﺳﺗﺧدم ،وﻓﻲ ھذا ﺳرﻋﺔ أﻛﺑر وﺗﺧﻔﯾف ﻣن اﻟﻌبء ﻋﻠﻰ اﻟﺳﯾرﻓر .
وﺑﺎﻟﺗﺎﻟﻲ ﻓﺈن اﻟﺣل اﻷﻓﺿل ھو اﻟﺗﺣﻘق ﻋﻠﻰ ﻛﻼ اﻟﺟﺎﻧﺑﯾن ﻣﻌﺎ ً ﻛﻣﺎ ﻓﻌﻠﻧﺎ ﻓﻲ اﻟﻣﺛﺎل اﻟﺳﺎﺑق وﺑﮭذا
ﻧﺿﻣن ﻣزاﯾﺎ ﻛﻼ اﻷﺳﻠوﺑﯾن وﻧﺗﺟﺎوز ﻋﯾوﺑﮭﻣﺎ .
ﻣﺛﺎل :
* Text RequiredFieldValidator2
ﻟم ﺗﻘم ﺑﺈدﺧﺎل ﻛﻠﻣﺔ اﻟﻣرور ErrorMessage RequiredFieldValidator2
TextBox2 ControlToValidate RequiredFieldValidator2
ﻗم ﺑﺗﻧﻔﯾذ اﻟﺻﻔﺣﺔ اﻟﺳﺎﺑﻘﺔ واﺿﻐط ﻋﻠﻰ اﻟزر دون أن ﺗدﺧل أي
ً ﺳﺗﻼﺣظ ظﮭور اﻟرﻣز * ﺑﺟﺎﻧب ﻛﻼ، ﺑﯾﺎﻧﺎت ﻓﻲ ﺣﻘول اﻹدﺧﺎل
ﻛﻣﺎ، Text ﻣن ﺣﻘﻠﻲ اﻹدﺧﺎل وھﻲ اﻟﻘﯾﻣﺔ اﻟﻣﺣددة ﺑﺎﻟﺧﺎﺻﯾﺔ
ﺳﺗﻼﺣظ أﺳﻔل اﻟﺻﻔﺣﺔ ظﮭور رﺳﺎﻟﺗﻲ اﻟﺧطﺄ اﻟﻣﺣددﺗﯾن ﺑﺎﻟﺧﺎﺻﯾﺔ
ﺣﯾث ﯾﺗم، ﻟﻛﻼً ﻣن أداة اﻟﺗﺣﻘق اﻷوﻟﻰ واﻟﺛﺎﻧﯾﺔErrorMessage
ﻛﻣﺎ ھو. ﻋرﺿﮭﻣﺎ ﻛﺟزء ﻣن اﻷداة
. واﺿﺢ ﻓﻲ اﻟﺻورة
: ﻛود اﻟﺻﻔﺣﺔ
ASP.net ﻛود
<div>
</div>
وﺗﺄﺧذ... ﻣﺛﻼ ً ﻛﻘﺎﺋﻣﺔ أم ﻓﻘرة، ﻟﺗﺣدﯾد أﺳﻠوب ﻋرض رﺳﺎﺋل اﻷﺧطﺎء: DisplayMode
. List , BulletList , SingleParagraph : إﺣدى اﻟﻘﯾم
. ﻟﺗﺣدﯾد ﻋﻧوان ﯾظﮭر أﻋﻠﻰ رﺳﺎﺋل اﻟﺧطﺄ اﻟﻣﻌروﺿﺔ ﻓﻲ ھذه اﻷداة: HeaderText
اﺳﺗﺧدام أدوات اﻟﺗﺣﻘق اﻟﻔﺻل اﻟﺛﺎﻟث
ﻗم ﺑﺑﻧﺎء ﻧﻣوذج ﺷﺑﯾﮫ إﻟﻰ ﺣد ﻣﺎ ﺑﻧﻣوذج إﻧﺷﺎء ﺑرﯾد إﻟﻛﺗروﻧﻲ ﺟدﯾد وﻗم ﺑﺗطﺑﯾق ﻗﯾود اﻟﺗﺣﻘق ﻋﻠﻰ
ﻣدﺧﻼت اﻟﻣﺳﺗﺧدم ،ﺑﺎﻟﺷﻛل اﻟﺗﺎﻟﻲ :
واﺟﻌل رﺳﺎﺋل اﻟﺧطﺄ ﺗظﮭر ﻛﻘﺎﺋﻣﺔ أﺳﻔل اﻟﺻﻔﺣﺔ وﺑﺎﻟﻠون اﻷﺣﻣر .
ﻣﻼﺣظﺔ
ﯾﻣﻛن ﻟﻠﺧﺎﺻﯾﺔ Textأن ﺗﻘﺑل ﻛود HTMLﻛدﺧل ﻟﮭﺎ ،وﺑﺎﻟﺗﺎﻟﻲ ﻓﺈﻧﮫ ﻣن اﻟﻣﻣﻛن إظﮭﺎر ﺻورة
ﺻﻐﯾرة ﺑﺟﺎﻧب ﻛل ﺣﻘل ﯾﺧﺎﻟف ﺷرط اﻟﺗﺣﻘق وذﻟك ﺑدﻻ ً ﻣن اﻹﻛﺗﻔﺎء ﺑﺈظﮭﺎر رﺳﺎﻟﺔ ﺗوﺿﯾﺣﯾﺔ ﻛﻣﺎ
ﻓﻌﻠﻧﺎ ﻓﻲ اﻷﻣﺛﻠﺔ اﻟﺳﺎﺑﻘﺔ .
إن ﻛﻧت ﻣﮭﺗﻣﺎ ً ﺑﮭذه اﻟﻧﻘطﺔ ،ﻗم ﺑﺎﻟﻌودة ﻷﺣد اﻷﻣﺛﻠﺔ اﻟﺳﺎﺑﻘﺔ واﻋط اﻟﺧﺎﺻﯾﺔ Textﻷﺣد أدوات
اﻟﺗﺣﻘق اﻟﻘﯾﻣﺔ اﻟﺗﺎﻟﯾﺔ :
”>Text=”<img src=’Error.gif’ alt=’Required’ /
ﻣﻊ اﻷﺧذ ﺑﻌﯾن اﻻﻋﺗﺑﺎر وﺟود اﻟﺻورة اﻟﻣطﻠوﺑﺔ واﺳﻣﮭﺎ وﻣﺳﺎرھﺎ واﻣﺗدادھﺎ .
ﺑﺷﻛل اﻓﺗراﺿﻲ ،ﻓﺈن أدوات اﻟﺗﺣﻘق اﻟﺗﻲ ﺗﻌرﻓﻧﺎ ﻋﻠﯾﮭﺎ ﺗﻘوم ﺑﻌﻣﻠﯾﺔ اﻟﺗﺣﻘق ﻋﻠﻰ ﻛﻼ اﻟﺟﺎﻧﺑﯾن )
اﻟﺳﯾرﻓر واﻟﻌﻣﯾل ( ،ﻓﻌﻠﻰ ﺟﺎﻧب اﻟﻌﻣﯾل ﺗﺗم ﻋﻣﻠﯾﺔ اﻟﺗﺣﻘق ﻋﻠﻰ ﻣﺳﺗوى ﻣﺗﺻﻔﺢ اﻻﻧﺗرﻧت وﺑﺎﺳﺗﺧدام
ﻟﻐﺔ اﻟﺟﺎﻓﺎﺳﻛرﺑت ،اﻹﺻدارات ﻗﺑل ASP.net 3.5ﻛﺎﻧت ﺗدﻋم اﻟﺗﺣﻘق ﻋﻠﻰ ﺟﺎﻧب اﻟﻌﻣﯾل ﻓﻘط ﻋﻧد
اﺳﺗﺧدام اﻟﻣﺗﺻﻔﺢ ، Internet Explorerأﻣﺎ اﻹﺻدارات اﻟﺣدﯾﺛﺔ ﻓﺄﺻﺑﺣت ﻣدﻋوﻣﺔ ﻣن ﻗﺑل
ﻣﺗﺻﻔﺣﺎت ﻋدﯾدة Firefox , Operaﺑﺎﻹﺿﺎﻓﺔ طﺑﻌﺎ ً ﻟـ Internet Explorerوﻏﯾرھم .وﻓﻲ
اﺳﺗﺧدام أدوات اﻟﺗﺣﻘق اﻟﻔﺻل اﻟﺛﺎﻟث
ﺣﺎل ﻟم ﯾدﻋم اﻟﻣﺗﺻﻔﺢ اﻟﻣﺳﺗﺧدم ﻟﻐﺔ اﻟﺟﺎﻓﺎﺳﻛرﺑت ﻓﺈن أدوات اﻟﺗﺣﻘق ﺳﺗﻛﺗﻔﻲ ﺑﺈﺟراء ﻋﻣﻠﯾﺔ اﻟﺗﺣﻘق
ﻋﻠﻰ ﺟﺎﻧب اﻟﺳﯾرﻓر ﻓﻘط ﺣﯾث ﻟن ﺗﻛون ﻗﺎدرة ﻋﻠﻰ اﻟﻌﻣل ﻋﻠﻰ ﺟﺎﻧب اﻟﻌﻣﯾل .
ﻋﻠﻰ اﻟﻌﻣوم ،ﻓﺈن إﺟراء ﻋﻣﻠﯾﺔ اﻟﺗﺣﻘق ﻋﻠﻰ ﻛﻼ اﻟﺟﺎﻧﺑﯾن ﯾﻌد اﻟﺣل اﻷﻓﺿل ﻛﻣﺎ أﺳﻠﻔﻧﺎ ﻓﻲ ﻓﻘرة
ﺳﺎﺑﻘﺔ ،ﺣﯾث ﻧﺳﺗﻔﺎد ﻣن ﺳرﻋﺔ إﺟراء اﻟﺗﺣﻘق ﻋﻠﻰ ﺟﺎﻧب اﻟﻌﻣﯾل ﺑﺎﻹﺿﺎﻓﺔ ﻟﺿﻣﺎن ﺳﻼﻣﺔ اﻟﻌﻣﻠﯾﺔ
وﻋدم اﻟﺗﻼﻋب ﺑﮭﺎ ﻋﻠﻰ ﺟﺎﻧب اﻟﺳﯾرﻓر .
أﺧﯾرا ً ،ﺑﺈﻣﻛﺎﻧك إن ﺷﺋت إﻟﻐﺎء ﻋﻣﻠﯾﺔ اﻟﺗﺣﻘق ﻋﻠﻰ ﺟﺎﻧب اﻟﻌﻣﯾل واﻹﻛﺗﻔﺎء ﺑﺈﺟراﺋﮭﺎ ﻋﻠﻰ ﺟﺎﻧب
اﻟﺳﯾرﻓر وذﻟك ﺑﺈﺳﻧﺎد اﻟﻘﯾﻣﺔ Falseﻟﻠﺧﺎﺻﯾﺔ EnableClientScriptاﻟﻣوﺟودة ﻣﻊ ﺟﻣﯾﻊ أدوات
اﻟﺗﺣﻘق اﻟﺳﺎﺑﻘﺔ .
ﺟﻣﯾﻊ أدوات اﻟﺗﺣﻘق ﺗﻣﺗﻠك اﻟﺧﺎﺻﯾﺔ IsValidواﻟﺗﻲ ﺗﻌﯾد اﻟﻘﯾﻣﺔ Trueاذا ﻛﺎﻧت اﻟﺑﯾﺎﻧﺎت اﻟﻣدﺧﻠﺔ
ﻣواﻓﻘﺔ ﻟﺷرط اﻟﺗﺣﻘق اﻟﻣطﻠوب وإﻻ ﻓﺈﻧﮭﺎ ﺗﻌﯾد اﻟﻘﯾﻣﺔ ، Falseاﻟﺻﻔﺣﺔ ) ( Pageﺗﻣﺗﻠك أﯾﺿﺎ ً
اﻟﺧﺎﺻﯾﺔ IsValidواﻟﺗﻲ ﺗﻌﯾد Trueاذا وﻓﻘط اذا أﻋﺎدت ﺟﻣﯾﻊ أدوات اﻟﺗﺣﻘق اﻟﻣوﺟودة ﻓﻲ ﺗﻠك
اﻟﺻﻔﺣﺔ اﻟﻘﯾﻣﺔ ) Trueأي إن ﻟم ﯾﻛن ھﻧﺎك أي أﺧطﺎء ﻓﻲ دﺧل اﻟﻣﺳﺗﺧدم ( ،ﻋﻠﻰ اﻟﻌﻣوم ﻓﺈن
اﻟﺧﺎﺻﯾﺔ اﻟﺳﺎﺑﻘﺔ ﺗﻌﻣل ﻋﻠﻰ ﺟﺎﻧب اﻟﺳﯾرﻓر وﺑﺎﻟﺗﺎﻟﻲ ﻓﺈن ﻛﺎﻧت ﻋﻣﻠﯾﺔ اﻟﺗﺣﻘق ﻣن اﻟﻣدﺧﻼت ﺗﺗم ﻋﻠﻰ
ﻛﻼ اﻟﺟﺎﻧﺑﯾن ) ﺳﯾرﻓر – ﻋﻣﯾل ( ﻓﻼ داﻋﻲ ﻻﺳﺗﺧداﻣﮭﺎ ،وذﻟك ﻷن ﺑﯾﺎﻧﺎت اﻟﺻﻔﺣﺔ ﻟن ﺗرﺳل أﺳﺎﺳﺎ
إﻟﻰ اﻟﺳﯾرﻓر ﺣﺗﻰ ﺗﺟﺗﺎز اﺧﺗﺑﺎر اﻟﺗﺣﻘق ﻋﻠﻰ ﺟﺎﻧب اﻟﻌﻣﯾل وﻓﻲ ھذه اﻟﺣﺎﻟﺔ ﻓﺈن Page.IsValid
ﺳﺗﻌﯾد ﺣﺗﻣﺎ ً ، Trueأﻣﺎ إن ﺗم إﯾﻘﺎف ﻋﻣﻠﯾﺔ اﻟﺗﺣﻘق ﻋﻠﻰ ﺟﺎﻧب اﻟﻌﻣﯾل ) أو ﻛﺎن اﻟﻣﺗﺻﻔﺢ اﻟﻣﺳﺗﺧدم
ﻻﯾدﻋم اﻟﺟﺎﻓﺎﺳﻛرﺑت ( ﻋﻧدﺋذ ﯾﺻﺑﺢ اﺳﺗﺧدام اﻟﺧﺎﺻﯾﺔ اﻟﺳﺎﺑﻘﺔ ﺿرورﯾﺎ ً .
ﺟﻣﯾﻊ أدوات اﻟﺗﺣﻘق اﻟﺳﺎﺑﻘﺔ ﺗﻣﺗﻠك اﻟﺧﺎﺻﯾﺔ Displayواﻟﺗﻲ ﺗﺣدد آﻟﯾﺔ ﻋرض رﺳﺎﻟﺔ اﻟﺧطﺄ ﻋﻠﻰ
اﻟﺻﻔﺣﺔ ،وھﻲ ﺗﺄﺧذ إﺣدى اﻟﻘﯾم اﻟﺗﺎﻟﯾﺔ :
: Static ﺣﯾث ﯾﺗم ﺣﺟز ﻣﺳﺎﺣﺔ رﺳﺎﻟﺔ اﻟﺧطﺄ ﻋﻠﻰ اﻟﺻﻔﺣﺔ ﺣﺗﻰ إن ﻟم ﯾﻛن ھﻧﺎك ﺧطﺄ ﻓﻲ
دﺧل اﻟﻣﺳﺗﺧدم وﻟم ﺗﻛن ھﻧﺎك ﺿرورة ﻟﻌرض ھذه اﻟرﺳﺎﻟﺔ ،وﯾﻛون ﻛود HTMLاﻟﻧﺎﺗﺞ
ﻋﻧﮭﺎ :
ﻛود HTML
><span id="RequiredFieldValidator1" style="visibility:hidden;">*</span
اﺳﺗﺧدام أدوات اﻟﺗﺣﻘق اﻟﻔﺻل اﻟﺛﺎﻟث
: Dynamic ﻻ ﯾﺗم ﺣﺟز ﻣﺳﺎﺣﺔ رﺳﺎﻟﺔ اﻟﺧطﺄ ﻋﻠﻰ اﻟﺻﻔﺣﺔ ﺣﺗﻰ ظﮭورھﺎ ،وﯾﻛون ﻛود
HTMLاﻟﻧﺎﺗﺞ ﻋﻧﮭﺎ :
ﻛود HTML
><span id="RequiredFieldValidator١" style="display:none;">*</span
: None إن ﺗﺣدﯾد ھذا اﻟﺧﯾﺎر ﯾؤدي ﻟﻌدم ظﮭور رﺳﺎﻟﺔ اﻟﺧطﺄ ﺿﻣن أداة اﻟﺗﺣﻘق ،واﻻﻛﺗﻔﺎء
ﺑﺈرﺳﺎﻟﮭﺎ ﻟﻸداة ValidationSummaryﺣﯾث ﺗﻘوم ﺑﻌرﺿﮭﺎ .
ﻓﻲ ﻛﺛﯾر ﻣن اﻟﺣﺎﻻت ﻧﺣﺗﺎج ﻟﺑﻧﺎء أﻛﺛر ﻣن ﻧﻣوذج ﺗﺻﻣﯾم ﺿﻣن ﻧﻔس اﻟﺻﻔﺣﺔ ،ﻣﺛﻼ ً ﻓﻲ اﻟﺻﻔﺣﺔ
اﻟرﺋﯾﺳﯾﺔ ﻟﻣوﻗﻊ ﻓﯾﺳﺑوك facebook.comﯾوﺟد ﻧﻣوذﺟﯾن ،أﺣدھﻣﺎ ﻟﺗﺳﺟﯾل ﺣﺳﺎب ﺟدﯾد واﻵﺧر
ﻹﺟراء ﻋﻣﻠﯾﺔ ﺗﺳﺟﯾل اﻟدﺧول ،وﻟﻛل ﻧﻣوذج ﺷروط اﻟﺗﺣﻘق اﻟﺧﺎﺻﺔ ﺑﮫ ،ﺣﯾث إن اﻟﺿﻐط ﻋﻠﻰ زر
"ﺗﺳﺟﯾل اﻟدﺧول" ﯾؤدي إﻟﻰ ﻋﻣل أدوات اﻟﺗﺣﻘق اﻟﻣوﺟودة ﺿﻣن ﻧﻣوذج ﺗﺳﺟﯾل اﻟدﺧول ،وﺑﺎﻟﻣﻘﺎﺑل
ﻓﺈن اﻟﺿﻐط ﻋﻠﻰ زر "إﻧﺷﺎء ﺣﺳﺎب" ﯾؤدي إﻟﻰ ﻋﻣل أدوات اﻟﺗﺣﻘق اﻟﻣوﺟودة ﻓﻲ ھذا اﻟﻧﻣوذج ﻓﻘط ،
ﻟﻧﻘم اﻵن ﺑﺗطﺑﯾق اﻟﺳﯾﻧﺎرﯾو اﻟﺳﺎﺑق ﻟﺗﺗوﺿﺢ اﻟﻣﺳﺄﻟﺔ ﺑﺷﻛل أﻛﺑر .
ASP.net ﻛود
<div>
<asp:Label ID="Label1" runat="server" Text="<>"ﺟﺪﯾﺪ ﺣﺴﺎب ﺗﺴﺠﯿﻞ/asp:Label>
<br />
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
ControlToValidate="TextBox1" ErrorMessage="(Required)"
ForeColor="Red"></asp:RequiredFieldValidator>
<br />
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server"
ControlToValidate="TextBox2" ErrorMessage="(Required)"
ForeColor="Red"></asp:RequiredFieldValidator>
<br />
<asp:Button ID="Button1" runat="server" Text=" "ﺣﺴﺎب إﻧﺸﺎء/>
<br />
<hr />
<asp:Label ID="Label2" runat="server" Text="<>"دﺧﻮل ﺗﺴﺠﯿﻞ/asp:Label>
<br />
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server"
ControlToValidate="TextBox3" ErrorMessage="(Required)"
ForeColor="Red"></asp:RequiredFieldValidator>
<br />
<asp:TextBox ID="TextBox4" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server"
ControlToValidate="TextBox4" ErrorMessage="(Required)"
ForeColor="Red"></asp:RequiredFieldValidator>
<br />
<asp:Button ID="Button2" runat="server" Text=" "دﺧﻮل ﺗﺴﺠﯿﻞ/>
<br />
</div>
ﺳﺗﺟد، " اﻣﻸ ﺑﯾﺎﻧﺎت اﻟﻧﻣوذج اﻷول واﺿﻐط ﻋﻠﻰ اﻟزر "إﻧﺷﺎء ﺣﺳﺎب، ﻗم ﺑﺗﻧﻔﯾذ اﻟﺻﻔﺣﺔ اﻟﺳﺎﺑﻘﺔ
أﻧﮫ ﻟم ﯾﺗم إرﺳﺎل اﻟﺻﻔﺣﺔ إﻟﻰ اﻟﺳﯾرﻓر إﻧﻣﺎ ظﮭرت رﺳﺎﺋل ﺗطﺎﻟﺑك ﺑﺈدﺧﺎل ﺑﯾﺎﻧﺎت ﻓﻲ ﺣﻘول ﻧﻣوذج
اﻟﺳﺑب وراء ذﻟك ھو أن اﻟﺿﻐط ﻋﻠﻰ أي زر ﺳؤدي إﻟﻰ ﻋﻣل ﺟﻣﯾﻊ أدوات، ! ﺗﺳﺟﯾل اﻟدﺧول
ﺗم اﻟﺗﻐﻠب ﻋﻠﻰ ھذهASP.net 2.0 ﻓﻲ اﻹﺻدارات اﻟﺗﺎﻟﯾﺔ ﻟـ، اﻟﺗﺣﻘق اﻟﻣوﺟودة ﻓﻲ ﺗﻠك اﻟﺻﻔﺣﺔ
اﻟﻣﺷﻛﻠﺔ ﻋﺑر إﻣﻛﺎﻧﯾﺔ ﺿم اﻟﻌدﯾد ﻣن أدوات اﻟﺗﺣﻘق ﻓﻲ ﻣﺟﻣوﻋﺔ ﺗﺣﻘق واﺣد ورﺑط زر ﻣﺎ ﺑﻣﺟوﻋﺔ
اﻟﺗﺣﻘق ھذه وﺑﺎﻟﺗﺎﻟﻲ ﻓﺈن اﻟﺿﻐط ﻋﻠﻰ ھذا اﻟزر ﺳؤدي إﻟﻰ ﻋﻣل أدوات اﻟﺗﺣﻘق اﻟﻣﻧﺗﻣﯾﺔ إﻟﻰ
وﻟن ﺗﻌﻣل أي أداة ﺗﺣﻘق ﻣﻧﺗﻣﯾﺔ إﻟﻰ ﻣﺟﻣوﻋﺔ أﺧرى ﺣﺗﻰ ﯾﺗم اﻟﺿﻐط ﻋﻠﻰ ﻋﻠﻰ زر، ﻣﺟﻣوﻋﺗﮫ ﻓﻘط
. ﯾﻧﺗﻣﻲ إﻟﻰ ﻧﻔس ﺗﻠك اﻟﻣﺟﻣوﻋﺔ
اﺳﺗﺧدام أدوات اﻟﺗﺣﻘق اﻟﻔﺻل اﻟﺛﺎﻟث
ﺣﯾث ﯾﺗم، ValidationGroup ﯾﺗم ﺗﺣدﯾد اﻟﻣﺟﻣوﻋﺔ اﻟﺗﻲ ﺗﻧﺗﻣﻲ ﻟﮭﺎ أداة اﻟﺗﺣﻘق ﻣن ﺧﻼل اﻟﺧﺎﺻﯾﺔ
إن، ( إﺳﻧﺎد ﻧﻔس اﻟﻘﯾﻣﺔ إﻟﻰ ﺟﻣﯾﻊ أدوات اﻟﺗﺣﻘق اﻟﺗﻲ ﺗﻘﻊ ﺿﻣن ﻧﻔس اﻟﻧﻣوذج ) ﻧﻔس اﻟﻣﺟﻣوﻋﺔ
ﺣﯾثButton, ImageButton, LinkButton ھذه اﻟﺧﺎﺻﯾﺔ ﻣوﺟودة أﯾﺿﺎ ً ﻓﻲ أدوات اﻟﺗﺣﻛم
ﯾﻧﻐﻲ إﻋطﺎؤھﺎ ﻧﻔس اﻟﻘﯾﻣﺔ ﺑﺣﺳب اﻟﻧﻣوذج اﻟﺗﻲ ﺗﻘﻊ ﻓﯾﮫ واﻟﻣﺳؤوﻟﺔ ﻋن ﺗﺷﻐﯾل أدوات اﻟﺗﺣﻘق
. اﻟﺧﺎﺻﺔ ﺑﮫ
ASP.net ﻛود
<div>
<asp:Label ID="Label1" runat="server" Text="<>"ﺟﺪﯾﺪ ﺣﺴﺎب ﺗﺴﺠﯿﻞ/asp:Label>
<br />
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server"
ControlToValidate="TextBox1"
ErrorMessage="(Required)"
ForeColor="Red"
ValidationGroup="signup">
</asp:RequiredFieldValidator>
<br />
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server"
ControlToValidate="TextBox2"
ErrorMessage="(Required)"
ForeColor="Red"
ValidationGroup="signup">
</asp:RequiredFieldValidator>
<br />
<asp:Button ID="Button1" runat="server" Text=""ﺣﺴﺎب إﻧﺸﺎء
ValidationGroup="signup" />
<br />
<hr />
<asp:Label ID="Label2" runat="server" Text="<>"دﺧﻮل ﺗﺴﺠﯿﻞ/asp:Label>
<br />
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server"
ControlToValidate="TextBox3"
ErrorMessage="(Required)"
ForeColor="Red"
ValidationGroup="login">
</asp:RequiredFieldValidator>
<br />
اﺳﺗﺧدام أدوات اﻟﺗﺣﻘق اﻟﻔﺻل اﻟﺛﺎﻟث
><br /
></div
ﻗم ﺑﺗﻧﻔﯾذ اﻟﺻﻔﺣﺔ اﻟﺳﺎﺑﻘﺔ ،ﻻﺗﻘم ﺑﻣلء أي ﺑﯾﺎﻧﺎت ،ﻋﻧد اﻟﺿﻐط ﻋﻠﻰ زر "إﻧﺷﺎء ﺣﺳﺎب" ﺳﺗﺟد أن
أدوات اﻟﺗﺣﻘق اﻟﻣوﺟودة ﻓﻲ ﻧﻣوذج "ﺗﺳﺟﯾل ﺣﺳﺎب ﺟدﯾد" ھﻲ وﺣدھﺎ اﻟﺗﻲ أظﮭرت رﺳﺎﺋل ﺗطﺎﻟﺑك
ﺑﺈدﺧﺎل ﺑﯾﺎﻧﺎت ،ﻗم ﺑﻌدھﺎ ﺑﺎﻟﺿﻐط ﻋﻠﻰ اﻟزر ﻓﻲ ﻧﻣوذج "ﺗﺳﺟﯾل دﺧول" ﺳﺗﺟد أن أدوات اﻟﺗﺣﻘق
اﻟﻣوﺟودة ﻓﻲ ھذا اﻟﻧﻣوذج ھﻲ وﺣدھﺎ اﻟﺗﻲ ﺳﺗﻌﻣل .
وﺑﮭذه اﻟطرﯾﻘﺔ ﺑﺈﻣﻛﺎﻧك ﺗﺧﺻﯾص أدوات اﻟﺗﺣﻘق واﻷزرار اﻟﻣرﺗﺑطﺔ ﺑﮭﺎ ﻓﻲ ﻣﺟﻣوﻋﺎت ،وﺑﺎﻟﺗﺎﻟﻲ
ﻓﺈن ﻋﻣﻠﮭﺎ ﻟن ﯾﺗداﺧل أو ﯾﺗﺿﺎرب ﻣﻊ ﺑﻌﺿﮭﺎ اﻟﺑﻌض .
ﻗم ﺑﺈﻧﺷﺎء ﻧﻣوذج ﺑﺳﯾط ﻹﺟراء ﻋﻣﻠﯾﺔ ﺗﺳﺟﯾل اﻟدﺧول ،ﻗم ﺑﺈﺿﺎﻓﺔ أدوات اﻟﺗﺣﻘق اﻟﻣﻧﺎﺳﺑﺔ ،أﺿف
أﺳﻔل اﻟﻧﻣوذج زري أﻣر أﺣدھﻣﺎ " ﺗﺳﺟﯾل اﻟدﺧول" واﻵﺧر "إﻟﻐﺎء اﻷﻣر" ،ﯾؤدي اﻟﺿﻐط ﻋﻠﻰ اﻟزر
"ﺗﺳﺟﯾل اﻟدﺧول" إﻟﻰ ﻋﻣل أدوات اﻟﺗﺣﻘق ،أﻣﺎ اﻟﺿﻐط ﻋﻠﻰ اﻟزر "إﻟﻐﺎء اﻷﻣر" ﯾؤدي إﻟﻰ ﻧﻘل
اﻟﻣﺳﺗﺧدم إﻟﻰ ﺻﻔﺣﺔ أﺧرى .
اﺳﺗﺧدام أدوات اﻟﺗﺣﻘق اﻟﻔﺻل اﻟﺛﺎﻟث
ﺳﻧﻘوم ﻓﻲ اﻟﻔﻘرة ﺑﺟﻌل اﻟﺣﻘول اﻟﻣﺧﺎﻟﻔﺔ ﻟﺷرط اﻟﺗﺣﻘق ﺗظﮭر ﺑﻠون أﺻﻔر) أو أي ﻟون ﺗرﻏب ﺑﮫ( ،
وذﻟك ﺣﺗﻰ ﺗظﮭر ﺑوﺿوح ﻟﻠﻣﺳﺗﺧدم ﺧﺎﺻﺔ ﻋﻧد ﺑﻧﺎء ﻧﻣﺎذج ﻛﺑﯾرة اﻟﺣﺟم ،ﻛﻧﻣﺎذج اﻟﺳﯾرة اﻟذاﺗﯾﺔ
وﻏﯾره .
ﻗم ﺑﺈﻧﺷﺎء ﺻﻔﺣﺔ ﺟدﯾدة ،ﺻﻣم ﻧﻣوذج ﺑﺳﯾط ﻹدﺧﺎل اﺳم اﻟﻣﺳﺗﺧدم وﻛﻠﻣﺔ اﻟﻣرور) ﻛﻣﺎ ﯾظﮭر ﻓﻲ
اﻟﺻورة ﺑﺎﻷﻋﻠﻰ ( ،وارﺑط ﻛل ﺣﻘل ﻣﻧﮭﻣﺎ ﺑﺄداة ﺗﺣﻘق ﻣن اﻟﻧوع RequiredFieldValidator
واﺟﻌل اﻟﺧﺎﺻﯾﺔ EnableClientScriptﺗﺄﺧذ اﻟﻘﯾﻣﺔ Falseﻟﻛﻼ ً ﻣن أداﺗﻲ اﻟﺗﺣﻘق اﻟﺳﺎﺑﻘﺗﯾن ،
وذﻟك ﺣﺗﻰ ﻧﻠﻐﻲ ﻋﻣﻠﯾﺔ اﻟﺗﺣﻘق ﻋﻠﻰ ﺟﺎﻧب اﻟﻌﻣﯾل وﻧﺑﻘﯾﮭﺎ ﻓﻘط ﻋﻠﻰ ﺟﺎﻧب اﻟﺳﯾرﻓر ﻷن اﻟﺳﯾرﻓر ھو
اﻟذي ﺳﯾﻘوم ﺑﺗﻠوﯾن اﻟﺣﻘول اﻟﻣﺧﺎﻟﻔﺔ ﺑﻠون ﻣﺧﺗﻠف .
أﺿف اﻟداﻟﺔ اﻟﺗﺎﻟﯾﺔ ﻟﺻﻔﺣﺔ اﻟﻛود اﻟﺧﻠﻔﻲ ) C#أو (VBﻟﻠﺻﻔﺣﺔ اﻟﺳﺎﺑﻘﺔ :
ﻛود C#
)(void Page_PreRender
{
)foreach (BaseValidator valControl in Page.Validators
{
= WebControl assControl
;)(WebControl)Page.FindControl(valControl.ControlToValidate
)if (!valControl.IsValid
;assControl.BackColor = System.Drawing.Color.Yellow
else
;assControl.BackColor = System.Drawing.Color.White
}
}
ﻛود VB
)(Sub Page_PreRender
End Sub
وﻓﺣﺻﮭﺎ ﻓﺈن، ﺣﯾث ﯾﻘوم اﻟﻛود اﻟﺳﺎﺑق ﺑﺎﻟﻣرور ﻋﻠﻰ ﺟﻣﯾﻊ أدوات اﻟﺗﺣﻘق اﻟﻣوﺟودة ﺿﻣن اﻟﺻﻔﺣﺔ
وإﻻ ﯾﺗم إﺑﻘﺎؤه ﺑﺎﻟﻠون اﻷﺑﯾض، ﻛﺎن اﻟﺣﻘل اﻟﻣرﺗﺑط ﺑﮭﺎ ﻏﯾر ﻣواﻓق ﻟﻠﺷرط ﯾﺗم ﺗﻠوﯾﻧﮫ ﺑﺎﻟﻠون اﻷﺻﻔر
: ﻛود اﻟﺻﻔﺣﺔ
ASP.net ﻛود
<div>
</div>
ﻗم، اﺿﻐط ﻋﻠﻰ اﻟزر دون ﻣﻠﺊ ﺑﯾﺎﻧﺎت وﻻﺣظ ﺗﻐﯾﯾر ﻟوﻧﮭﺎ إﻟﻰ اﻷﺻﻔر، ﻗم ﺑﺗﻧﻔﯾذ اﻟﺻﻔﺣﺔ اﻟﺳﺎﺑﻘﺔ
ﺗﻔﯾد ھذه اﻟطرﯾﻘﺔ. ﺑﻣﻸ أﺣد اﻟﺣﻘول ﺛم أﻋد اﻟﺿﻐط ﻋﻠﻰ اﻟزر ﻟﺗﺟد أﻧﮫ ﺳﯾﺗم إﻋﺎدة ﻟوﻧﮫ إﻟﻰ اﻷﺑﯾض
ﻛﻣﺎ ذﻛرت ﺳﺎﺑﻘﺎ ً ﻋﻧد اﻟﻌﻣل ﻣﻊ ﻧﻣﺎذج ﻛﺑﯾرة اﻟﺣﺟم وذﻟك ﻟﯾﺳﮭل ﻋﻠﻰ اﻟﻣﺳﺗﺧدم ﺗﻣﯾﯾز اﻟﺣﻘول
. اﻟﻣﺧﺎﻟﻔﺔ ﻟﺷرط اﻟﺗﺣﻘق
اﺳﺗﺧدام أدوات اﻟﺗﺣﻘق اﻟﻔﺻل اﻟﺛﺎﻟث
اﻟﺧﺎﺗﻣﺔ
إﻟﻰ ھﻧﺎ ﻧﺄﺗﻲ ﻟﻧﮭﺎﯾﺔ ھذا اﻟﻔﺻل ،واﻟذي ﺗﻧﺎوﻟﻧﺎ ﻓﯾﮫ ﻛﯾﻔﯾﺔ اﻟﺗﻌﺎﻣل ﻣﻊ أدوات اﻟﺗﺣﻘق ﻋﻠﻰ اﺧﺗﻼف
أﻧواﻋﮭﺎ واﺳﺗﺧداﻣﺎﺗﮭﺎ ،ﻛﺎﻟﺗﺣﻘق ﻣن أن اﻟﻣﺳﺗﺧدم ﻗد ﻣﻸ اﻟﺣﻘول اﻟﻣطﻠوﺑﺔ ،وﺑﻧﻣط ﺑﯾﺎﻧﺎت ﺻﺣﯾﺢ
وﻣواﻓق ﻟﻠﺻﯾﻐﺔ اﻟﻣطﻠوﺑﺔ وﻟﻣﺟﺎل اﻟﻘﯾم اﻟﻣﺣدد ،ﺛم ﺗﻌﻠﻣﻧﺎ ﻛﯾﻔﯾﺔ إظﮭﺎر ﺟﻣﯾﻊ رﺳﺎﺋل اﻷﺧطﺎء
اﻟﺣﺎﺻﻠﺔ ﻓﻲ اﻟﺻﻔﺣﺔ ﺿﻣن أداة وﺣﯾدة وﻣﻛﺎن واﺣد ،ﺛم ﻧﺎﻗﺷﻧﺎ اﻟﻌدﯾد ﻣن اﻷﻣور واﻟﺧﺻﺎﺋص
واﻟﺗﻲ ﺗﺳﺗﺧدم ﺑﻛﺛرة ﻓﻲ اﻟﻣواﻗﻊ ،ﻛﺑﻧﺎء أﻛﺛر ﻣن ﻧﻣوذج ﺿﻣن ﻧﻔس اﻟﺻﻔﺣﺔ واﺳﺗﺧدام ﻣﺟﻣوﻋﺎت
اﻟﺗﺣﻘق .ﻣن اﻟﺿروري ﺟدا ً أن ﺗﻘوم ﺑﺗطﺑﯾق ﺟﻣﯾﻊ اﻷﻣﺛﻠﺔ اﻟواردة ﺿﻣن ھذا اﻟﻔﺻل وﺟﻣﯾﻊ
اﻟﻔﺻول وﻻﺗﻛﺗﻔﻲ ﺑﻣﺟرد اﻟﻘراءة وذﻟك ﻟﺗﺛﺑﯾت اﻟﻣﻌوﻣﺔ ﻟدﯾك واﻻﻋﺗﯾﺎد ﻋﻠﻰ اﻟﻣﻣﺎرﺳﺔ ﻓﻲ ﺑﻧﺎء ﻣواﻗﻊ
اﻻﻧﺗرﻧت .
ﻧﻠﺗﻘﻲ ﻓﻲ ﻓﺻل ﻗﺎدم وﻣواﺿﯾﻊ ﺟدﯾدة إن ﺷﺎء ﷲ ،ﻷي اﻗﺗراح أو ﻧﻘد أرﺟو اﻟﺗواﺻل ﻋﻠﻰ اﻟﺑرﯾد
اﻻﻛﺗروﻧﻲ ،وﷲ وﻟﻲ اﻟﺗوﻓﯾق .
ﻟﻠﺗواﺻل :
m-hajjkhalaf@hotmail.com
http://www.facebook.com/mohammed.hajkhalaf