Project ASP

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 211

‫ﺻﻔﺤﺔ ‪٠‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﺑﺴﻢ اﷲ اﻟﺮﺣﻤﻦ اﻟﺮﺣﻴﻢ‬

‫اﻟﺴﻼم ﻋﻠﻴﻜﻢ ورﺣﻤﺔ اﷲ وﺑﺮآﺎﺗﻪ‬

‫اﻟﺤﻤﺪ ﷲ ﻥﺤﻤﺪﻩ وﻥﺴﺘﻌﻴﻨﻪ وﻥﺴﺘﻐﻔﺮﻩ ‪ ،‬وﻥﻌﻮذ ﺑﺎﷲ ﻣﻦ ﺵﺮور أﻥﻔﺴﻨﺎ ‪ ،‬وﺳﻴﺌﺎت أﻋﻤﺎﻟﻨﺎ ‪ ،‬ﻣﻦ یﻬ ﺪﻩ اﷲ ﻓ ﻼ ﻣﻀ ﻞ ﻟ ﻪ‬
‫‪ ،‬وﻣﻦ یﻀﻠﻞ ﻓﻼ هﺎدي ﻟﻪ ‪ ،‬وأﺵﻬﺪ أن ﻻ إﻟﻪ إﻻ اﷲ وﺡﺪﻩ ﻻ ﺵﺮیﻚ ﻟﻪ وأﺵﻬﺪ أن ﻣﺤﻤﺪًا ﻋﺒﺪﻩ ورﺳﻮﻟﻪ أﻣﺎ ﺑﻌﺪ ‪:‬‬

‫أﺣﺒﺘﻲ ‪:‬‬

‫أﺽﻊ ﺑﻴﻦ أیﺪیﻜﻢ هﺬا اﻟﻜﺘ ﺎب اﻻﻟﻜﺘﺮوﻥ ﻲ )ﻣﺸ ﺮوع ﺗﻄﺒﻴﻘ ﻲ ﺑﺎﺳ ﺘﺨﺪام ﻟﻐ ﺔ ‪ (ASP‬اﻟ ﺬي أﺗﻤﻨ ﻲ ﻣﻨ ﻪ اﻷﺟ ﺮ ﻣ ﻦ اﷲ‬
‫ﺳﺒﺤﺎﻥﻪ وﺗﻌﺎﻟﻰ وأن ﺗﻨﺘﻔﻌﻮا ﺑﻪ إﻥﻪ ﻋﻠﻰ آﻞ ﺵﻲء ﻗﺪیﺮ ‪.‬‬

‫هﺬا اﻟﻤﺸ ﺮوع ﺥ ﻼ ﻣ ﻦ اﻷﻣ ﻮر اﻻﺡﺘﺮاﻓﻴ ﺔ ﻣﺜ ﻞ اﻟﺨﻠﻔﻴ ﺎت واﻟﺘﻨﺴ ﻴﻘﺎت واﻟﻘ ﻮاﺉﻢ وﻣ ﺎ إﻟ ﻰ ذﻟ ﻚ ﻻن اﻟﻬ ﺪف ﻣﻨ ﻪ أﻥ ﻪ‬
‫ﻣﺸﺮوع ﺗﻌﻠﻴﻤﻲ ﺑﺤﺖ ‪.‬‬
‫وأﺡﺐ أن أﺳﺠﻞ أن ﻓﻜﺮة هﺬا اﻟﻤﺸﺮوع ﻣﺄﺥﻮذة ﻣﻦ ﻣﻮﻗﻊ ﻋﺎﻟﻢ اﻟﻨﻮر‬
‫‪http://www.alnoor-world.com‬‬
‫ﻟﻸخ اﻟﻔﺎﺽﻞ – ﺥﺎﻟﺪ اﻟﺤﺮ – ﺟﺰاﻩ اﷲ ﺥﻴﺮًا وﻟﻜﻦ اﻟﺠﺪیﺪ ﻓﻲ هﺬا اﻟﻜﺘﺎب اﻥ ﻪ ﻣ ﺪﻋﻢ ﺑﺎﻟﺼ ﻮر اﻟﺘﻮﺽ ﻴﺤﻴﺔ واﻷآ ﻮاد‬
‫اﻟﻤﺴ ﺘﺨﺪﻣﺔ ﺑﺎﻹﺽ ﺎﻓﺔ إﻟ ﻰ اﻷﺥﻄ ﺎء اﻟﺘ ﻲ واﺟﻬﺘﻨ ﻲ أﺙﻨ ﺎء ﺗﻨﻔﻴ ﺬي ﻟﻬ ﺬا اﻟﻤﺸ ﺮوع وﺡﻠﻬ ﺎ وﺗﻘﺴ ﻴﻢ اﻟﻨﺘ ﺎﺉﺞ ﻋﻠ ﻰ ﻋ ﺪة‬
‫ﺻﻔﺤﺎت وأیﻀﺎ آﻴﻔﻴﺔ رﻓﻊ هﺬا اﻟﻤﺸﺮوع ﻋﻠﻰ اﻻﻥﺘﺮﻥﺖ وإﻟﻴﻜﻢ راﺑﻂ اﻟﻤﻮﻗﻊ ‪.‬‬
‫‪http://e.domaindlx.com/ismailweb/news/‬‬

‫وأﺗﻘﺪم ﺑﺎﻟﺸﻜﺮ إﻟﻰ اﻷﺥﻮة أﻋﻀﺎء ﻣﻨﺘﺪى اﻟﻤﺤﻴﻂ اﻟﻌﺮﺑﻲ اﻷخ اﻟﻌﺰیﺰ ‪ :‬ﻋﺒﺪ اﷲ ﺟﺎﺑﺮ ﺵﻘﻠﻴﻪ ﻣﺪیﺮ ﻣﻨﺘﺪیﺎت اﻟﻤﺤﻴﻂ‬
‫اﻟﻌﺮﺑﻲ واﻷخ ‪ :‬ﻣﺤــ‪asp‬ــــﺐ‬
‫‪http://www.arabmoheet.net‬‬
‫ﻋﻠﻰ ﻣﺴﺎهﻤﺎﺗﻬﻢ ﻟﺘﺬﻟﻴﻞ اﻟﻌﻘﺒﺎت اﻟﺘﻲ واﺟﻬﺘﻨﻲ أﺙﻨﺎء ﺗﻨﻔﻴﺬي ﻟﻬﺬا اﻟﻤﺸﺮع أرﺟﻮ ﻟﻬﻢ اﻟﺘﻮﻓﻴﻖ‪.‬‬

‫أﺧﻮآﻢ وﻡﺤﺒﻜﻢ‬
‫م‪ .‬إﺱﻤﺎﻋﻴﻞ دﻡﺮان أﺑﻮ زیﺪ‬
‫ﻋﻀﻮ ﻡﻨﺘﺪیﺎت اﻟﻤﺤﻴﻂ اﻟﻌﺮﺑﻲ‬
‫‪http://www.arabmoheet.net‬‬
‫‪http://e.domaindlx.com/ismailweb/news/‬‬
‫‪is_damaran@yahoo.com‬‬

‫واﻵن إﻟﻰ اﻟﻌﻤﻞ واﻟﺘﻄﺒﻴﻖ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪١‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﻡﺘﻄﻠﺒﺎت اﻟﻌﻤﻞ ﻋﻠﻰ ﻟﻐﺔ‪ASP :‬‬

‫أوﻻ ‪Internet Information Server :‬‬


‫اﻟﻠﻐﺎت اﻟﻤﺘﻘﺪﻣﺔ ﻟﺒﺮﻣﺠﺔ اﻟﻤﻮاﻗﻊ أﻣﺜﺎل ‪ ASP‬و ‪ PHP‬و ‪ CGI‬وﻏﻴﺮهﺎ‪ ،‬ﻻ ﺗﻌﻤﻞ ﻣﺒﺎﺵﺮة ﻋﻠﻰ اﻷﺟﻬﺰة اﻟﺸﺨﺼﻴﺔ‪ .‬ﻓﻬ ﻲ‬
‫ﺗﺤﺘ ﺎج ﻟ ـ ‪ Server‬ﺡﺘ ﻰ ﺗﻌﻤ ﻞ‪ .‬ﺑﺈﻣﻜﺎﻥ ﻚ ﺡﺠ ﺰ ﻣﺴ ﺎﺡﺔ )ﻣﺠﺎﻥﻴ ﺔ أو ﺑﺎﺵ ﺘﺮاك ﺵ ﻬﺮي( ﻓ ﻲ أﺡ ﺪ ﻣﻮاﻗ ﻊ اﻻﺳﺘﻀ ﺎﻓﺔ ﻓ ﻲ‬
‫اﻹﻥﺘﺮﻥ ﺖ ‪ Hosting Providers‬ﻓ ﺄﺟﻬﺰﺗﻬﻢ ﻋﺒ ﺎرة ﻋ ﻦ( ‪ Servers‬أﻥﺼ ﺢ ﺑﺎﻻﺵ ﺘﺮاك ﻓ ﻲ ﻣﻮﻗ ﻊ‬
‫‪ http://www1.domaindlx.com/‬ﻓﻬﻮ یﻘﺪم ﻣﺴﺎﺡﺔ ﻣﺠﺎﻥﻴﺔ ﺗﺪﻋﻢ ﻟﻐ ﺔ ‪ ASP‬وﻗﻮاﻋ ﺪ ﺑﻴﺎﻥ ﺎت ‪ MS Access).‬ﻟﻜ ﻦ‬
‫ذﻟﻚ ﻟﻴﺲ ﻥﻬﺎیﺔ اﻟﻤﻄﺎف‪ ،‬ﻓﺘﻜﻠﻔﺔ اﻻﺗﺼﺎل ﺑﺎﻹﻥﺘﺮﻥﺖ ﻣﻜﻠﻔﺔ ﻓﻲ ﺑﻌﺾ اﻟﺒﻠﺪان‪ ،‬وﺗﺼ ﻤﻴﻢ اﻟﻤﻮﻗ ﻊ أﺙﻨ ﺎء اﻻﺗﺼ ﺎل‪ ،‬ﻗ ﺪ یﻜﻠ ﻒ‬
‫اﻟﻜﺜﻴﺮ ﻣﻦ اﻷﻣﻮال‪ .‬ﻟﺬا‪ ،‬ﺑﺈﻣﻜﺎﻥﻚ ﺗﺮآﻴﺐ ﺑﻌﺾ اﻟﺒﺮاﻣﺞ اﻟﺘﻲ ﺗﺠﻌﻞ ﻣﻦ ﺡﺎﺳﺒﻚ اﻟﺸﺨﺼﻲ ‪Server.‬‬
‫ﻗﻢ ﺑﺘﺮآﻴﺐ ﺥﺪﻣﺔ ‪ Internet Information Server‬ﻟﻠﻮیﻨﺪوز وﺳ ﺘﺠﺪﻩ آﺨﺪﻣ ﺔ ﻣﺘ ﻮﻓﺮة ﻣ ﻊ ﺳ ﻴﺪي ﺗﺮآﻴ ﺐ اﻟﻮیﻨ ﺪوز‪،‬‬
‫وذﻟ ﻚ ﺑﺎﻟ ﺬهﺎب ﻟ ﻲ ﻟﻮﺡ ﺔ اﻟ ﺘﺤﻜﻢ ‪ Control Panel‬ﺙ ﻢ اﺥﺘﻴ ﺎر إﺽ ﺎﻓﺔ وإزاﻟ ﺔ ﻣﻜﻮﻥ ﺎت ویﻨ ﺪوز ‪Add/Remove‬‬
‫‪Windows Components‬واﺥﺘﻴﺎر ‪ Internet Information Server‬ﻣﻨﻪ ‪) .‬أﻗﺮأ اﻟﻤﻠﺤﻖ ﻓﻲ ﻥﻬﺎیﺔ هﺬا اﻟﻜﺘﺎب أو ًﻻ(‬
‫ﺙﺎﻥﻴﺎ ‪ :‬إﺥﺘﻴﺎر ﺑﺮﻥﺎﻣﺞ ﻟﻜﺘﺎﺑﺔ ﻥﺼﻮص‪ASP :‬‬
‫ﻟﻜﺘﺎﺑﺔ ﻥﺼﻮص ‪ ASP‬ﻻ ﺗﺤﺘﺎج ﺑﺎﻟﻀﺮورة ﻻﺳﺘﺨﺪام ﺑﺮﻥﺎﻣﺞ ﺥﺎص ﻟﺬﻟﻚ‪ .‬ﺳﺄﺳﺘﺨﺪم ﺥﻼل اﻟﺸﺮح ﺑﺮﻥ ﺎﻣﺞ ‪Front‬‬
‫‪Page‬ﻷﻥﻪ ﻣﺘﻮﻓﺮ ﻋﻨﺪ اﻷﻏﻠﺒﻴﺔ وﻥﺴﺘﻄﻴﻊ ﺑﺎﺳﺘﺨﺪاﻣﻪ ﺗﺼ ﻤﻴﻢ ﺵ ﻜﻞ اﻟﺼ ﻔﺤﺎت ‪ ،‬وإن أردﺗ ﻢ اﺳ ﺘﺨﺪام ﺑ ﺮاﻣﺞ أﺥ ﺮى‬
‫ﺗﺴﺘﻄﻴﻌﻮن أیﻀﺎ ﻣﺘﺎﺑﻌﺔ اﻟﺪروس ﻣﻌﻨﺎ‪ .‬إن آﻨ ﺖ ﺗﺮی ﺪ اﺳ ﺘﺨﺪام ﺑﺮﻥ ﺎﻣﺞ ‪ NotePad‬اﻟ ﺬي ی ﺄﺗﻲ ﻣ ﻊ اﻟﻮیﻨ ﺪوز یﻤﻜﻨ ﻪ‬
‫اﻟﻘﻴﺎم ﺑﺎﻟﻮاﺟﺐ‪ .‬إﻻ أﻥﻨﻲ ﻻ أﻥﺼﺤﻚ ﺡﺎﻟﻴﺎ ﺑﺎﺳﺘﺨﺪام ‪ Note Pad‬ﻷﻥﻪ ﻟﻦ یﺴﺎﻋﺪك ﻓﻲ ﺗﺼﻤﻴﻢ ﺵﻜﻞ اﻟﺼ ﻔﺤﺔ‪ .‬آ ﺬﻟﻚ‬
‫ﺗﺴ ﺘﻄﻴﻊ اﺳ ﺘﺨﺪام أي ﺑ ﺮاﻣﺞ ﺗﺼ ﻤﻴﻢ ﺻ ﻔﺤﺎت اﻟﻮی ﺐ ﻣﺜ ﻞ ‪ Microsoft Front Page‬أو ‪Macromedia‬‬
‫‪ ،Dream Weaver‬أو ‪ Microsoft Interdev‬اﻟﻤﺘﺨﺼﺺ ﻓﻲ إﻥﺸﺎء ﺻﻔﺤﺎت ‪ ASP‬وﻟﻐﺎت ﻏﻴﺮهﺎ ‪.‬‬
‫إذا ﻗﻢ ﺑﺘﺮآﻴﺐ ‪ Front Page‬إن آﻨﺖ ﻻ ﺗﻤﻠﻚ ﺑﺮﻥﺎﻣﺠﺎ أﺥﺮ ﻟﻠﺘﺼﻤﻴﻢ ‪،‬‬
‫ﺙﺎﻟﺜﺎ‪ :‬ﺑﺮﻥﺎﻣﺞ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻥﺎت‪:‬‬
‫یﻤﻜﻨﻨ ﺎ اﺳ ﺘﺨﺪام ‪ SQL‬أو ‪ Microsoft Access‬أو ﻏﻴﺮه ﺎ ﻣ ﻦ ﺑ ﺮاﻣﺞ ﻗﻮاﻋ ﺪ اﻟﺒﻴﺎﻥ ﺎت‪ ..‬ﻟﻜﻨﻨ ﻲ ﺳ ﺄﻋﺘﻤﺪ ﻋﻠ ﻰ‬
‫‪Microsoft Access XP‬وذﻟﻚ ﻟﺘﻮﻓﺮﻩ ﻋﻨﺪ اﻷﻏﻠﺒﻴﺔ‪.‬‬

‫ﻟﻨﺒﺪأ ﻣﻌﻨﺎ‬
‫إﻥﻨﻲ ﻣﺆﻣﻦ ﺑﺄن أﻓﻀﻞ ﻃﺮیﻘﺔ ﻟﺘﻌﻠﻢ هﺬﻩ اﻟﻠﻐﺔ هﻮ اﻟﻘﻴﺎم ﺑﺄﻣﺜﻠﺔ ﻋﻤﻠﻴﺔ‪ ..‬ﻟﺬا ﻟ ﻦ أﺗﺤ ﺪث ﻋ ﻦ اﻟﻤﺘﻐﻴ ﺮات أو اﻷواﻣ ﺮ أو‬
‫اﻟﻘﻴﻢ إﻻ ﻋﻨﺪﻣﺎ ﻥﺤﺘﺎﺟﻬﺎ ﻟﺘﺼﻤﻴﻢ إﺡﺪى اﻟﺼﻔﺤﺎت‪.‬‬
‫وﻟﻨﺘﺄآﺪ ﻣﻦ ﺗﻄﺒﻴﻘﻨﺎ اﻟﺴﻠﻴﻢ ﻟﻠﻐﺔ‪ ..‬ﺳﻨﺒﺪأ ﺑﻤﺸﺮوع ﻣﻦ اﻟﺼﻔﺮ‪ ،‬ﺥﻄﻮة ﺑﺨﻄﻮة‪ ..‬وﻋﻨﺪ ﻥﻬﺎیﺔ هﺬﻩ اﻟﺪروس ﺳﺘﻜﻮن ﻗﺎدرا‬
‫ﻋﻠﻰ ﺗﺼﻤﻴﻢ ﻣﺸﺮوﻋﺎ ﻣﺸﺎﺑﻬﺎ‪ ،‬وﻣﻦ ﺙﻢ ﺗﻄﻮیﺮﻩ إن ﺵﺎء اﷲ‪.‬‬
‫ﻣﺸﺮوﻋﻨﺎ ﺳﻴﻜﻮن‪ ،‬ﺗﺼﻤﻴﻢ ﻣﻮﻗﻊ إﺥﺒﺎري ﺑﺴﻴﻂ‪.‬‬
‫أوﻻ‪ :‬اﻟﻤﺤﺘﻮى‪:‬‬
‫‪tech.asp‬‬ ‫أﺥﺒﺎر ﺗﻘﻨﻴﺔ ‪.‬‬
‫‪news.asp‬‬ ‫أﺥﺒﺎر ﻣﻨﻮﻋﺔ ‪.‬‬
‫ﺙﺎﻥﻴﺎ‪ :‬اﻟﺨﺪﻣﺎت‪:‬‬
‫‪search.asp‬‬ ‫ﻣﺤﺮك ﺑﺤﺚ ﻓﻲ ﻣﺤﺘﻮیﺎت اﻟﻤﻮﻗﻊ ‪.‬‬
‫‪guset.asp‬‬ ‫ﺳﺠﻞ زوار ‪.‬‬
‫‪admin.asp‬‬ ‫ﺙﺎﻥﻴﺎ‪:‬اﻹدارة‪:‬‬
‫ﺗﺴﺠﻴﻞ اﻟﻤﺴﺆوﻟﻴﻦ ﻋﻦ اﻟﻤﻮﻗﻊ )أﺳﻤﺎء وآﻠﻤﺎت ﻣﺮور ﺥﺎﺻﺔ ﺑﻬﻢ(‪.‬‬
‫إﺽﺎﻓﺔ‪ ،‬ﺗﻌﺪیﻞ‪ ،‬ﺡﺬف اﻷﺥﺒﺎر ﻣﻦ ﺥﻼل اﻟﻤﻮﻗﻊ ‪.‬‬
‫ﺗﻨﻔﻴﺬ هﺬا اﻟﻤﻮﻗﻊ اﻹﺥﺒﺎري‪ ،‬یﺘﻄﻠﺐ ﻣﻨﺎ ﺗﻌﻠﻢ ﻣﺠﻤﻮﻋﺔ ﻣﻦ أهﻢ أواﻣﺮ هﺬﻩ اﻟﻠﻐﺔ‪ ..‬وهﺬا هﻮ اﻟﻐﺮض ﻣﻦ هﺬﻩ اﻟﺪروس‬
‫‪.‬ﻓﻬﻞ أﻥﺖ ﻣﺴﺘﻌﺪ وﻣﺘﺤﻤﺲ ؟! إذا أرﺟﻮ ﻣﻨﻚ اﻟﻤﺘﺎﺑﻌﺔ وﺳﻨﺼﻞ إﻟﻰ ﻣﻮﻗﻊ راﺉﻊ ﻓﻲ اﻟﻨﻬﺎیﺔ إن ﺵﺎء اﷲ ﻥﻌﺎﻟﻰ‪.‬‬
‫اﻟﺼﻔﺤﺔ اﻷوﻟﻰ‪default.asp‬‬
‫داﺉﻤ ﺎ ﻣ ﺎ یﺒﺤ ﺚ ﺑﺮﻥ ﺎﻣﺞ اﻟﺘﺼ ﻔﺢ )‪ (Browser‬ﻋ ﻦ ﺻ ﻔﺤﺔ ﺗﺤﻤ ﻞ اﺳ ﻢ ‪ Default‬أو ‪ Index‬ﻓ ﻲ اﻟﻤﻮﻗ ﻊ ﻟﺘﺸ ﻐﻴﻠﻬﺎ‬
‫ﺗﻠﻘﺎﺉﻴﺎ‪ .‬ﻟﺬا ﻋﺎدة ﻣﺎ ﺗﻜﻮن اﻟﺼﻔﺤﺔ اﻟﺮﺉﻴﺴﻴﺔ ﻓﻲ اﻟﻤﻮﻗﻊ ﺑﻬﺬا اﻻﺳﻢ‪ .‬وﻓﻲ ﻣﺸﺮوﻋﻨﺎ ﺳﻨﺴﺘﺨﺪم اﺳﻢ‪: Default .‬‬
‫ﺑﺎﺳﺘﺨﺪام ‪ Frontpage‬ﻗﻢ ﺑﺘﺼﻤﻴﻢ ﻣ ﺎ یﻌﺠﺒ ﻚ‪ ..‬ﻣ ﻊ ﻣﺮاﻋ ﺎة وﺽ ﻊ ﻋﻨ ﻮان اﻟﺼ ﻔﺤﺔ ﺑﺸ ﻜﻞ ﺑ ﺎرز‪ ،‬وراﺑ ﻂ ﻟﻜ ﻞ ﻣ ﻦ‬
‫اﻷﺥﺒﺎر اﻟﺘﻘﻨﻴﺔ)‪ ، (tech.asp‬واﻷﺥﺒﺎر اﻟﻤﻨﻮﻋﺔ)‪ ،(news.asp‬وراﺑﻂ ﻟﺴﺠﻞ اﻟﺰوار)‪ ،(guest.asp‬وﺁﺥﺮ ﻟﻤﺤﺮك‬
‫اﻟﺒﺤﺚ)‪ ،(search.asp‬وأﺥﻴﺮا راﺑﻂ ﻟﻘﺴﻢ إدارة اﻟﻤﻮﻗﻊ ‪(admin.asp).‬وﻻ ﺗﻨﺴﻰ أن ﺗﻜﺘﺐ ﻓﻘﺮة ﺗﺮﺡﻴﺒﻴﺔ ﺑﺎﻟﺰوار ‪.‬‬
‫وﺥﺰن ﺟﻤﻴﻊ هﺬﻩ اﻟﻤﻠﻔﺎت ﻓﻲ ‪C:\inetpub\wwwroot\news‬‬
‫ﻣﻼﺡﻈﺔ‪ :‬ﻋﻨ ﺪ ﺗﺮآﻴ ﺐ ‪ IIS‬ﺳ ﻴﺘﻢ إﻥﺸ ﺎء ه ﺬﻩ اﻟﻤﺠﻠ ﺪات ‪ C:\inetpub\wwwroot‬ﺙ ﻢ ﻗ ﻢ أﻥ ﺖ ﺑﺈﻥﺸ ﺎء اﻟﻤﺠﻠ ﺪ‬
‫‪ news‬ﻟﺘﺨﺰیﻦ ﻣﻠﻔﺎت ﻣﺸﺮوﻋﻨﺎ هﺬا ﻓﻴﻪ‪.‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٢‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫اﻟﺘﺼﻤﻴﻢ اﻟﻤﻘﺘﺮح ‪ :‬اﻟﺼﻔﺤﺔ اﻟﺮﺉﻴﺴﻴﺔ ‪default.asp‬‬

‫ﻟﻘﺪ ﺗﻢ اﺳﺘﺨﺪام ﺗﻘﻨﻴﺔ )‪ SSI(Server-Side Includes‬اﻟﺘﻀﻤﻴﻦ ﻣﻦ ﺟﺎﻥﺐ اﻟﺨﺎدم‬


‫ﻟﻼﺳﺘﻐﻨﺎء ﻋﻦ ﺗﻜﺮار ﺗﺼﻤﻴﻢ اﻷﺟﺰاء اﻟﻤﺘﺸﺎﺑﻬﺔ ﻓﻲ آﻞ ﺻﻔﺤﺔ‪ ..‬ﻣﺜﻞ اﻟﺠﺰء اﻟﻌﻠﻮي ﻣﻦ اﻟﺼﻔﺤﺔ‪ ..‬أو ﻣﺆﺥﺮة‬
‫اﻟﺼﻔﺤﺔ واﻟﺘﻲ ﺗﺤﺘﻮي ﻋﻠﻰ ﺡﻘﻮق اﻟﺤﻔﻆ ‪ ..‬ﻥﺴﺘﻄﻴﻊ اﺳﺘﺨﺪام ﻣﻴﺰة ‪ SSI‬ﻟﻮﺽﻊ اﻟﺠﺰء اﻟﻤﺮاد ﺗﻜﺮارﻩ ﻓﻲ ﻣﻠﻒ‬
‫واﺡﺪ ﻓﻘﻂ‪ ..‬وإﺽﺎﻓﺔ اﺳﻢ اﻟﻤﻠﻒ ﻓﻲ اﻟﻤﻠﻔﺎت اﻟﻤﺮاد ﺗﻜﺮار اﻟﺠﺰء ﻓﻴﻬﺎ‪.‬‬
‫ﻋﻠﻰ ﺳﺒﻴﻞ اﻟﻤﺜﺎل‪ :‬ﺳﻨﻌﺘﻤﺪ ﺗﺼﻤﻴﻤﺎ واﺡﺪا ﻟﺠﻤﻴﻊ اﻟﺼﻔﺤﺎت‪ ..‬ﻓﻔﻲ رأس اﻟﺼﻔﺤﺔ ﻋﻨﻮان اﻟﻤﻮﻗﻊ‪ ،‬وﺗﺤﺘﻪ رواﺑﻂ‬
‫ﻟﻸﻗﺴﺎم اﻟﻤﺨﺘﻠﻔﺔ‪ ..‬وﻓﻲ ﻥﻬﺎیﺔ اﻟﺼﻔﺤﺔ اﻟﺮواﺑﻂ ﻣﻦ ﺟﺪیﺪ وﻋﺒﺎرة ﺟﻤﻴﻊ اﻟﺤﻘﻮق ﻣﺤﻔﻮﻇﺔ‪.‬‬

‫ﺗﺼﻤﻴﻢ ﺻﻔﺤﺔ اﻟﺮأس‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


٣ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

pageheader.asp :‫آﻮد ﺻﻔﺤﺔ اﻟﺮأس‬

<html dir="rtl"><head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<اﻟﺮأس‬/title>
</head><body>
<div align="center">
<center>
<table border="0" cellspacing="0" width="100%" id="AutoNumber1" height="72"
cellpadding="0" style="border-collapse: collapse" bordercolor="#111111">
<tr>
<td width="100%" colspan="5" height="86">
<p align="center">
<img border="0" src="images/logo.gif" width="135" height="101"></td>
</tr>
<tr>
<td width="100%" colspan="5" height="15">
<hr color="#FF3300" size="5"></td>
</tr>
<tr>
<td width="20%" height="1" align="center">
<a title="‫ "أﺥﺒﺎر ﺗﻘﻨﻴﺔ‬href="tech.asp">
<img border="0" src="images/tech.gif" width="49" height="39"></a></td>
<td width="20%" height="1" align="center">
<a title="‫ "أﺥﺒﺎر ﻣﻨﻮﻋﺔ‬href="news.asp">
<img border="0" src="images/news.gif" width="42" height="42"></a></td>
<td width="20%" height="1" align="center">
<a title="‫ "ﺑﺤﺚ‬href="search.asp">
<img border="0" src="images/search.gif" width="40" height="35"></a></td>
<td width="20%" height="1" align="center">
<a title="‫ "ﺳﺠﻞ اﻟﺰوار‬href="guest.asp">
<img border="0" src="images/guest.gif" width="41" height="37"></a></td>
<td width="20%" height="1" align="center">
<a title="‫ "إدارة اﻟﻤﻮﻗﻊ‬href="admin.asp">
<img border="0" src="images/admin.gif" width="32" height="35"></a></td>
</tr>
<tr>
<td width="20%" height="3" align="center"><a href="tech.asp">‫<أﺥﺒﺎر ﺗﻘﻨﻴﺔ‬/a></td>
<td width="20%" height="3" align="center"><a href="news.asp">‫<أﺥﺒﺎر ﻣﻨﻮﻋﺔ‬/a></td>
<td width="20%" height="3" align="center"><a href="search.asp">‫<ﺑﺤﺚ‬/a></td>
<td width="20%" height="3" align="center"><a href="guest.asp">‫<ﺳﺠﻞ اﻟﺰوار‬/a></td>
<td width="20%" height="3" align="center"><a href="admin.asp">‫<إدارة اﻟﻤﻮﻗﻊ‬/a></td>
</tr>
</table>
</center>
</div>
<hr color="#FF3300" size="5">
</body></html>

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


٤ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

‫ﺗﺼﻤﻴﻢ ﺻﻔﺤﺔ اﻟﺘﺬیﻴﻞ‬

pagefooter.asp ‫آﻮد ﺻﻔﺤﺔ اﻟﺘﺬیﻴﻞ‬

<html dir="rtl">

<head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<اﻟﺘﺬیﻴﻞ‬/title>
</head>
<body>
<hr color="#FF0000" size="3">
<p align="center"><a href="tech.asp">‫<أﺥﺒﺎر ﺗﻘﻨﻴﺔ‬/a> | ‫<أ‬a href="news.asp">‫ﺥﺒﺎر‬
‫<ﻣﻨﻮﻋﺔ‬/a> | <a href="search.asp">‫<ﺑﺤﺚ‬/a> | <a href="guest.asp">‫<ﺳﺠﻞ اﻟﺰوار‬/a> |
<a href="admin.asp">‫<إدارة اﻟﻤﻮﻗﻊ‬/a></p>
<p align="center"><font size="2">‫ﺟﻤﻴﻊ اﻟﺤﻘﻮق ﻣﺤﻔﻮﻇﺔ ﻟﻜﻞ ﻣﺴﻠﻢ ﺑﺸﺮط ذآﺮ اﻟﻤﺼﺪر‬
<span lang="en">©</span>&nbsp; 1425-1426 ‫إﺳﻤﺎﻋﻴﻞ دﻣﺮان‬.‫<م‬/font></p>
</body></html>

default.asp ‫آﻮد اﻟﺼﻔﺤﺔ اﻟﺮﺉﻴﺴﻴﺔ‬

<html dir="rtl">
<head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<ﻣﻮﻗﻊ اﻷﺥﺒﺎر‬/title>
</head>
<body>
<!--#include file="pageheader.asp" -->
<p align="center"><font color="#009933">‫<ﻣﺮﺡﺒﺎ ﺑﻜﻢ ﻓﻲ ﻣﻮﻗﻊ اﻷﺥﺒــﺎر‬/font></p>
<p align="center"><font color="#009933">‫<ﻥﺘﻤﻨﻰ ﻟﻜﻢ اﻟﻤﺘﻌﺔ واﻟﻔﺎﺉﺪة ﻣﻌﻨﺎ‬/font></p>
<!--#include file="pagefooter.asp" -->
</body></html>

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


‫ﺻﻔﺤﺔ ‪٥‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﺗﺼﻤﻴﻢ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت ﻟﻠﻤﺸﺮوع‪project.mdb‬‬

‫آﻤﺎ ذآﺮﻥﺎ ﻣﻦ ﻗﺒﻞ‪ ،‬ﺳﻨﺼﻤﻢ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت ﺑﺎﺳﺘﺨﺪام ﺑﺮﻥﺎﻣﺞ‪Microsoft Access XP..‬‬
‫اﺥﺘ ﺮ ﺑﻴﺎﻥ ﺎت ﻓﺎرﻏ ﺔ ﺟﺪی ﺪة واﺡﻔ ﻆ ﻗﺎﻋ ﺪة اﻟﺒﻴﺎﻥ ﺎت‪ ،‬ﻓ ﻲ ‪ C:\Inetpub\wwwroot‬أو اﻟﻤﺠﻠ ﺪ اﻟﻔﺮﻋ ﻲ اﻟ ﺬي‬
‫ﺥﺼﺼﺘﻪ ﻟﻬﺬﻩ اﻟﺼﻔﺤﺔ ﺑﺪاﺥﻞ هﺬا اﻟﻤﺠﻠﺪ‪.‬‬
‫ویﻔﻀﻞ أن ﺗﺤﻔﻆ ﺑﺪاﺥﻞ ﻣﺠﻠﺪ ﻓﺮﻋﻲ ﺑﺎﺳﻢ ‪ database‬ﺑﺪاﺥﻞ اﻟﻤﺠﻠﺪ اﻟﻔﺮﻋﻲ ‪ news‬ﺳﻴﺘﻢ إآﻤﺎل اﻟﺪروس اﻋﺘﻤﺎدا‬
‫ﻋﻠﻰ هﺬا اﻻﻓﺘﺮاض‪ .‬وﺳﻨﺴﻤﻲ اﻟﻘﺎﻋﺪة هﻨﺎ ﺑﺎﺳﻢ‪project.mdb‬‬

‫ﺑﻌﺪ اﻟﻀﻐﻂ ﻋﻠﻰ ) إﻥﺸﺎء ( اﺥﺘﺮ ) إﻥﺸﺎء ﺟﺪول ﻓﻲ ﻃﺮیﻘﺔ ﻋﺮض اﻟﺘﺼﻤﻴﻢ (‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٦‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫وﺻﻤﻢ اﻟﺠﺪول اﻟﺘﺎﻟﻲ‬

‫اﺡﻔﻆ اﻟﺠﺪول ﺑﺎﺳﻢ ‪tech_news‬‬

‫ﺳﺘﻈﻬﺮ اﻟﺮﺳﺎﻟﺔ اﻟﺘﺎﻟﻴﺔ اﺥﺘﺮ ) ﻻ (‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٧‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫أﻏﻠﻖ اﻟﺠﺪول‪ ،‬وﺳﺘﺮى اﺳﻤﻪ ﻣﻮﺟﻮد ﻓﻲ )اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ(‪ .‬اﺽﻐﻂ ﻋﻠﻰ اﺳﻤﻪ ﻣﺮﺗﻴﻦ ﻟﻔﺘﺤﻪ‪ .‬ﺳﻴﻈﻬﺮ ﻟﻚ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ‬

‫أدﺥﻞ اﻟﺒﻴﺎﻥﺎت اﻟﺘﺎﻟﻴﺔ ﻓﻲ اﻟﺠﺪول‬

‫‪id‬‬ ‫‪Add_dat‬‬ ‫‪subject‬‬ ‫‪body‬‬


‫‪1‬‬ ‫ﻋﻠﻦ ﺑﺎﺡﺜﺎن ﻣﻦ ﺟﺎﻣﻌﺔ آﻮﻟﻮﻣﺒﻴ ﺎ اﻷﻣﻴﺮآﻴ ﺔ ﻋ ﻦ ﺗﻄ ﻮیﺮ ﺗﻘﻨﻴﺔ ﺡﺎﺳﻮﺑﻴﺔ ﻻﺳﺘﺨﻼص ‪16/11/2004‬‬
‫ﺗﻘﻨﻴ ﺔ ﺡﺎﺳ ﻮﺑﻴﺔ ﺟﺪی ﺪة ﻻﺳ ﺘﺨﻼص ﻣﻌﻠﻮﻣ ﺎت ﺑﺼ ﺮیﺔ اﻟﻤﻌﻠﻮﻣﺎت ﻣﻦ ﻗﺮﻥﻴﺔ اﻟﻌﻴﻦ‬
‫ﻣﻔﺼ ﻠﺔ ﻣ ﻦ اﻟﺸ ﻜﻞ اﻟ ﺬي ﺗﺒ ﺪو ﻋﻠﻴ ﻪ ﻗﺮﻥﻴ ﺔ اﻟﻌ ﻴﻦ ﻓ ﻲ‬
‫اﻟﺼﻮر‬
‫‪2‬‬ ‫ﻗﺘ ﻞ ﺟﻨ ﺪي ﻣ ﻦ ﻣﺸ ﺎة اﻟﺒﺤﺮی ﺔ اﻷﻣﻴﺮآﻴ ﺔ )اﻟﻤ ﺎریﻨﺰ( ﻣﻘﺘ ﻞ ﺟﻨ ﺪي أﻣﻴﺮآ ﻲ ‪17/11/2004‬‬
‫وأﺻﻴﺐ ﺙﻼﺙﺔ ﺁﺥﺮون ﺑﺠﺮوح ﻓ ﻲ ﻣﻌ ﺎرك ﻣ ﻊ ﻣﺴ ﻠﺤﻴﻦ وإﺳﻘﺎط ﻣﺮوﺡﻴﺔ ﺑﺎﻟﻔﻠﻮﺟﺔ‬
‫ﻓﻲ ﺟﻨﻮب اﻟﻔﻠﻮﺟ ﺔ ﻏ ﺮب ﺑﻐ ﺪاد‪ ،‬وﺑ ﺬﻟﻚ یﺮﺗﻔ ﻊ إﻟ ﻰ ‪٣٩‬‬
‫ﻋ ﺪد اﻟﺠﻨ ﻮد اﻷﻣﻴ ﺮآﻴﻴﻦ اﻟ ﺬیﻦ ﻗﺘﻠ ﻮا ﻣﻨ ﺬ ﺑﺪای ﺔ اﻟﻬﺠ ﻮم‬
‫ﻋﻠﻰ هﺬﻩ اﻟﻤﺪیﻨﺔ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٨‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫رﺑﻂ ﺹﻔﺤﺎت ‪ ASP‬ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت‬


‫ﺼﻤﻤﻨﺎ ﻓﻲ ﺍﻟﺴﺎﺒﻕ ﻗﺎﻋﺩﺓ ﺒﻴﺎﻨﺎﺕ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺒﺭﻨﺎﻤﺞ ‪ Microsoft Access XP.‬ﻭﺍﻵﻥ ﺴﻨﺘﻌﻠﻡ ﻜﻴﻔﻴﺔ ﺭﺒﻁ ﺍﻟﻘﺎﻋﺩﺓ‬
‫ﺒﺼﻔﺤﺎﺕ ‪ ASP‬ﻭﺍﺴﺘﻌﺭﺍﺽ ﻤﺤﺘﻭﻴﺎﺘﻬﺎ‪.‬‬
‫ﻗﻡ ﺒﻔﺘﺢ ﺍﻟﺼﻔﺤﺔ ﺍﻷﻭﻟﻰ )‪ (default.asp‬ﻹﺠﺭﺍﺀ ﺒﻌﺽ ﺍﻟﺘﻌﺩﻴﻼﺕ ﻋﻠﻴﻬﺎ‪ .‬ﻟﺫﺍ ﻗﻡ ﺒﺤﻔﻅﻬﺎ ﺒﺎﺴﻡ ‪ (tech.asp).‬ﻓﻜل‬
‫ﺍﻟﺘﻐﻴﻴﺭﺍﺕ ﺍﻟﺘﻲ ﺴﻨﻘﻭﻡ ﺒﻬﺫﺍ ﺴﺘﻜﻭﻥ ﻋﻠﻰ ﻤﻠﻑ‪tech.asp‬‬
‫ﻓﻲ ﺍﻟﺼﻔﺤﺔ ﺍﻷﻭﻟﻰ ﻜﻨﺎ ﻗﺩ ﻜﺘﺒﻨﺎ ﺠﻤﻠﺔ ﺘﺭﺤﻴﺒﻴﺔ ﻟﺯﻭﺍﺭ ﺍﻟﻤﻭﻗﻊ‪ .‬ﺃﻤﺎ ﻓﻲ ﻫﺫﻩ ﺍﻟﺼﻔﺤﺔ ﻓﺴﻨﺴﺘﺒﺩﻟﻬﺎ ﺒﺠﻤﻠﺔ ﺃﺨﺭﻯ ﺘﺒﻴﻥ‬
‫ﻤﺎﻫﻴﺔ ﺍﻟﺼﻔﺤﺔ‪ .‬ﻓﺴﻨﻜﺘﺏ‪ )):‬ﺇﻟﻴﻜﻡ ﺁﺨﺭ ﺍﻟﻤﺴﺘﺠﺩﺍﺕ ﻋﻠﻰ ﺍﻟﺴﺎﺤﺔ ((‬

‫>‪<html dir="rtl"><head‬‬
‫>"‪<meta http-equiv="Content-Language" content="ar-sa‬‬
‫>"‪<meta name="GENERATOR" content="Microsoft FrontPage 5.0‬‬
‫>"‪<meta name="ProgId" content="FrontPage.Editor.Document‬‬
‫>"‪<meta http-equiv="Content-Type" content="text/html; charset=windows-1256‬‬
‫>‪</title‬أﺥﺒﺎر اﻟﺴﺎﺡﺔ>‪<title‬‬
‫>‪</head><body‬‬
‫>‪<!--#include file="pageheader.asp" --‬‬
‫>‪</font></p‬إﻟﻴﻜﻢ ﺁﺥﺮ اﻟﻤﺴﺘﺠﺪات ﻋﻠﻰ اﻟﺴﺎﺡﺔ>"‪<p align="center"><font color="#009933‬‬
‫>‪<!--#include file="pagefooter.asp" --‬‬
‫>‪</body></html‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٩‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫********اﻵن ﻥﺮی ﺪ رﺑ ﻂ ﺻ ﻔﺤﺔ ‪ tech.asp‬ﺑﻘﺎﻋ ﺪ اﻟﺒﻴﺎﻥ ﺎت وﻟﻜ ﻦ ﻗﺒ ﻞ ه ﺬﻩ اﻟﺨﻄ ﻮة ﺗﻮﺟ ﺪ ﺥﻄ ﻮة ﻗﺒﻠﻬ ﺎ وه ﻰ‬


‫إﻥﺸﺎء) اﺱﻢ ﻡﺼﺪر اﻟﺒﻴﺎﻥﺎت ()‪Data Source Name (DSN‬‬

‫ﻣﻦ ﻗﺎﺉﻤﺔ ‪ Control Panel‬اﺥﺘﺮ ‪ Administrative Tools‬وﻣﻦ ﺙﻢ اﺥﺘﺮ )‪ Data Source (ODBC‬ﺙﻢ‬
‫اﺥﺘﺮ اﻟﺘﺒﻮیﺐ ‪ System DSN‬آﻤﺎ هﻮ ﻣﻮﺽﺢ ﻓﻲ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ‬

‫اﺽﻐﻂ ﻋﻠﻰ ﻣﻔﺘﺎح ‪ Add‬آﻤﺎ هﻮ ﻣﻮﺽﺢ ﻓﻲ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ‬

‫وﻣﻦ ﺙﻢ اﺥﺘﺮ اﻟﺒﺮﻥﺎﻣﺞ اﻟﺬي ﻗﻤﺖ ﻣﻦ ﺥﻼﻟﻪ ﺑﻜﺘﺎﺑﺔ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت اﻟﺴﺎﺑﻘﺔ ﻟﺬﻟﻚ ﺳﻮف ﻥﺨﺘﺎر ‪Driver do Microsoft Access‬‬
‫ﺙﻢ اﺽﻐﻂ ﻋﻠﻰ زر ‪ Finish‬ﻟﻴﻈﻬﺮ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ واآﺘﺐ ﻓﻴﻪ اﺳﻢ ﻣﺼﺪر اﻟﺒﻴﺎﻥﺎت اﻟﺬي ﺳﻮف ﺗﻘﻮم ﺑﻨﺪاء ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت ﻣﻦ ﺥﻼﻟﻪ‬
‫وهﻮ ‪my_data_base‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪١٠‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫اﺽﻐﻂ ﻋﻠﻰ اﻟﺰر ‪ Select‬ﻟﺘﺤﺪیﺪ ﻣﺴﺎر ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت اﻟﻤﻨﺸﺎة اﻟﺴﺎﺑﻘﺔ‬

‫ﺙﻢ اﺽﻐﻂ ﻋﻠﻰ ﻣﻔﺘﺎح ‪ OK‬ﻟﻴﻈﻬﺮ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


١١ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

‫ ﻟﻴﻈﻬﺮ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ‬OK ‫ﺙﻢ اﺽﻐﻂ ﻋﻠﻰ ﻣﻔﺘﺎح‬

Data Source Name (DSN)( ‫وﺑﺬﻟﻚ ﻥﻜﻮن ﻗﺪ اﻥﺘﻬﻴﻨﺎ ﻣﻦ إﻥﺸﺎء ) اﺱﻢ ﻡﺼﺪر اﻟﺒﻴﺎﻥﺎت‬

‫ ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت‬tech.asp ‫********اﻵن واﻵن ﻓﻘﻂ ﺳﻮف ﻥﻘﻮم ﺑﺮﺑﻂ ﺻﻔﺤﺔ‬


١٩١‫ إﻟﻰ ﺻﻔﺤﺔ‬١٨٨ ‫اﻥﻈﺮ آﺘﺎب اﻗﺮأ أﻗﻞ وﺗﻌﻠﻢ أآﺜﺮ ﻣﻦ ﺻﻔﺤﺔ‬
<html dir="rtl"><head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<أﺥﺒﺎر اﻟﺴﺎﺡﺔ‬/title>
</head><body>
<!--#include file="pageheader.asp" -->
<p align="center"><font color="#009933">‫<إﻟﻴﻜﻢ ﺁﺥﺮ اﻟﻤﺴﺘﺠﺪات ﻋﻠﻰ اﻟﺴﺎﺡﺔ‬/font></p>

<%
' ‫أواﻣﺮ اﻻﺗﺼﺎل ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت‬
Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
connectionToDatabase.Open "DSN=my_data_base"
connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>

<!--#include file="pagefooter.asp" -->


</body></html>
my_data_base ‫ ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت‬tech.asp ‫ﺑﺈﺽﺎﻓﺔ اﻷواﻣﺮ اﻟﺴﺎﺑﻘﺔ ﻥﻜﻮن ﻗﺪ ﻗﻤﻨﺎ ﺑﺘﻬﻴﺌﺔ اﺗﺼﺎل ﺻﻔﺤﺔ‬

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٢ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

‫اﻵن ﺳﻮف ﻥﻘﻮم ﺑﺈﺽﺎﻓﺔ أواﻣﺮ اﺥﺘﻴﺎر اﻟﺠﺪول واﺳﺘﺪﻋﺎء اﻟﺒﻴﺎﻥﺎت ﻣﻨ ﻪ وﻟﻜ ﻦ ﻻﺡ ﻆ أن ه ﺬﻩ اﻷواﻣ ﺮ آﺘ ﺒﻦ ﺑﻌ ﺪ أﻣ ﺮ‬
‫ وﻗﺒ ﻞ إﻏ ﻼق ﻗﺎﻋ ﺪة‬connectionToDatabase.Open "DSN=my_data_base" ‫ﻓ ﺘﺢ ﻗﺎﻋ ﺪة اﻟﺒﻴﺎﻥ ﺎت‬
connectionToDatabase.Close ‫اﻟﺒﻴﺎﻥﺎت‬
<html dir="rtl"><head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<اﺥﺒﺎر اﻟﺴﺎﺡﺔ‬/title>
</head><body>
<!--#include file="pageheader.asp" -->
<p align="center"><font color="#009933">‫<إﻟﻴﻜﻢ ﺁﺥﺮ اﻟﻤﺴﺘﺠﺪات ﻋﻠﻰ اﻟﺴﺎﺡﺔ‬/font></p>
<%
Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
connectionToDatabase.Open "DSN=my_data_base"

'‫أواﻣﺮ اﺥﺘﻴﺎر اﻟﺠﺪول واﺳﺘﺪﻋﺎء اﻟﺒﻴﺎﻥﺎت ﻣﻨﻪ‬


selectSQL="select * from tech_news"
set rs=connectionToDatabase.execute(selectSQL)
response.write"<u>‫<اﻟﻌﻨﻮان‬/u> "&rs("subject")
response.write"<u><b> ‫< اﻟﺘﺎریﺦ‬/b></u> "&rs("add_dat")
response.write"‫&" اﻟﺨﺒﺮ‬rs("body")

connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>
<!--#include file="pagefooter.asp" -->
</body></html>

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


‫ﺻﻔﺤﺔ ‪١٣‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫واﻟﻨﺘﻴﺠﺔ هﻲ‬

‫ﺘﻬﺎﻨﻴﻨﺎ‪ .‬ﻟﻘﺩ ﻗﺎﻡ ﺍﻟـ ‪ Code‬ﺍﻟﺫﻱ ﻜﺘﺒﺘﻪ ﺒﻘﺭﺍﺀﺓ ﻤﺤﺘﻭﻴﺎﺕ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻭﻋﺭﻀﻬﺎ ‪.‬ﺒﺎﻟﻁﺒﻊ ﺘﻭﺠﺩ ﺇﺸﻜﺎﻟﻴﺎﺕ ﺒﺴﻴﻁﺔ‬
‫ﻓﻲ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﻤﻌﺭﻭﻀﺔ‪ ،‬ﻭﺴﻨﺸﺭﺡ ﻁﺭﻴﻘﺔ ﺍﻟﺘﻐﻠﺏ ﻋﻠﻴﻬﺎ ﻓﻲ ﺍﻟﺨﻁﻭﺍﺕ ﺍﻟﺘﺎﻟﻴﺔ‪.‬‬

‫اﻹﺵﻜﺎﻟﻴﺔ اﻷوﻟﻰ ‪ :‬اﻟﻤﻈﻬﺮ ﻥﻼﺡﻆ أن اﻟﺒﻴﺎﻥﺎت ﻣﺘﺘﺎﻟﻴﺔ ﻟﺬﻟﻚ ﺳﻮف ﻥﻘﻮم ﺑﺘﺤﺴﻴﻦ اﻟﻤﻈﻬﺮ ﻋﻦ ﻃﺮیﻖ اﺳﺘﺨﺪام‬
‫اﻟﺠﺪاول آﺎﻟﺘﺎﻟﻲ ‪:‬‬
‫ﻻﺡﻆ ﺗﻢ وﺽﻊ أواﻣﺮ ‪ ASP‬ﺑﺎﺥﻞ اﻟﺠﺪول‬
‫وذﻟﻚ ﻋﻦ ﻃﺮیﻖ ﺗﺼﻤﻴﻢ اﻟﺠﺪول ﻓﻲ اﻟﻨﻤﻂ اﻟﻌﺎدي ﺑﺒﺮﻥﺎﻣﺞ اﻟﻔﺮوﻥﺖ ﺑﻴﺞ ﺙﻢ ﺗﻢ إدﺥﺎل أواﻣﺮ ‪ ASP‬ﻋﻦ ﻃﺮیﻖ‬
‫اﻟﻨﻤﻂ ‪ HTML‬ﺑﺒﺮﻥﺎﻣﺞ اﻟﻔﺮوﻥﺖ ﺑﻴﺞ ﻟﻴﻈﻬﺮ آﺎﻟﺘﺎﻟﻲ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


١٤ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

</head><body>
<!--#include file="pageheader.asp" -->
<p align="center"><font color="#009933">‫<إﻟﻴﻜﻢ ﺁﺥﺮ اﻟﻤﺴﺘﺠﺪات ﻋﻠﻰ اﻟﺴﺎﺡﺔ‬/font></p>
<%
Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
connectionToDatabase.Open "DSN=my_data_base"

'‫أواﻣﺮ اﺥﺘﻴﺎر اﻟﺠﺪول واﺳﺘﺪﻋﺎء اﻟﺒﻴﺎﻥﺎت ﻣﻨﻪ‬


selectSQL="select * from tech_news"
set rs=connectionToDatabase.execute(selectSQL)%>

<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse"


bordercolor="#111111" width="100%" id="AutoNumber1">
<tr>
<td width="12%" bgcolor="#00FF00"><b>‫ اﻟﻌﻨﻮان‬:</b></td>
<td width="88%" bgcolor="#00FF00"><% response.write(rs("subject"))%></td>
</tr>
<tr>
<td width="12%"><b>‫ اﻟﺘﺎریﺦ‬:</b></td>
<td width="88%"><% response.write(rs("add_dat"))%></td>
</tr>
<tr>
<td width="12%"><b>‫ اﻟﺨـﺒﺮ‬:</b></td>
<td width="88%"><% response.write(rs("body"))%></td>
</tr>
</table>

<% connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>

<!--#include file="pagefooter.asp" -->


</body></html>

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


‫ﺻﻔﺤﺔ ‪١٥‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﻟﺘﻜﻮن اﻟﻨﺘﻴﺠﺔ آﺎﻟﺘﺎﻟﻲ ‪:‬‬

‫ﺑﻬﺬا ﻥﻜﻮن ﻗﺪ ﻋﺎﻟﺠﻨﺎ اﻹﺵﻜﺎﻟﻴﺔ اﻷوﻟﻰ‪ ،‬وهﻲ ﻣﻈﻬﺮ اﻟﺒﻴﺎﻥﺎت‪.‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


١٦ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

(‫ اﻟﺬي آﺘﺒﻨﺎﻩ ﻗﺎم ﺑﻌﺮض وﻃﺒﺎﻋﺔ أول ﺡﻘﻞ ﻓﻘﻂ ﻣﻦ اﻟﻘﺎﻋﺪة )أول ﺥﺒﺮ ﻓﻘﻂ‬Code ‫ وهﻲ أن اﻟـ‬: ‫اﻹﺵﻜﺎﻟﻴﺔ اﻟﺜﺎﻥﻴﺔ‬
‫ ) ﻋﺮض ﺟﻤﻴﻊ اﻟﻨﺘﺎﺋﺞ ﺑﺸﻜﻞ‬.‫ ﻟﺤﻞ هﺬﻩ اﻹﺵﻜﺎﻟﻴﺔ‬Do ... Loop ‫ ﻟﺬا ﺳﻨﺴﺘﺨﺪم ﺡﻠﻘﺔ‬.‫وﺗﺠﺎهﻞ اﻷﺥﺒﺎر اﻷﺥﺮى‬
‫ﻡﺘﺘﺎﻟﻲ ( ﻣﺎ ﺗﻢ إﺽﺎﻓﺘﻪ ﻣﻈﻠﻞ‬
<html dir="rtl"><head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<اﺥﺒﺎر اﻟﺴﺎﺡﺔ‬/title>
</head><body>
<!--#include file="pageheader.asp" -->
<p align="center"><font color="#009933">‫<إﻟﻴﻜﻢ ﺁﺥﺮ اﻟﻤﺴﺘﺠﺪات ﻋﻠﻰ اﻟﺴﺎﺡﺔ‬/font></p>
<%
Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
connectionToDatabase.Open "DSN=my_data_base"
'‫أواﻣﺮ اﺥﺘﻴﺎر اﻟﺠﺪول واﺳﺘﺪﻋﺎء اﻟﺒﻴﺎﻥﺎت ﻣﻨﻪ‬
selectSQL="select * from tech_news"
set rs=connectionToDatabase.execute(selectSQL)%>
<% do while not rs.eof %>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse"
bordercolor="#111111" width="100%" id="AutoNumber1">
<tr>
<td width="12%" bgcolor="#00FF00"><b>‫ اﻟﻌﻨﻮان‬:</b></td>
<td width="88%" bgcolor="#00FF00"><% response.write(rs("subject"))%></td>
</tr>
<tr>
<td width="12%"><b>‫ اﻟﺘﺎریﺦ‬:</b></td>
<td width="88%"><% response.write(rs("add_dat"))%></td>
</tr>
<tr>
<td width="12%"><b>‫ اﻟﺨـﺒﺮ‬:</b></td>
<td width="88%"><% response.write(rs("body"))%></td>
</tr>
</table>
<% rs.movenext
loop %>
<%
connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>
<!--#include file="pagefooter.asp" -->
</body></html>
‫ﻭﺍﻵﻥ ﺴﻨﻘﻭﻡ ﺒﺸﺭﺡ ﺍﻹﻀﺎﻓﺎﺕ ﺴﻁﺭﺍ ﺴﻁﺭﺍ‬
،‫اﺑ ﺪأ ﺡﻠﻘ ﺔ‬: (Do) ‫ یﻌﻨ ﻲ‬do while not rs.eof ‫ ﻓﺎﻟﺴ ﻄﺮ‬Do (something) Loop. ‫ ﺻ ﻴﻐﺘﻬﺎ‬.‫(ﺡﻠﻘﺔ‬Do) *
‫ إي أﻥﻪ اﻟﺤﻠﻘﺔ ﺳﺘﺴﺘﻤﺮ ﻓ ﻲ‬End Of File). ‫( اﺥﺘﺼﺎر ﻟـ‬eof ‫ ﻥﻬﺎیﺔ اﻟﻤﻠﻒ‬rs ‫( ﻟﻢ ﺗﻜﻮن‬not) ،‫(ﻣﺎ داﻣﺖ‬while)
‫ وﺑﻤﺠ ﺮد أن ﻻ یﺘﺤﻘ ﻖ اﻟﺸ ﺮط ﻟ ﻦ‬،‫ ﻣﺎ دام هﺬا اﻟﺸﺮط ﺻ ﺤﻴﺤﺎ‬Loop) ‫ وﺗﻨﺘﻬﻲ ﺑﻜﻠﻤﺔ‬Do ‫اﻟﺘﻨﻔﻴﺬ )اﻟﺤﻠﻘﺔ ﺗﺒﺪأ ﺑﻜﻠﻤﺔ‬
Loop).‫ وﺳﻴﻐﻠﻖ اﻟﺤﻠﻘﺔ ﻟﻴﻨﻔﺬ ﻣﺎ ﺑﻌﺪهﺎ )أي ﻣﺎ ﺑﻌﺪ‬Loop ‫ و‬Do ‫یﺘﻢ ﺗﻨﻔﻴﺬ ﻣﺎ ﺑﻴﻦ‬
.‫** ﺙﻢ وﺽﻌﻨﺎ أواﻣﺮ ﻋﺮض اﻟﻨﺘﺎﺉﺞ‬
.‫ ﺗﻌﻨﻲ اﻥﺘﻘﻞ ﻟﻠﻨﺘﻴﺠﺔ اﻟﺘﺎﻟﻴﺔ‬rs.movenext ***
‫ ﺗﻌﻨ ﻲ أﻥ ﻪ‬Do ‫ ﺡﻴ ﺚ آﺎﻥ ﺖ‬.‫ ویﻨﻔ ﺬهﺎ ﻣ ﺎ داﻣ ﺖ ﺻ ﺤﻴﺤﺔ‬Do ‫ أي ﺳ ﻴﻌﻮد إﻟ ﻰ ﺟﻤﻠ ﺔ‬.‫(ﺗﻜ ﺮار اﻟﺤﻠﻘ ﺔ‬Loop) ****
‫ ﻥﻬﺎی ﺔ اﻟﻤﻠ ﻒ ﺳ ﻴﺘﻮﻗﻒ ﻋ ﻦ ﺗﻨﻔﻴ ﺬ اﻟﺤﻠﻘ ﺔ ویﻨﺘﻘ ﻞ‬rs ‫ ﻓ ﺈن آﺎﻥ ﺖ‬.‫ ﻥﻬﺎی ﺔ اﻟﻤﻠ ﻒ‬rs ‫یﺴﺘﻤﺮ ﻓﻲ ﺗﻨﻔﻴﺬ اﻟﺤﻠﻘﺔ ﺡﺘﻰ ﺗﺼ ﺒﺢ‬
.‫ ﻥﻬﺎیﺔ اﻟﻤﻠﻒ ﻓﺴﻴﻨﻔﺬ اﻟﺤﻠﻘﺔ‬rs ‫ أﻣﺎ إن ﻟﻢ ﺗﻜﻦ‬Loop ‫ﻟﻠﺴﻄﺮ اﻟﺬي یﻠﻲ‬

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


‫ﺻﻔﺤﺔ ‪١٧‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫واﻟﻨﺘﻴﺠﺔ هﻲ‬

‫ﺑﻬﺬا ﻥﻜﻮن ﻗﺪ ﻋﺎﻟﺠﻨﺎ اﻹﺵﻜﺎﻟﻴﺔ اﻟﺜﺎﻥﻴﺔ‬

‫‪ ##‬ﺗﻢ ﻣﻌﺮﻓﺔ هﺬا اﻟﻜﻮد ﻣﻦ ﺑﺮﻥﺎﻣﺞ ‪ASP Express‬‬


‫اﻟﺠﺰﺉﻴﺔ ‪ADO Connection ← ASP Assistants‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪١٨‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫اﻵن ﺳﻮف ﻥﻘﻮم ﺑﺘﺤﺪیﺚ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت ﺑﺈﺽﺎﻓﺔ ﺥﺒﺮ ﺟﺪیﺪ وهﻮ‬

‫‪id‬‬ ‫‪Add_dat‬‬ ‫‪subject‬‬ ‫‪body‬‬


‫‪3‬‬ ‫دﻋﻤﺖ ﺑﻮرﻻﻥﺪ وﺑﻘﻮة ﺗﻘﻨﻴﺔ ‪ Microsoft.net‬ﻣﻦ ﺥ ﻼل دﻟﻔ ﻲ ‪ ٧‬ﺗ ﺪﻋﻢ ﺗﻘﻨﻴ ﺔ ‪20/11/2004‬‬
‫ﻣﻨﺘﺠﻬ ﺎ اﻟﻔﺮی ﺪ دﻟﻔ ﻲ ‪ ٧‬وﻗ ﺪ أوﺽ ﺤﺖ ﺑﻮرﻻﻥ ﺪ أﻥﻬ ﺎ ﻣ ﻦ ‪Microsoft.NET‬‬
‫ﺥ ﻼل اﻻﺻ ﺪار اﻟﺠﺪی ﺪ ﻣ ﻦ ﻣﻨﺘﺠﻬ ﺎ ‪(Delphi 7‬‬
‫)‪Studio‬ﺗﻀﻊ آﻞ اﻟﺨﻴﺎرات‬

‫واﻵن ﻗﻢ ﺑﺎﺳﺘﻌﺮاض ﺻﻔﺤﺔ ) أﺥﺒﺎر ﺗﻘﻨﻴﺔ ( ﻟﺘﻈﻬﺮ آﺎﻟﺘﺎﻟﻲ‬

‫ﻻ ﻇﻬﺮ ﻓﻲ ﺁﺥﺮ‬
‫ﻥﻼﺡﻆ أن اﻟﺒﻴﺎﻥﺎت ﺗﻈﻬﺮ وﻓﻖ ﺗﺮﺗﻴﺐ اﻟﺴﺠﻼت ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت ﺑﻤﻌﻨﻰ أن اﻟﺨﺒﺮ اﻟﺬي أﺽﻔﺘﺎﻩ ﺡﺎ ً‬
‫ﺵﻲء ﺡﻴﺚ أﻥﻪ ﻓﻲ اﻟﺴﺠﻞ رﻗﻢ ‪٣‬‬

‫اﻵن ﺗﺮیﺪ ﻇﻬﻮر هﺬﻩ اﻷﺥﺒﺎر ﺡﺴﺐ ﺡﺪاﺙﺘﻬﺎ ﺑﻤﻌﻨﻰ أن اﻟﺨﺒﺮ اﻷﺡﺪث یﻈﻬﺮ ﻓﻲ اﻟﺒﺪایﺔ وأﻗﺪم ﺥﺒﺮ یﻈﻬﺮ ﻓﻲ اﻟﻨﻬﺎیﺔ‬
‫) ﻣﻠﺤﻮﻇﺔ ﻥﻔﺲ ﺗﺮﺗﻴﺐ اﻟﺴﺠﻼت آﻤﺎ هﻮ (‬
‫وﻟﻌﻤﻞ ﺳﻮف ﻥﻘﻮم ﺑﺘﻐﻴﻴﺮ ﻓﻲ اﻟﻤﻠﻒ ‪ tech.asp‬آﺎﻟﺘﺎﻟﻲ‬
‫اﻟﻌﺒﺎرة اﻟﻘﺪیﻤﺔ ‪:‬‬
‫"‪selectSQL="select * from tech_news‬‬
‫اﻟﻌﺒﺎرة اﻟﺠﺪیﺪة ‪:‬‬
‫"‪selectSQL="select * from tech_news order by add_dat desc‬‬
‫اﻟﻤﻘﺼﻮد ﻣﻨﻬﺎ ﺗﺮﺗﻴﺐ اﻟﺠﺪول ﺡﺴﺐ ﺡﻘﻞ اﻟﺘﺎریﺦ ‪ add_dat‬ﺗﻨﺎزﻟﻴ ًﺎ ‪ (descend) desc‬أﻣ ﺎ ‪ asc‬ﺗﺴ ﺘﺨﺪم ﻟﺘﺮﺗﻴ ﺐ‬
‫اﻟﻨﺘﺎﺉﺞ ﺗﺼﺎﻋﺪیًﺎ )‪(ascent‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪١٩‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫واﻟﻨﺘﻴﺠﺔ هﻲ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


٢٠ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

‫ﻓﻲ اﻟﺴﺎﺑﻖ ﺻﻤﻤﻨﺎ ﻇﻬﻮر اﻷﺥﺒﺎر ﻋﻠﻰ ﺵﻜﻞ ﺟﺪول ) آﻤﺎ هﻮ ﻓﻲ اﻟﺼﻔﺤﺔ اﻟﺴﺎﺑﻘﺔ ( وﻟﻜﻦ هﺬا اﻟﺸﻜﻞ ﻣﻘﺒﻮل إن‬
‫ ﻓﻠﻦ یﻜﻮن هﺬا‬،‫ أو أﺥﺒﺎر ﻃﻮیﻠﺔ‬،‫ أﻣﺎ إن آﺎن اﻟﻤﻄﻠﻮب ﻋﺮض ﻣﻘﺎﻻت‬.‫آﺎﻥﺖ اﻷﺥﺒﺎر ﻋﺒﺎرة ﻋﻦ أﺥﺒﺎر ﻗﺼﻴﺮة‬
‫ وهﺬا اﻟﻌﻨﻮان یﻜﻮن ﻋﻠﻰ ﺵﻜﻞ )راﺑﻂ( ﺗﻔﺘﺢ ﺑﻪ ﺻﻔﺤﺔ ﺟﺪیﺪة‬،‫واﻷﻓﻀﻞ هﻮ ﻋﺮض اﻟﻌﻨﻮان ﻓﻘﻂ‬. ‫اﻟﺸﻜﻞ ﻣﻨﺎﺳﺒﺎ‬
‫ وهﺬا ﻣﺎ ﺳﻮف ﻥﺘﺤﺪث ﻋﻨﻪ اﻵن‬.‫ﺗﺤﺘﻮي ﻋﻠﻰ اﻟﻤﻮﺽﻮع‬
( QueryString )‫وﺽﻊ رواﺑﻂ ﻟﻤﻮاﺽﻴﻊ ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت اﺱﺘﺨﺪام‬
‫ﻟﺘﺼﻤﻴﻢ ذﻟﻚ اﺗﺒﻊ اﻟﺨﻄﻮات اﻟﺘﺎﻟﻴﺔ‬
‫ وه ﻲ اﻷﺳ ﻄﺮ اﻟﺘ ﻲ ﺗﻘ ﻮم ﺑﻌ ﺮض ﺗ ﺎریﺦ اﻟﺨﺒ ﺮ‬، ‫ وﻗﻢ ﺑﺤﺬف اﻟﺴ ﻄﻮر اﻟﺨﺎﺻ ﺔ ﺑﺎﻟﺠ ﺪول‬teach.asp‫اﻓﺘﺢ اﻟﻤﻠﻒ‬
:‫ وﺳﻨﻀﻊ ﻣﻜﺎﻥﻬﺎ اﻟﺴﻄﺮ اﻟﺘﺎﻟﻲ‬.‫وﻋﻨﻮاﻥﻪ وﻥﺼﻪ‬

<b><a href="body.asp?field=tech_news&id=<%=rs("id")%>"><%response.write rs("subject")%></a></b>

‫ ه ﺬﻩ اﻟ ﺮواﺑﻂ ﺗﺘﻤﻴ ﺰ‬.‫ وﺳ ﺘﻜﻮن ه ﺬﻩ اﻟﻌﻨ ﺎویﻦ ﻋﻠ ﻰ ﺵ ﻜﻞ رواﺑ ﻂ‬،‫هﺬا اﻟﺴﻄﺮ ﺳ ﻴﻘﻮم ﺑﻌ ﺮض ﻋﻨ ﺎویﻦ اﻷﺥﺒ ﺎر ﻓﻘ ﻂ‬
.‫ﺑﺈرﺳﺎﻟﻬﺎ ) ﻗﻴﻤﺔ ( ﻟﻠﺼﻔﺤﺔ اﻟﻤﺮاد إﻇﻬﺎرهﺎ‬
‫< ﻓﻔﺎﺉﺪﺗﻪ اﻟﺤﺼﻮل ﻋﻠﻰ ﺳﻄﺮ ﺟﺪیﺪ‬br> ‫أﻣﺎ اﻟﺴﻄﺮ اﻟﺬي یﻠﻴﻪ‬

<html dir="rtl"><head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<اﺥﺒﺎر اﻟﺴﺎﺡﺔ‬/title>
</head><body>
<!--#include file="pageheader.asp" -->
<p align="center"><font color="#009933">‫<إﻟﻴﻜﻢ ﺁﺥﺮ اﻟﻤﺴﺘﺠﺪات ﻋﻠﻰ اﻟﺴﺎﺡﺔ‬/font></p>
<%
Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
connectionToDatabase.Open "DSN=my_data_base"
'‫أواﻣﺮ اﺥﺘﻴﺎر اﻟﺠﺪول واﺳﺘﺪﻋﺎء اﻟﺒﻴﺎﻥﺎت ﻣﻨﻪ‬
selectSQL="select * from tech_news order by add_dat desc"
set rs=connectionToDatabase.execute(selectSQL)%>

<% do while not rs.eof %>

<b><a href="body.asp?field=tech_news&id=<%=rs("id")%>"><%response.write rs("subject")%></a></b>


<br>
<% rs.movenext
loop %>

<%
connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>
<!--#include file="pagefooter.asp" -->
</body></html>

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


‫ﺻﻔﺤﺔ ‪٢١‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﻟﺘﻈﻬﺮ ﻟﻨﺎ ﺻﻔﺤﺔ ) أﺥﺒﺎر ﺗﻘﻨﻴﺔ ( ﺑﻬﺬا اﻟﺸﻜﻞ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


٢٢ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

:‫ ﻭﻜﺎﻥ ﺍﻟﺭﺍﺒﻁ ﻋﻠﻰ ﺍﻟﺸﻜل ﺍﻟﺘﺎﻟﻲ‬body.asp ‫ ﻭﺃﻀﻔﻨﺎ ﺭﺍﺒﻁ ﻟﺼﻔﺤﺔ‬teach.asp ‫ﻟﻘﺩ ﻗﻤﻨﺎ ﺒﺘﻌﺩﻴل ﻓﻲ ﺼﻔﺤﺔ‬
body.asp?field=tech_news&id=<%=rs("id")%>
(QueryString)‫ ﻻﺴﺘﺩﻋﺎﺀ ﺑﻴﺎﻥﺎت ﻣﻦ اﻟﻘﺎﻋﺪة ﻣﻦ ﺥﻼل رواﺑﻂ اﺳﺘﺨﺪام‬body.asp ‫ﻭﺍﻵﻥ ﺴﻨﻘﻭﻡ ﺒﺘﺼﻤﻴﻡ ﺼﻔﺤﺔ‬
‫ ﻟﻨﺠﺭﻱ ﻋﻠﻴﻬﺎ ﺍﻟﺘﻐﻴﻴﺭﺍﺕ ﺍﻟﻤﻁﻠﻭﺒﺔ‬body.asp ‫ ﻭﻗﻡ ﺒﺈﻋﺎﺩﺓ ﺤﻔﻅﻬﺎ ﺒﺎﺴﻡ‬teach.asp ‫ﻗﻡ ﺒﻔﺘﺢ ﺼﻔﺤﺔ‬

<html dir="rtl"><head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<اﺥﺒﺎر اﻟﺴﺎﺡﺔ‬/title>
</head><body>
<!--#include file="pageheader.asp" -->
<%
Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
connectionToDatabase.Open "DSN=my_data_base"

' QueryString‫أواﻣﺮ اﺳﺘﺪﻋﺎء ﺑﻴﺎﻥﺎت ﻣﻦ اﻟﻘﺎﻋﺪة ﻋﻦ ﻃﺮیﻖ راﺑﻂ اﺳﺘﺨﺪام‬


field=request.querystring("field")
id=request.querystring("id")
selectSQL="select * from "&field&" where id="&id
set rs=connectionToDatabase.execute(selectSQL)
%>
<p align="center"><b><font face="Simplified Arabic" size="5" color="#C11111"><%response.write
rs("subject")%></font></b>
<br>
<p align="left"><font face="Simplified Arabic" size="3"><%response.write rs("add_dat")%></font></p>
<p><b><font face="Simplified Arabic" size="3"><%response.write rs("body")%></font></b></p>
<%
connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>
<!--#include file="pagefooter.asp" -->
</body></html>

.‫ ﻟﻨﺘﻌﻠﻢ ﻣﻌﺎﻥﻲ اﻷواﻣﺮ اﻟﺠﺪیﺪة ﻓﻲ هﺬﻩ اﻟﺼﻔﺤﺔ‬،‫واﻵن‬


:‫ یﻌﻨﻲ‬: field=request.querystring("field") ‫اﻟﺴﻄﺮ اﻟﺘﺎﻟﻲ‬
: field= ‫ وذﻟﻚ ﺑﻜﺘﺎﺑﺔ‬field ‫ﺗﺤﺪیﺪ ﻣﺘﻐﻴﺮ ﺑﺎﺳﻢ‬
: request.querystring ‫ﻗﻴﻤﺔ هﺬا اﻟﻤﺘﻐﻴﺮ ﺳﻴﺘﻢ اﺳﺘﻘﺒﺎﻟﻬﺎ ﻋﻦ ﻃﺮیﻖ راﺑﻂ وذﻟﻚ ﺑﻜﺘﺎﺑﺔ‬
: ("field") ‫ وذﻟﻚ ﺑﻜﺘﺎﺑﺔ‬field ‫ﺳﻴﺸﺎر ﻟﻠﻘﻴﻤﺔ ﻓﻲ اﻟﺮاﺑﻂ ﺑﻜﻠﻤﺔ‬
: body.asp?field=tech_news&id=<%=rs("id")%> ‫ﻟﻨﺘﺬآﺮ اﻵن اﻟﺮاﺑﻂ اﻟﺬي ﻗﻤﻨﺎ ﺑﻜﺘﺎﺑﺘﻪ ﻓﻲ ﺑﺪایﺔ هﺬﻩ اﻟﺼﻔﺤﺔ وهﻮ‬
‫ وهﺬﻩ اﻟﻘﻴﻤﺔ هﻲ‬.‫ ﻣﻦ اﻟﺼﻔﺤﺔ اﻟﺴﺎﺑﻘﺔ إﻟﻰ هﺬﻩ اﻟﺼﻔﺤﺔ ﻣﻦ ﺥﻼل راﺑﻂ‬field ‫ ﻟﻘﺪ أرﺳﻠﻨﺎ ﻗﻴﻤﺔ‬.‫اﻥﻈﺮ ﻟﻠﻜﻮد اﻟﻤﻈﻠﻞ‬
: ‫ ﻟﻨﻔﺘﺮض أن اﻟﺮاﺑﻂ آﺎﻟﺘﺎﻟﻲ‬..‫وﻟﻠﺘﻮﺽﻴﺢ أآﺜﺮ‬tech_news .
body.asp?section=tech_news&id=<%=rs("id")%>
field=request.querystring("section") ‫ إﻟﻰ‬field=request.querystring("field") ‫ﻓﻲ هﺬﻩ اﻟﺤﺎﻟﺔ یﺠﺐ ﺗﻐﻴﻴﺮ‬
‫ وﺑ ﺎﻟﻨﻈﺮ‬.‫ ﻣ ﻊ اﻟﻔ ﺎرق ﻓ ﻲ اﻟﻤﺘﻐﻴ ﺮ وﻗﻴﻤﺘ ﻪ‬،‫ ﻟﻪ ﻥﻔ ﺲ وﻇﻴﻔ ﺔ اﻟﺴ ﻄﺮ اﻷول‬id=request.querystring("id") ‫اﻟﺴﻄﺮ اﻟﺜﺎﻥﻲ‬
‫ ﺳ ﺘﺘﻐﻴﺮ ﺑﺘﻐﻴ ﺮ‬id ‫ یﺘﻀ ﺢ أن ﻗﻴﻤ ﺔ اﻟﻤﺘﻐﻴ ﺮ‬body.asp?field=tech_news&id=<%=rs("id")%> ‫ﻟﻠ ﺮاﺑﻂ اﻟﺴ ﺎﺑﻖ‬
.‫ ﻓﻲ اﻟﺼﻔﺤﺔ اﻟﺴﺎﺑﻘﺔ‬selectSQL ‫ وذﻟﻚ ﻷن اﻟﻘﻴﻤﺔ ﺗﺄﺥﺬ ﻣﻦ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت ﻋﻦ ﻃﺮیﻖ أﻣﺮ‬.‫اﻟﻤﻮﺽﻮع‬

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


‫ﺻﻔﺤﺔ ‪٢٣‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﻣﻦ اﻷﻣﻮر اﻟﺠﺪیﺪة اﻟﺘﻄﻮیﺮ اﻟﺬي ﺡﺪث ﻷﻣﺮ ‪ selectSQL .‬ﺡﻴﺚ ﺗ ﻢ اﺳ ﺘﺒﺪال اﺳ ﻢ اﻟﺠ ﺪول ﺑﻌ ﺪ آﻠﻤ ﺔ )‪ (From‬ﺑﺎﺳ ﻢ ﻣﺘﻐﻴ ﺮ‬
‫ﻓ ﻲ ﺡﺎﻟﺘﻨ ﺎ ه ﺬﻩ )‪ (Field‬وه ﺬا یﻌﻄ ﻲ ﻣﺮوﻥ ﺔ أآﺒ ﺮ‪ .‬ﺡﻴ ﺚ أن ‪ SelectSQL‬ﺳ ﺘﺘﻐﻴﺮ ﺑﺘﻐﻴ ﺮ ﻗﻴﻤ ﺔ ‪ Field ..‬أي أﻥ ﻪ یﻤﻜﻨﻨ ﺎ‬
‫اﺳﺘﺨﺪام هﺬﻩ اﻟﺼﻔﺤﺔ ﻟﻌﺮض ﺟﻤﻴﻊ أﻗﺴﺎم اﻷﺥﺒﺎر ﻓﻲ اﻟﻤﻮﻗﻊ وﻟﻴﺲ ﻓﻘﻂ ﻟﻸﺥﺒﺎر اﻟﺘﻘﻨﻴﺔ‪.‬‬
‫أیﻀﺎ ﺗﻢ إﺽ ﺎﻓﺔ ﺵ ﺮط ‪ Where‬ﻟ ـ ‪ SelectSQL‬وﺑﺈﻣﻜﺎﻥﻨ ﺎ وﺽ ﻊ اﻟﺸ ﺮط اﻟ ﺬي یﻨﺎﺳ ﺒﻨﺎ‪ ..‬وﻓ ﻲ درﺳ ﻨﺎ اﻟﺤ ﺎﻟﻲ آ ﺎن اﻟﺸ ﺮط ‪:‬‬
‫‪id="&id‬أي‪ :‬ﻋﻨﺪﻣﺎ ﺗﻜﻮن ﻗﻴﻤﺔ ‪ id‬ﻓﻲ اﻟﺠﺪول اﻟﻤﻄﻠﻮب ﻓﻲ اﻟﻘﺎﻋﺪة ﺗﺴﺎوي ﻗﻴﻤﺔ اﻟﻤﺘﻐﻴﺮ ‪ id‬ﻓﻲ هﺬﻩ اﻟﺼﻔﺤﺔ‬

‫ﻋﻨﺪ اﻟﻀﻐﻂ ﻋﻠﻰ اﻻرﺗﺒﺎط اﻟﺘﺸﻌﺒﻲ )دﻟﻔﻲ ‪ ٧‬ﺗﺪﻋﻢ ﺗﻘﻨﻴﺔ ‪ (Microsoft.NET‬ﺳﻮف ﺗﻈﻬﺮ ﻟﻨﺎ اﻟﺼﻔﺤﺔ اﻟﺘﺎﻟﻴﺔ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٢٤‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﺗﺼﻤﻴﻢ ﺹﻔﺤﺔ ‪news.asp‬‬


‫اﻟﻬﺪف ﻡﻦ هﺬﻩ اﻟﺼﻔﺤﺔ ﻋﺮض اﻷﺥﺒﺎر وﻟﻜﻦ ﻋﻦ ﻃﺮیﻖ اﻟﻤﻘﺎﻻت‬
‫ﺗﺼﻤﻴﻢ ﺻﻔﺤﺔ ‪ news.asp‬ﻣﺸﺎﺑﻪ ﺟﺪا ﻟـﺼﻔﺤﺔ ‪ tech.asp‬ﻟﺬا ﺳﻨﻘﻮم ﺑﺎﻟﺨﻄﻮات اﻟﺘﺎﻟﻴﺔ ﻹﻥﺸﺎء اﻟﺼﻔﺤﺔ‪:‬‬

‫‪ -١‬اﻓﺘﺢ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت وﺻﻤﻢ ﺟﺪوﻻ ﺑﺎﺳﻢ ‪ general_news‬ﺑﻨﻔﺲ ﻣﻮاﺻﻔﺎت ﺟﺪول ‪. tech_news‬‬
‫ﻣﻊ ﻣﻼﺡﻈﺔ أن اﻟﺤﻘﻞ ‪ body‬آﺎن ﻥﻮع اﻟﺒﻴﺎﻥﺎت ) ﻥ ﺺ( أي أن أﻗﺼ ﻰ ﺡ ﺪ ﻟﺤﺠ ﻢ ﻟﻸﺡ ﺮف ‪ ٢٥٥‬ﺡ ﺮف اذا ﺳ ﻮف‬
‫ﻥﻐﻴﺮ ﻥﻮع اﻟﺒﻴﺎﻥﺎت ﻟﺘﻜﻮن ) ﻡﺬآﺮة ( ﻟﺘﺴﺘﻮﻋﺐ ﻋﺪد أآﺒﺮ ﻣﻦ اﻷﺡﺮف‬

‫ﻡﻼﺣﻈﺔ‪ :‬ﺑﺈﻣﻜﺎﻥﻚ ﺑﺪﻻ ﻣﻦ ﺗﺼﻤﻴﻢ اﻟﺠﺪول ﻣﻦ ﺟﺪیﺪ‪ .‬ﻥﺴﺦ اﻟﺠﺪول اﻟﺤﺎﻟﻲ‪ ،‬وذﻟﻚ ﺑﻌﻤﻞ اﻟﺨﻄﻮات اﻟﺘﺎﻟﻴﺔ‪.‬‬
‫ﺗﻈﻠﻴﻞ اﻟﺠﺪول‪.‬‬
‫ﺽﻊ ﻣﺆﺵﺮ اﻟﻔﺄرة ﻋﻠﻰ اﺳﻢ اﻟﺠﺪول واﺽﻐﻂ ﺑﺰر اﻟﻔﺄرة اﻷیﻤﻦ‪.‬‬
‫اﺥﺘﻴﺎر )ﻥﺴﺦ( ﻣﻦ اﻟﻘﺎﺉﻤﺔ اﻟﺘﻲ ﺳﺘﻈﻬﺮ‪.‬‬
‫ﻓﻲ اﻟﻤﺴﺎﺡﺔ اﻟﺒﻴﻀﺎء اﻟﻔﺎرﻏﺔ اﺽﻐﻂ ﻣﺮة أﺥﺮى زر اﻟﻔﺄرة اﻷیﻤﻦ واﺥﺘﺮ ﻣﻨﻪ )ﻟﺼﻖ(‪.‬‬
‫ﺳ ﻴﻈﻬﺮ ﻟ ﻚ ﺻ ﻨﺪوق ﺡ ﻮار یﺴ ﺄﻟﻚ ﻓﻴ ﻪ ﻋ ﻦ اﺳ ﻢ اﻟﺠ ﺪول‪ ،‬ﻓﺎآﺘ ﺐ ﻓ ﻲ اﻟﺨﺎﻥ ﺔ اﻟﺒﻴﻀ ﺎء اﻟﻤﺨﺼﺼ ﺔ ﻻﺳ ﻢ اﻟﺠ ﺪول‬
‫‪ .general_news‬وﺗﺤﺖ ه ﺬﻩ اﻟﺨﺎﻥ ﺔ اﻟﺒﻴﻀ ﺎء ﺳ ﺘﺠﺪ ﺙﻼﺙ ﺔ ﺥﻴ ﺎرات ه ﻲ‪ :‬اﻟﺒﻨﻴ ﺔ ﻓﻘ ﻂ واﻟﺒﻨﻴ ﺔ واﻟﺒﻴﺎﻥ ﺎت واﻟﺤ ﺎق‬
‫اﻟﺒﻴﺎﻥﺎت ﺑﺎﻟﺠﺪول اﻟﻤﻮﺟﻮد اﺥﺘﺮ اﻟﺨﻴﺎر اﻷول اﻟﺒﻨﻴﺔ ﻓﻘﻂ‪.‬‬
‫واﺽﻐﻂ ﻋﻠﻰ ﻣﻮاﻓﻖ‪.‬‬

‫ﺙﻢ ﺽﻊ اﻟﺒﻴﺎﻥﺎت اﻟﺘﻲ ﺗﺮیﺪهﺎ ﻓﻲ اﻟﺴﺠﻞ‬


‫‪ -٢‬اﻓﺘﺢ ﺻﻔﺤﺔ ‪ tech.asp‬واﺡﻔﻈﻬﺎ ﺑﺎﺳﻢ ‪ news.asp‬وأﺟﺮ اﻟﺘﻌﺪیﻼت اﻟﺘﺎﻟﻴﺔ ﻋﻠﻴﻬﺎ‪.‬‬
‫ﻏﻴﺮ اﻟﺠﻤﻠﺔ اﻟﺘﺮﺡﻴﺒﻴﺔ )اﻟﺘﻲ آﺎﻥﺖ اﻟﻴﻜﻢ ﺁﺥﺮ اﻟﻤﺴﺘﺠﺪات ﻋﻠﻰ اﻟﺴﺎﺡﺔ( ﻟﺘﺘﻨﺎﺳﺐ ﻣﻊ اﻟﺼﻔﺤﺔ اﻟﺠﺪیﺪة‪.‬‬
‫ﻓﻲ ﻋﺒﺎرة ‪ "selectSQL="select * from tech_news‬ﻏﻴﺮ اﺳﻢ اﻟﺠﺪول ‪ tech_news‬إﻟﻰ‬
‫‪general_news‬‬
‫ﻓﻲ اﻟﺮاﺑﻂ ﻟﺼﻔﺤﺔ اﻟﻤﻘﺎل ‪ body.asp‬وهﻮ ‪ <%("rs("id=%>=id&body.asp?field=tech_news :‬ﻏﻴﺮ‬
‫‪ tech_news‬إﻟﻰ ‪general_news‬‬

‫ﺑﻬﺬﻩ اﻟﺨﻄﻮات اﻟﺒﺴﻴﻄﺔ ﻥﻜﻮن ﻗﺪ اﻥﺘﻬﻴﻨﺎ ﻣﻦ ﺻﻔﺤﺔ ‪.news.asp‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٢٥‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫إﻟﻴﻜﻢ اﻵن ﻥﺘﻴﺠﺔ ﺻﻔﺤﺔ ‪news.asp‬‬

‫وﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺮاﺑﻂ ) اﻟﺒﺮادﻋﻲ یﻌﺘﺒﺮ ﺗﻌﻠﻴﻖ ﻃﻬﺮان ﻟﻠﺘﺨﺼﻴﺐ ﻏﻴﺮ آﺎﻣﻞ ( ﺳﻮف ﺗﻈﻬﺮ اﻟﻨﺘﻴﺠﺔ اﻟﺘﺎﻟﻴﺔ ﻋﻠﻰ‬
‫ﺙﻼث ﺻﻔﺤﺎت ﻟﻴﺪل ﻋﻠﻰ آﺒﺮ اﻟﻤﻘﺎل‬

‫اﻟﺼﻔﺤﺔ اﻷوﻟﻰ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٢٦‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫اﻟﺼﻔﺤﺔ اﻟﺜﺎﻥﻴﺔ‬

‫اﻟﺼﻔﺤﺔ اﻟﺜﺎﻟﺜﺔ‬

‫وﺑﻬﺬﻩ اﻟﺨﻄﻮات اﻟﺒﺴﻴﻄﺔ ﻥﻜﻮن ﻗﺪ اﻥﺘﻬﻴﻨﺎ ﻣﻦ ﺗﻨﻔﻴﺬ ﺻﻔﺤﺔ ‪news.asp‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


٢٧ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

search.asp ‫ﺗﺼﻤﻴﻢ ﺻﻔﺤﺔ‬


search.asp. ‫ وﻗﻢ ﺑﺤﻔﻈﻬﺎ ﺑﺎﺳﻢ‬tech.asp ‫ اﻓﺘﺢ ﺻﻔﺤﺔ‬.‫ ﻟﻦ یﺄﺥﺬ اﻟﻜﺜﻴﺮ ﻣﻦ اﻟﻮﻗﺖ‬search.asp ‫ﺗﺼﻤﻴﻢ ﺻﻔﺤﺔ‬
:‫ واﺑﻘﻲ ﻋﻠﻰ اﻷواﻣﺮ ﻟﺘﻜﻮن اﻷآﻮاد اﻟﻤﻮﺟﻮدة ﺑﺎﻟﺼﻔﺤﺔ آﺎﻟﺘﺎﻟﻲ‬.‫ﺙﻢ اﻣﺴﺢ اﻷواﻣﺮ اﻟﺘﻲ ﺑﺪاﺥﻠﻬﺎ‬

<html dir="rtl"><head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<ﺻﻔﺤﺔ اﻟﺒﺤﺚ‬/title>
</head><body>
<!--#include file="pageheader.asp" -->

<!--#include file="pagefooter.asp" -->


</body></html>

:‫ارﺟﻊ ﻟﻨﻤﻂ اﻟﺘﺼﻤﻴﻢ اﻟﻌﺎدي ﻓﻲ اﻟﻔﺮوﻥﺖ ﺑﻴﺞ وﻗﻢ ﺑﺘﺼﻤﻴﻢ اﻟﻨﻤﻮذج اﻟﺘﺎﻟﻲ‬
‫ﻡﻊ ﻡﻼﺣﻈﺔ ﻗﺒﻞ اﻻﻥﺘﻘﺎل إﻟﻰ اﻟﻨﻤﻂ اﻟﻌﺎدي وﺽﻊ اﻟﻤﺆﺵﺮ ﺑﻴﻦ اﻷﻣﺮیﻦ – ﺡﺘﻰ یﺘﻢ إﻥﺸﺎء اﻟﻨﻤﻮذج ﺑﻴﻨﻬﻤﺎ‬
<!--#include file="pageheader.asp" -->

<!--#include file="pagefooter.asp" -->

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


‫ﺻﻔﺤﺔ ‪٢٨‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﻗﻢ ﺑﺎﺥﺘﻴﺎر اﻟﺨﺼﺎﺉﺺ اﻟﺘﺎﻟﻴﺔ ﻟﻠﻨﻤﻮذج‬

‫ﺙﻢ اﺥﺘﺮ ﺥﻴﺎرات ﺳﺘﻈﻬﺮ ﻟﻚ اﻟﺸﺎﺵﺔ اﻟﺘﺎﻟﻴﺔ‪:‬‬

‫ﻓﻲ ﺥﺎﻥﺔ اﻹﺟﺮاء اآﺘﺐ اﺳﻢ اﻟﺼﻔﺤﺔ اﻟﺘﻲ ﺳﺘﺮﺳﻞ إﻟﻴﻬﺎ اﻟﻘﻴﻤﺔ اﻟﻤﺪﺥﻠﺔ ﻓﻲ هﺬا اﻟـ ‪ Form .‬ﻓﻲ ﻣﺜﺎﻟﻨﺎ هﺬا‪ ،‬اﺳﺘﺨﺪﻣﻨﺎ‬
‫)ﻣﺮﺑﻊ ﻥﺺ ( ‪ Textbox‬آﻨﻮع ﻣ ﻦ أﻥ ﻮاع اﻟ ـ ‪ Form‬وﺳﻨﺮﺳ ﻞ اﻟﻘ ﻴﻢ إﻟ ﻰ ﺻ ﻔﺤﺔ ﺑﻌﻨ ﻮان ‪search_result.asp‬‬
‫ﺳﻴﺘﻢ ﻓﻴﻬﺎ اﻟﺒﺤﺚ ﻋﻦ هﺬﻩ اﻟﻘﻴﻢ وﻋﺮض اﻟﻨﺘﺎﺉﺞ ‪.‬وهﺬﻩ هﻲ اﻟﺼﻔﺤﺔ اﻟﺘﻲ ﺳﻨﻘﻮم ﺑﺘﺼﻤﻴﻤﻬﺎ ﻓﻴﻤﺎ ﺑﻌﺪ‪.‬‬
‫اﻟﻔﺮق ﺑﻴﻦ ‪ GET‬و‪POST :‬‬
‫أﻣﺎ ﻓﻲ ﺥﺎﻥﺔ ‪) Method‬اﻟﻄﺮیﻘﺔ ( ﻓﻘﻢ ﺑﺘﻐﻴﻴﺮ اﻻﺥﺘﻴﺎر ‪ Post‬واﺟﻌﻠﻪ ‪ Get.‬اﻻﺥﺘﻼف ﺑﻴﻨﻬﻤﺎ ﺑﺒﺴﺎﻃﺔ هﻮ‪:‬‬
‫‪Post :‬ﺳﻴﺨﻔﻲ اﻟﻘﻴﻢ اﻟﻤﺮﺳﻠﺔ‪.‬أي إن آﻨﺖ ﺗﻮد إرﺳﺎل ﻗﻴﻢ ﺳﺮیﺔ ﻣﻦ ﺻﻔﺤﺔ ﻷﺥﺮ )آﻜﻠﻤﺔ اﻟﻤﺮور ﻣﺜﻼ )ﻓﺒﺈﻣﻜﺎﻥﻚ‬
‫اﺥﺘﻴﺎر ‪Post.‬‬
‫‪Get :‬ﺳ ﺘﻈﻬﺮ اﻟﻘﻴﻤ ﺔ اﻟﻤﺮﺳ ﻠﺔ ﻟﻠﺼ ﻔﺤﺔ اﻟﺜﺎﻥﻴ ﺔ)‪ (search_result.as‬ﻓ ﻲ ﺵ ﺮیﻂ اﻟﻌﻨ ﻮان‪ .‬وه ﺬا ﻣﻔﻴ ﺪ ﻓ ﻲ ﺡﺎﻟ ﺔ‬
‫اﻟﺒﺤﺚ‪ ،‬ﺡﻴﺚ ﺳﻴﺸﺎهﺪ اﻟﺒﺎﺡﺚ اﻟﻜﻠﻤﺔ اﻟﺘﻲ ﺑﺤﺚ ﻋﻨﻬﺎ ﻓﻲ ﺵﺮیﻂ اﻟﻌﻨﻮان ﻓﺴﻴﺘﺄآﺪ إن آﺎن ﻗ ﺪ آﺘﺒﻬ ﺎ ﺑﺸ ﻜﻞ ﺻ ﺤﻴﺢ أم‬
‫ﻻ‪.‬‬
‫اﺽﻐﻂ زر ﻣﻮاﻓﻖ وﻣﺮة أﺥﺮى ﻣﻮاﻓﻖ‪.‬‬
‫ﻣﺮة أﺥﺮى اﺽﻐﻂ ﺑﺰر اﻟﻔﺄرة اﻷیﻤﻦ ﻋﻠﻰ ﻣﺮﺑﻊ اﻟﻨﺺ‪ .‬واﺥﺘﺮ هﺬﻩ اﻟﻤﺮة )ﺥﺼﺎﺉﺺ ﺡﻘﻞ اﻟﻨﻤﻮذج( ﻓﺴﺘﻈﻬﺮ ﻟﻚ‬
‫اﻟﺸﺎﺵﺔ اﻟﺘﺎﻟﻴﺔ‪:‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٢٩‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﻓﻲ ﺥﺎﻥﺔ )اﻻﺳﻢ( اآﺘﺐ اﺳﻢ اﻟﺤﻘﻞ وﻟﻴﻜﻦ )‪ .(keyword‬ﺙﻢ اﺽﻐﻂ ﻣﻮاﻓﻖ‪.‬‬

‫اﺽﻐﻂ ﺑﺰر اﻟﻔﺄرة اﻷیﻤﻦ ﻋﻠﻰ زر )ارﺳﺎل( ‪.‬واﺥﺘﺮ هﺬﻩ اﻟﻤﺮة )ﺥﺼﺎﺉﺺ ﺡﻘﻞ اﻟﻨﻤﻮذج( ﻓﺴﺘﻈﻬﺮ ﻟﻚ اﻟﺸﺎﺵﺔ‬
‫اﻟﺘﺎﻟﻴﺔ‪:‬‬

‫اآﺘﺐ ﻓﻲ ﺥﺎﻥﺔ اﻟﻘﻴﻤﺔ‪/‬اﻟﺘﺴﻤﻴﺔ اﻟﻜﻠﻤﺔ اﻟﺘﻲ ﺗﻮد أن ﺗﻈﻬﺮ ﺑﺪﻻ ﻣﻦ ارﺳﺎل ‪ .‬ﻓﻲ ﻣﺜﺎﻟﻨﺎ هﺬا‪ .‬ﺳﻨﻜﺘﺐ ‪:‬اﺑﺤﺚ‪.‬‬

‫اﺽﻐﻂ ﺑﺰر اﻟﻔﺄرة اﻷیﻤﻦ ﻋﻠﻰ زر )إﻋﺎدة ﺗﻌﻴﻴﻦ( ‪.‬واﺥﺘﺮ هﺬﻩ اﻟﻤﺮة )ﺥﺼﺎﺉﺺ ﺡﻘﻞ اﻟﻨﻤﻮذج( ﻓﺴﺘﻈﻬﺮ ﻟﻚ‬
‫اﻟﺸﺎﺵﺔ اﻟﺘﺎﻟﻴﺔ‪:‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


٣٠ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

:‫ آﺎﻟﺘﺎﻟﻲ‬search.asp ‫ ﺻﻔﺤﺔ‬Code ‫ ﺳﻴﻜﻮن‬..‫أﺥﻴﺮا‬

<html dir="rtl"><head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<ﺻﻔﺤﺔ اﻟﺒﺤﺚ‬/title>
</head><body>
<!--#include file="pageheader.asp" -->

<form method="GET" action="search_result.asp">


<p><input type="text" name="keyword" size="40" dir="rtl"></p>
<p><input type="submit" value="‫ "إﺑﺤﺚ‬name="B1" dir="rtl">&nbsp;&nbsp;&nbsp;
<input type="reset" value="‫ "إﻋﺎدة ﺗﻌﻴﻴﻦ‬name="B2" dir="rtl"></p>
</form>

<!--#include file="pagefooter.asp" -->


</body></html>

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


‫ﺻﻔﺤﺔ ‪٣١‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫وﻋﻨﺪ اﻟﻀﻐﻂ ﻋﻠﻰ راﺑﻂ )ﺑﺤﺚ( ﺳﻮف ﺗﻈﻬﺮ ﻟﻨﺎ ﺻﻔﺤﺔ اﻟﺒﺤﺚ آﺎﻟﺘﺎﻟﻲ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٣٢‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫اﻵن ﺱﻨﺼﻤﻢ ﺹﻔﺤﺔ ‪ search_result.asp‬اﻟﺘﻲ ﺱﺘﺒﺤﺚ ﻋﻦ اﻟﻜﻠﻤﺔ اﻟﻤﻄﻠﻮﺑﺔ‪ ،‬وﺗﻌﺮض اﻟﻨﺘﺎﺋﺞ‪.‬‬

‫اﻓﺘﺢ ﺻﻔﺤﺔ ‪ search.asp‬وﻗﻢ ﺑﺤﻔﻈﻬﺎ ﺑﺎﺳﻢ ‪.search_result.asp‬‬

‫واﻵن‪ .‬ﻟﻨﻘﻢ ﺑﺎﻟﺘﻐﻴﻴﺮات اﻟﻤﻄﻠﻮﺑﺔ‬


‫ﻻ ‪ :‬إﺽﺎﻓﺔ أواﻣﺮ اﻻﺗﺼﺎل ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت آﻤﺎ ﺗﻢ ﻓﻲ ﺻﻔﺤﺔ ‪ body‬ﺳﺎﺑﻘًﺎ‬ ‫او ً‬
‫‪.‬ﺙﺎﻥﻴ ﺎ‪ :‬إﻋ ﻼم اﻟﺒﺮﻥ ﺎﻣﺞ أن هﻨﺎﻟ ﻚ )ﻣﺘﻐﻴ ﺮ( یﺠ ﺐ أﺥ ﺬ ﻗﻴﻤﺘ ﻪ ﻣ ﻦ اﻟﺼ ﻔﺤﺔ اﻟﺴ ﺎﺑﻘﺔ ‪ serach.asp‬ه ﺬا اﻟﻤﺘﻐﻴ ﺮ ه ﻮ‬
‫‪keyword‬واﻟﺬي یﺤﺘﻮي ﻋﻠﻰ اﻟﻜﻠﻤﺔ اﻟﻤﻄﻠﻮب اﻟﺒﺤﺚ ﻋﻨﻬﺎ‬
‫وآﻤﺎ ﻓﻌﻠﻨﺎ ﻓﻲ ﺹﻔﺤﺔ ‪ body‬ﻋﻨﺪ اﺱﺘﺪﻋﺎء اﻟﺒﻴﺎﻥﺎت ﻡﻦ اﻟﻘﺎﻋﺪة ﻡﻦ ﺧﻼل رواﺑﻂ ‪ ، QueryString‬ﺱﻨﺴﺘﺨﺪم‬
‫ﻻ ﻣﻨﻬﺎ ‪:‬‬‫‪Request.QueryString‬ﻟﻠﻘﻴﺎم ﺑﻬﺬﻩ اﻟﻤﻬﻤﺔ‪ .‬ﻟﺬا ﻗﻢ ﺑﻤﺴﺢ ﻓﻘﻂ اﻷﺳﻄﺮ اﻟﺨﺎﺻﺔ ﺑﺎﻟﻨﻤﻮذج واآﺘﺐ ﺑﺪ ً‬

‫>‪<% keyword=request.querystring("keyword") %‬‬

‫واﻵن ﺳﻨﻘﻮم ﺑﺎﻟﺒﺤﺚ ﻋﻦ اﻟﻜﻠﻤﺔ ﻓﻲ اﻟﺠﺪول وﻟﻴﻜﻦ )‪ (tech_news‬ﺑﻌﺪ اﺳﺘﻘﺒﺎﻟﻬﺎ ﻣﻦ ﺻﻔﺤﺔ اﻟﺒﺤﺚ ﺑﺎﺳﺘﺨﺪام أﻣﺮ‪Select:‬‬

‫" '‪SelectTechSQL="select * from tech_news where subject like '%"&keyword&"%' or body like '%"&keyword&"%‬‬
‫)‪set rsTech=connectionToDatabase.execute(SelectTechSQL‬‬

‫ﺵﺮح اﻟﻜﻮد ﺧﻄﻮة ﺧﻄﻮة‬

‫" '‪SelectTechSQL="select * from tech_news where subject like '%"&keyword&"%‬‬

‫اﻟﻤﻼﺡﻆ ﻓﻲ أﻣﺮ ‪ Select‬هﻨﺎ أﻥﻨﺎ أﺽﻔﻨﺎ آﻠﻤ ﺔ ‪ . Like‬آﻠﻤ ﺔ ‪ Like‬ﺗﻐﻨ ﻲ ﻋ ﻦ ﻋﻼﻣ ﺔ ) = (‪ .‬ویﻤﻜ ﻦ أن ﺗﻌﺒ ﺮ ﻋ ﻦ‬
‫ﻣﺴﺎواة آﻠﻴﺔ أو ﺟﺰﺉﻴﺔ‪ .‬وﻟﺘﻮﺽﻴﺢ ذﻟﻚ‪ ،‬ﻟﻨﻔﺘﺮض اﻟﻤﺜﺎل اﻟﺘﺎﻟﻲ‪ :‬إن ﻗﻤﻨﺎ ﺑﺎﺳﺘﺨﺪام اﻟﻤﺴﺎواة اﻟﻜﻠﻴﺔ وﺑﺤﺜﻨﺎ ﻋﻦ "ﺥﺎﻟ ﺪ"‬
‫ﻓﺴ ﺘﻈﻬﺮ ﻟﻨ ﺎ اﻟﻨﺘ ﺎﺉﺞ اﻟﺘ ﻲ ﺗﺤﺘ ﻮي ﻋﻠ ﻰ آﻠﻤ ﺔ "ﺥﺎﻟ ﺪ"‪ .‬أﻣ ﺎ إن اﺳ ﺘﺨﺪﻣﺎ اﻟﻤﺴ ﺎواة اﻟﺠﺰﺉﻴ ﺔ ﻓﺴ ﺘﻈﻬﺮ ﻟﻨ ﺎ اﻟﻨﺘ ﺎﺉﺞ اﻟﺘ ﻲ‬
‫ﺗﺤﺘﻮي ﻋﻠﻰ‪ :‬ﺥﺎﻟﺪ‪ ،‬ﺥﺎﻟﺪا‪ ،‬اﻟﺨﺎﻟﺪ‪ ،‬اﻟﺨﺎﻟﺪون‪ ،‬ﺥﺎﻟﺪون ‪ ..‬اﻟﺦ‬
‫ﻟﻠﺘﻌﺒﻴﺮ ﻋﻦ اﻟﻤﺴﺎواة اﻟﻜﻠﻴﺔ ﻥﻜﺘﺐ ‪ Like‬وﺑﻌﺪهﺎ اﺳﻢ اﻟﻤﺘﻐﻴﺮ ‪ ..‬ﻓﻲ ﻣﺜﺎﻟﻨﺎ هﻮ ‪ Keyword‬ﻓﻨﻜﺘﺒﻪ ﺑﺎﻟﺼﻴﻐﺔ اﻟﺘﺎﻟﻴﺔ‪:‬‬
‫"&‪"&keyword‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٣٣‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﻟﻠﺘﻌﺒﻴﺮ ﻋﻦ اﻟﻤﺴﺎواة اﻟﺠﺰﺉﻴﺔ ﻥﻜﺘﺐ ‪ Like‬وﺑﻌﺪهﺎ اﺳﻢ اﻟﻤﺘﻐﻴﺮ ﺑﻴﻦ ﻋﻼﻣﺎت اﻟﻨﺴﺒﺔ اﻟﻤﺆویﺔ ‪ ..‬ﻓﻲ ﻣﺜﺎﻟﻨﺎ هﻮ‬
‫‪ Keyword‬ﻓﻨﻜﺘﺒﻪ ﺑﺎﻟﺼﻴﻐﺔ اﻟﺘﺎﻟﻴﺔ‪'%"&keyword&"%' :‬‬
‫واﻟﻤﻘﺼﻮد ﻓﻲ ﻋﺒﺎرة ‪ Select‬ﻓﻲ هﺬا اﻟﻤﺜﺎل هﻮ‪ :‬اﺥﺘﺮ أي ﺵﻲ ﻣﻦ ﺟﺪول ‪ Tech‬ﻋﻨﺪﻣﺎ ﺗﻜﻮن اﻟﻘﻴﻤﺔ ﻓﻲ اﻟﻌﻤﻮد‬
‫‪ Subject‬ﻣﺴﺎویﺔ أو ﻣﺸﺎﺑﻬﺔ ﻟﻠﻘﻴﻤﺔ ﻓﻲ اﻟﻤﺘﻐﻴﺮ ‪ . Keyword‬ﻟﻠﺘﻮﺽﻴﺢ ﻟﻨﻔﺘﺮض اﻟﻤﺜﺎل اﻟﺘﺎﻟﻲ‪:‬‬
‫ﻟﺪیﻚ ﻓﻲ اﻟﻘﺎﻋﺪة اﻟﻌﻨﺎویﻦ اﻟﺜﻼﺙﺔ اﻟﺘﺎﻟﻴﺔ‪:‬‬
‫• ﻟﻐﺔ ‪ ASP‬ﻣﺘﻄﻮرة وﺳﻬﻠﺔ‪.‬‬
‫• ﻟﻐﺔ ‪ PHP‬ﺳﻬﻠﺔ وﻣﺘﻄﻮرة‪.‬‬
‫• اﻟﺒﺮﻣﺠﺔ ﺑـ ‪ ++C‬ﻣﻤﺘﻌﺔ‪.‬‬
‫ﻋﻨﺪ إدﺥﺎل آﻠﻤﺔ "ﻟﻐﺔ" ﻟﻠﺒﺤﺚ ﻋﻨﻬﺎ‪ ،‬ﺳﻴﻈﻬﺮ ﻟﻨﺎ أول ﻋﻨﻮاﻥﻴﻦ آﻨﺘﺎﺉﺞ ﻟﻠﺒﺤﺚ‪ .‬ﺡﻴﺚ أن أﻣﺮﻥﺎ یﺒﺤﺚ ﻓﻲ اﻟﻌﻨﻮان‪.‬‬
‫إن آﻨﺎ ﻥﻮد ﺗﻐﻴﻴﺮ ﺡﻘﻞ اﻟﺒﺤﺚ‪ ،‬ﻓﺒﺈﻣﻜﺎﻥﻨﺎ ﺗﻐﻴﻴﺮ اﺳﻢ اﻟﻌﻤﻮد اﻟﺬي یﺘﻢ اﻟﺒﺤﺚ ﻓﻴﻪ‪ ..‬آﺄن ﻥﻜﺘﺐ‬
‫&"‪select * from tech where body like&"%' keyword'%‬‬
‫ﻓﻲ ﺡﺎل رﻏﺒﺘﻨﺎ ﺑﺎﻟﺒﺤﺚ ﻓﻲ ﻥﺺ اﻟﻤﻮﺽﻮع وﻟﻴﺲ ﻋﻨﻮاﻥﻪ‪ .‬أﻣﺎ إن أردﻥﺎ اﻟﺒﺤﺚ ﻓﻲ آﺎﻓﺔ اﻟﺤﻘﻮل‪ ،‬ﻓﻌﻠﻴﻨﺎ آﺘﺎﺑﺘﻬﺎ ﺟﻤﻴﻌﺎ‬
‫واﻟﺮﺑﻂ ﺑﻴﻨﻬﺎ ﺑﺎﺳﺘﺨﺪام أﺡﺪ دوال اﻟﺮﺑﻂ اﻟﻤﻨﻄﻘﻴﺔوهﻲ ‪ . Or‬ﻟﻨﻌﺪ آﺘﺎﺑﺔ ‪ SelectTechSQL‬ﻣﺮة ﺑﺎﺳﺘﺨﺪام ‪: Or‬‬

‫" '‪SelectTechSQL="select * from tech_news where subject like '%"&keyword&"%' or body like '%"&keyword&"%‬‬

‫ﻓﻲ هﺬﻩ اﻟﺤﺎﻟﺔ ﺳﻴﺘﻢ ﻋﺮض اﻟﻨﺘﺎﺉﺞ اﻟﺬي ﺗﻮﺟﺪ ﺑﻬﺎ آﻠﻤﺔ اﻟﺒﺤﺚ ﻓﻲ‪:‬‬
‫اﻟﻌﻨﻮان‪.‬‬
‫اﻟﻤﺤﺘﻮى‪.‬‬
‫اﻟﻌﻨﻮان واﻟﻤﺤﺘﻮى‪.‬‬
‫اﻷﻣﺮ اﻟﺴﺎﺑﻖ ﺳﻴﺒﺤﺚ ﻋﻦ اﻟﻜﻠﻤﺔ ﻓﻲ اﻟﺠﺪول ‪Tech_news‬‬

‫ﺑﻌﺪ آﺘﺎﺑﺔ أواﻣﺮ ‪ Select‬ﻋﻠﻴﻨﺎ آﺘﺎﺑﺔ أواﻣﺮ ﻋﺮض اﻟﻨﺘﺎﺉﺞ‪ .‬ﻟـ ‪SelectTechSQL‬‬

‫>‪<% do while not rsTech.eof %‬‬

‫>">‪<p><b><a href="body.asp?field=tech_news&id=<%=rsTech("id")%‬‬
‫>‪<%response.write rsTech("subject")%></a></b></p‬‬

‫‪<% rsTech.movenext‬‬
‫>‪loop %‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


٣٤ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

‫اﻷآﻮاد آﻠﻬﺎ ﻣﺠﻤﻌﺔ‬


<html dir="rtl"><head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<ﺻﻔﺤﺔ ﻥﺘﺎﺉﺞ اﻟﺒﺤﺚ‬/title>
</head><body><!--#include file="pageheader.asp" -->
<%
Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
connectionToDatabase.Open "DSN=my_data_base"
%>
<%keyword=request.querystring("keyword")%>
<%
' tech_news ‫أواﻣﺮ اﻟﺒﺤﺚ ﻓﻲ ﺟﺪول اﻷﺥﺒﺎر اﻟﺘﻘﻨﻴﺔ‬
SelectTechSQL="select * from tech_news where subject like '%"&keyword&"%' or body like '%"&keyword&"%' "
set rsTech=connectionToDatabase.execute(SelectTechSQL)
%>
<p align="center"><b><font size="5" color="#008000">‫ ﻥﺘﺎﺉﺞ اﻟﺒﺤﺚ هﻰ‬:</font></b></p>
<% ' tech_news ‫ أواﻣﺮ ﻋﺮض ﻥﺘﺎﺉﺞ اﻷﺥﺒﺎر اﻟﺘﻘﻨﻴﺔ‬%>
<% do while not rsTech.eof %>
<p><b><a href="body.asp?field=tech_news&id=<%=rsTech("id")%>"><%response.write
rsTech("subject")%></a></b></p>
<% rsTech.movenext
loop %>
<%
connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>
<!--#include file="pagefooter.asp" --> </body></html>

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


‫ﺻﻔﺤﺔ ‪٣٥‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫اﻟﻨﺘﻴﺠﺔ هﻲ‬

‫وﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ ﻣﻔﺘﺎح )اﺑﺤﺚ(‬

‫وﻣﻦ ﺙﻢ یﻤﻜﻦ اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺮاﺑﻂ اﻟﻨﺎﺗﺞ ﻣﻦ ﻋﻤﻠﻴﺔ اﻟﺒﺤﺚ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


٣٦ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

Tech_news ‫إﻟﻰ اﻵن ﻗﺪ اﻥﺘﻬﻴﻨﺎ ﻣﻦ ﺗﺼﻤﻴﻢ ﻣﺤﺮك اﻟﺒﺤﺚ وﻟﻜﻦ ﻟﺠﺪول واﺡﺪ وهﻮ‬
General_news ‫اذا اﻟﻤﻄﻠﻮب اﻵن ﻋﻤﻞ ﻥﻔﺲ اﻟﺸﺊ ﻟﻠﺠﺪول‬
‫ ﻣﻊ ﺗﻐﻴﻴﺮ اﻻﺳﻢ‬General_news ‫ وﺟﻌﻠﻪ ﻟﺠﺪول‬Tech_news ‫اﻷﻣﺮ ﺑﺴﻴﻂ ﺳﻮف ﻥﻘﻮم ﺑﻨﺴﺦ ﻣﺎ ﻓﻌﻠﻨﺎ ﻟﻠﺠﺪول‬
(search_result.asp ‫ﻓﻘﻂ آﺎﻟﺘﺎﻟﻲ ) ﻓﻲ ﻥﻔﺲ ﺻﻔﺤﺔ‬

‫اﻷآﻮاد آﻠﻬﺎ ﻣﺠﻤﻌﺔ‬

<html dir="rtl"><head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<ﺻﻔﺤﺔ ﻥﺘﺎﺉﺞ اﻟﺒﺤﺚ‬/title>
</head><body>
<!--#include file="pageheader.asp" -->
<%
Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
connectionToDatabase.Open "DSN=my_data_base"
%>
<%
keyword=request.querystring("keyword")
%>
<%
' tech_news ‫أواﻣﺮ اﻟﺒﺤﺚ ﻓﻲ ﺟﺪول اﻷﺥﺒﺎر اﻟﺘﻘﻨﻴﺔ‬
SelectTechSQL="select * from tech_news where subject like '%"&keyword&"%' or body like '%"&keyword&"%' "
set rsTech=connectionToDatabase.execute(SelectTechSQL)
' general_news ‫أواﻣﺮ اﻟﺒﺤﺚ ﻓﻲ ﺟﺪول اﻷﺥﺒﺎر اﻟﻌﺎﻣﺔ‬
SelectGeneralSQL="select * from general_news where subject like '%"&keyword&"%' or body like
'%"&keyword&"%' "
set rsGeneral=connectionToDatabase.execute(SelectGeneralSQL)
%>
<p align="center"><b><font size="5" color="#008000">‫ ﻥﺘﺎﺉﺞ اﻟﺒﺤﺚ هﻰ‬:</font></b></p>
<% ' tech_news ‫ أواﻣﺮ ﻋﺮض ﻥﺘﺎﺉﺞ اﻷﺥﺒﺎر اﻟﺘﻘﻨﻴﺔ‬%>
<% do while not rsTech.eof %>
<p><b><a href="body.asp?field=tech_news&id=<%=rsTech("id")%>"><%response.write
rsTech("subject")%></a></b></p>
<% rsTech.movenext
loop %>
<% ' general_news ‫ أواﻣﺮ ﻋﺮض ﻥﺘﺎﺉﺞ اﻷﺥﺒﺎر اﻟﻌﺎﻣﺔ اﻟﻤﻘﺎﻻت‬%>
<% do while not rsGeneral.eof %>
<p><b><a href="body.asp?field=general_news&id=<%=rsGeneral("id")%>"><%response.write
rsGeneral("subject")%></a></b></p><% rsGeneral.movenext
loop %>
<%
connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>
<!--#include file="pagefooter.asp" -->
</body></html>

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


‫ﺻﻔﺤﺔ ‪٣٧‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫اﻟﺼﻔﺤﺔ اﻷوﻟﻰ‬

‫اﻟﺼﻔﺤﺔ اﻟﺜﺎﻥﻴﺔ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٣٨‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫اﻟﻨﺘﻴﺠﺔ هﻲ‬

‫وﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ اﻟﻤﻔﺘﺎح )اﺑﺤﺚ( ﺗﻈﻬﺮ اﻟﻨﺘﻴﺠﺔ اﻟﺘﺎﻟﻴﺔ‬

‫وﻣﻦ ﺙﻢ یﻤﻜﻦ اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺮاﺑﻂ اﻟﻨﺎﺗﺞ ﻣﻦ ﻋﻤﻠﻴﺔ اﻟﺒﺤﺚ‬


‫ﺑﺬﻟﻚ ﻥﻜﻮن ﻗﺪ اﻥﺘﻬﻴﻨﺎ ﻣﻦ ﺗﺼﻤﻴﻢ ﻣﺤﺮك اﻟﺒﺤﺚ‪.‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٣٩‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﺗﺼﻤﻴﻢ ﺹﻔﺤﺔ ﺱﺠﻞ اﻟﺰوار )‪(guest.asp‬‬

‫ﺳﻨﺼﻤﻢ ﺳﺠﻞ اﻟﺰوار ﻣﻦ ﺻﻔﺤﺘﻴﻦ‪،‬‬


‫‪ -١‬ﺹﻔﺤﺔ ﻋﺮض اﻟﺘﻮﻗﻴﻌﺎت ‪: guest.asp‬‬
‫‪ -٢‬ﺹﻔﺤﺔ إﺽﺎﻓﺔ ﺗﻮﻗﻴﻊ ‪sign_book.asp .‬‬
‫وﻣﻦ اﻟﻄﺒﻴﻌﻲ أن ﻥﺒﺪأ ﺑﺼﻔﺤﺔ ‪ sign_book.asp‬ﻹﺽﺎﻓﺔ اﻟﺘﻮﻗﻴﻌﺎت‪ .‬إﻻ أﻥﻨﺎ ﺳﻨﻔﺘﺮض أن هﻨﺎﻟﻚ ﺗﻮﻗﻴﻊ ﻓﻲ ﺳﺠﻞ‬
‫اﻟﺰوار وﺳﻨﺼﻤﻢ ﺻﻔﺤﺔ اﻟﻌﺮض‪ guest.asp‬أوﻻ ﺙﻢ ﻥﺼﻤﻢ اﻟﺼﻔﺤﺎت اﻟﺒﺎﻗﻴﺔ‪.‬‬
‫واﻵن‪ ،‬ﻟﻨﺼﻤﻢ اﻟﺠﺪول ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت اﻟﺘﻲ ﺳﻴﺤﺘﻮي ﻋﻠﻰ اﻟﺘﻮﻗﻴﻌﺎت‪ .‬اﻓﺘﺢ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت‪ ،‬وﺳﻨﺼﻤﻢ ﺟﺪول‬
‫ﺑﺎﺳﻢ ‪ guest_book‬وهﺬا هﻮ ﺵﻜﻠﻪ‪:‬‬

‫اﻥﺘﺒﻪ ﻟﻨﻮﻋﻴﺔ اﻟﺤﻘﻮل آﻤﺎ هﻮ ﻣﻮﺽﺢ ﻓﻲ اﻟﺸﻜﻞ‪.‬‬


‫اﺟﻌﻞ ﺟﻤﻴﻊ اﻟﺤﻘﻮل اﻟﺘﻲ ﻣﻦ ﻥﻮع )ﻥﺺ( ﺡﺠﻤﻬﺎ( ﺡﺠﻢ اﻟﺤﻘﻞ ﺗﺴﺎوي ‪.٢٥٥‬‬
‫ﻗﻢ ﺑﺈدﺥﺎل ﺑﻌﺾ اﻟﺒﻴﺎﻥﺎت ﻓﻲ هﺬﻩ اﻟﺨﺎﻥﺎت ﻟﻠﺘﺠﺮﺑﺔ‪.‬‬

‫ﻻﺡﻆ ﻋﻨﺪ آﺘﺎﺑﺔ اﺳﻢ اﻟﻤﻮﻗﻊ ﻻﺑﺪ ﻣﻦ آﺘﺎﺑﺔ اﻟﺒﺮوﺗﻮآﻮل ‪ http://www.damaran.com‬ﺡﺘﻰیﺘﻤﻜﻦ اﻟﻤﺴﺘﻌﺮض‬
‫ﻣﻦ اﻻﻥﺘﻘﺎل اﻟﻰ اﻟﻤﻮﻗﻊ اﻟﻤﻄﻠﻮب – واذا ﻟﻢ یﺘﻢ آﺘﺎﺑﺔ اﻟﺒﺮوﺗﻮآﻮل ﻓﺴﻴﺤﺪث ﺥﻄﺄ ﻻن اﻟﻤﺴﺘﻌﺮض ﺳﻮف یﺘﻌﺎﻣﻞ‬
‫ﻣﻌﻪ ﻋﻠﻰ ان هﺬا اﻟﺮاﺑﻂ داﺥﻞ ﻥﻔﺲ اﻟﻤﻮﻗﻊ‬

‫اﻵن‪ ،‬ﺳﻨﺴ ﺘﺨﺪم اﻟﻤﻬ ﺎرات اﻟﺘ ﻲ ﺗﻌﻠﻤﻨﺎه ﺎ ﺳ ﺎﺑﻘﺎ‪ ،‬ﻟ ﺮﺑﻂ اﻟﺼ ﻔﺤﺔ ‪ guest.asp‬ﺑﻘﺎﻋ ﺪة اﻟﺒﻴﺎﻥ ﺎت‪ ،‬واﺳ ﺘﺨﺪام اﻷﻣ ﺮ ‪Select‬‬
‫ﻻﺥﺘﻴﺎر اﻟﻤﻌﻠﻮﻣﺎت ﻣﻦ اﻟﻘﺎﻋﺪة‪ ،‬واﻷﻣﺮ ‪ Response.Write‬ﻟﻄﺒﺎﻋﺔ )ﻋﺮض( اﻟﻤﻌﻠﻮﻣﺎت ﻓﻲ اﻟﺸﺎﺵﺔ‪ .‬ﻋﻦ ﻃﺮیﻖ اﻟﺠﺪول‬
‫اﻓﺘﺢ ﺻﻔﺤﺔ ‪ tech.asp‬وﻗﻢ ﺑﺤﻔﻈﻬﺎ ﺑﺎﺳﻢ ‪guest.asp‬‬
‫وﻗﻢ ﺑﺎﻟﺘﻐﻴﺮات اﻟﺘﺎﻟﻴﺔ واﻟﻴﻚ اﻟﻜﻮد اﻟﺘﺎﻟﻲ‪:‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


٤٠ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

<html dir="rtl"><head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<ﺻﻔﺤﺔ ﻋﺮض اﻟﺘﻮاﻗﻴﻊ‬/title>
</head><body>
<!--#include file="pageheader.asp" -->
<p align="center"><font color="#009933">‫ وﻣﻼﺡﻈﺎﺗﻜﻢ‬... ‫ﻣﺮﺡﺒًﺎ ﺑﻜﻢ ﻓﻲ ﺳﺠﻞ اﻟﺰوار‬
‫<ﺗﺴﻌﺪﻥﺎ‬/font></p>
<%
Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
connectionToDatabase.Open "DSN=my_data_base"
' guest_book ‫أواﻣﺮ اﺥﺘﻴﺎر اﻟﺠﺪول واﺳﺘﺪﻋﺎء اﻟﺒﻴﺎﻥﺎت ﻣﻨﻪ‬
selectSQL="select * from guest_book order by add_dat desc"
set rs=connectionToDatabase.execute(selectSQL)%>
<% do while not rs.eof %>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse"
bordercolor="#111111" width="100%" id="AutoNumber1">
<tr>
<td width="30%" bgcolor="#00FFFF"><b>‫ اﻻﺳﻢ‬:</b></td>
<td width="70%" bgcolor="#00FFFF"><%response.write rs(("name"))%></td>
</tr>
<tr>
<td width="30%"><b>‫ اﻟﺒﺮیﺪ اﻻﻟﻜﺘﺮوﻥﻲ‬:</b></td>
<td width="70%"><%response.write rs(("email"))%></a></td>
</tr>
<tr>
<td width="30%"><b>‫ اﻟﻤﻮﻗﻊ اﻟﺸﺨﺼﻲ‬:</b></td>
<td width="70%"><%response.write rs(("website"))%></td>
</tr>
<tr>
<td width="30%"><b>‫ ﻃﺮیﻘﺔ اﻻﺳﺘﺪﻻل ﻋﻠﻰ ﻣﻮﻗﻌﻨﺎ‬:</b></td>
<td width="70%"><%response.write (rs("link"))%></td>
</tr>
<tr>
<td width="30%"><b>‫ اﻟﺘﻘﻴﻴﻢ‬:</b></td>
<td width="70%"><%response.write rs(("ranking"))%></td>
</tr>
<tr>
<td width="30%"><b>‫ اﻟﺘﻌﻠﻴﻖ‬:</b></td>
<td width="70%"><%response.write rs(("comment"))%></td>
</tr>
</table>

<% rs.movenext
loop %>
<%
connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>
<!--#include file="pagefooter.asp" -->
</body></html>

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


‫ﺻﻔﺤﺔ ‪٤١‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫اﻟﺼﻔﺤﺔ اﻷوﻟﻰ‬

‫اﻟﺼﻔﺤﺔ اﻟﺜﺎﻥﻴﺔ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٤٢‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫اﻟﻨﺘﻴﺠﺔ ﻋﻨﺪ ﺗﺸﻐﻴﻞ اﻟﺮاﺑﻂ ﺳﺠﻞ اﻟﺰوار هﻰ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٤٣‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫اﻟﻤﻄﻠﻮب اﻵن ﺟﻌﻞ اﻟﺒﺮیﺪ اﻻﻟﻜﺘﺮوﻥﻲ ذو راﺑﻂ ﺑﺤﻴﺚ ﻋﻦ اﻟﻀﻐﻂ ﻋﻠﻴﻪ یﻨﺘﻘﻞ اﻟﻤﺴﺘﻌﺮض اﻟﻰ ﺑﺮﻥﺎﻣﺞ اﻟﺒﺮیﺪ‬
‫اﻻﻟﻜﺘﺮوﻥﻲ اﻟﻤﺜﺒﺖ ﻟﺪى اﻟﻤﺴﺘﺨﺪم‬
‫وآﺬﻟﻚ اﻟﻤﺮاد اﻵن ﺟﻌﻞ اﻟﻤﻮﻗﻊ اﻟﺸﺨﺼﻲ ذو ارﺗﺒﺎط ﺗﺸﻌﺒﻲ ﺑﺤﻴﺚ ﻋﻨﺪ اﻟﻀﻐﻂ ﻋﻠﻴﻪ یﻨﺘﻘﻞ اﻟﻤﺴﺘﻌﺮض إﻟﻰ اﻟﻤﻮﻗﻊ‬
‫اﻟﻤﺴﺠﻞ‬
‫ﻟﺬﻟﻚ ﺳﻮف ﻥﻘﻮم ﺑﺒﻌﺾ اﻟﺘﻐﻴﺮات اﻵﺗﻴﺔ‪:‬‬
‫اﻟﻜﻮد اﻟﺘﺎﻟﻰ هﻮ ﻣﺎ ﺗﻢ ﺗﻐﻴﻴﺮﻩ ﻓﻘﻂ ) ﻓﻰ ﺥﻠﻴﺔ اﻟﺒﺮیﺪ اﻻﻟﻜﺘﺮوﻥﻲ وﺥﻠﻴﺔ اﻟﻤﻮﻗﻊ اﻟﺸﺨﺼﻲ (‬

‫>‪<tr‬‬
‫>‪ :</b></td‬اﻟﺒﺮیﺪ اﻻﻟﻜﺘﺮوﻥﻲ>‪<td width="30%"><b‬‬
‫‪<td width="70%"><a href="mailto:<%response.write rs("email")%>"><%response.write‬‬
‫>‪rs(("email"))%></a></a></td‬‬
‫>‪</tr‬‬
‫>‪<tr‬‬
‫>‪ :</b></td‬اﻟﻤﻮﻗﻊ اﻟﺸﺨﺼﻲ>‪<td width="30%"><b‬‬
‫‪<td width="70%"><a href="<%response.write rs("website")%>"><%response.write‬‬
‫>‪rs(("website"))%></a></td‬‬
‫>‪</tr‬‬

‫اﻟﻨﺘﻴﺠﺔ ﻋﻨﺪ ﺗﺸﻐﻴﻞ اﻟﺮاﺑﻂ ﺳﺠﻞ اﻟﺰوار ﺑﻌﺪ اﻟﺘﻌﺪیﻞ هﻰ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٤٤‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﻋﻨﺪ اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺒﺮیﺪ اﻻﻟﻜﺘﺮوﻥﻲ ﻷﺡﺪ اﻟﺰوار وﻟﻴﻜﻦ ‪ is_damaran@yahoo.com‬ﺳﻮف یﺘﻢ اﻻﻥﺘﻘﺎل ﺗﻠﻘﺎﺉﻴ ًﺎ‬
‫إﻟﻰ ﺑﺮﻥﺎﻣﺞ اﻟﺒﺮیﺪ اﻻﻟﻜﺘﺮوﻥﻲ اﻟﻤﺜﺒﺖ ﻟﺪى اﻟﻤﺴﺘﺨﺪم وﻟﻴﻜﻦ ‪Outlook Express 6‬‬

‫وﻣﻦ ﺙﻢ یﺴﺘﻄﻴﻊ اﻟﻤﺴﺘﺨﺪم إرﺳﺎل ﺑﺮیﺪ اﻟﻜﺘﺮوﻥﻲ ﻟﻬﺎ اﻟﺰاﺉﺮ اﻟﻤﻮﻗﻊ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


٤٥ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

‫اﻵن ﺳﻮف ﻥﻘﻮم ﺑﺈﺽﺎﻓﺔ راﺑﻂ ﻟﺘﻤﻜﻴﻦ اﻟﺰاﺉﺮ ﻣﻦ إﺽﺎﻓﺔ ﺗﻮﻗﻴﻌﻴﺔ ﻋﻠﻰ اﻟﻤﻮﻗﻊ ) وذﻟﻚ ﺑﺎﻟﺮﺑﻂ ﺑﺼﻔﺤﺔ إﺽﺎﻓﺔ ﺗﻮﻗﻴﻊ‬
‫ ( ﻻﺡﻆ ﻓﻲ ﻣﻮﺽﻌﻴﻦ ﻣﺨﺘﻠﻔﻴﻦ اﻷول ﺑﻌﺪ اﻟﺠﻤﻠﺔ اﻟﺘﺮﺡﻴﺒﻴﺔ واﻟﺜﺎﻥﻴﺔ ﺑﻌﺪ اﻹﻥﺘﻬﺎء ﻣﻦ ﻋﺮض‬sign_book.asp .
‫اﻟﻨﻮﻗﻴﻌﺎت ﺳﻮف ﻥﻘﻮم ﺑﺈﺽﺎﻓﺔ اﻟﻜﻮد اﻟﻤﻈﻠﻞ‬
<html dir="rtl"><head><meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<ﺻﻔﺤﺔ ﻋﺮض اﻟﺘﻮﻗﻴﻌﺎت‬/title></head><body><!--#include file="pageheader.asp" -->
<p align="center"><font color="#009933"> ‫ وﻣﻼﺡﻈﺎﺗﻜﻢ ﺗﺴﻌﺪﻥﺎ‬... ‫<ﻣﺮﺡﺒﺎ ﺑﻜﻢ ﻓﻲ ﺳﺠﻞ اﻟﺰوار‬/font></p>
<p align="center"><font face="Simplified Arabic"><a href="sign_book.asp">‫ﻹﺽﺎﻓﺔ ﻣﻼﺡﻈﺎﺗﻚ‬
‫<ﻋﺰیﺰي اﻟﺰاﺉﺮ اﺽﻐﻂ هﻨﺎ‬/a></font></p>
<%
Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
connectionToDatabase.Open "DSN=my_data_base"
' guest_book ‫أواﻣﺮ اﺥﺘﻴﺎر اﻟﺠﺪول واﺳﺘﺪﻋﺎء اﻟﺒﻴﺎﻥﺎت ﻣﻨﻪ‬
selectSQL="select * from guest_book order by add_dat desc"
set rs=connectionToDatabase.execute(selectSQL)%>
<% do while not rs.eof %>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111"
width="100%" id="AutoNumber1">
<tr>
<td width="30%" bgcolor="#00FFFF"><b>‫ اﻻﺳﻢ‬:</b></td>
<td width="70%" bgcolor="#00FFFF"><%response.write rs(("name"))%></td>
</tr>
<tr>
<td width="30%"><b>‫ اﻟﺒﺮیﺪ اﻻﻟﻜﺘﺮوﻥﻲ‬:</b></td>
<td width="70%"><a href="mailto:<%response.write rs("email")%>"><%response.write rs(("email"))%></a></td>
</tr>
<tr>
<td width="30%"><b>‫ اﻟﻤﻮﻗﻊ اﻟﺸﺨﺼﻲ‬:</b></td>
<td width="70%"><a href="<%response.write rs("website")%>"><%response.write rs(("website"))%></a></td>
</tr>
<tr>
<td width="30%"><b>‫ ﻃﺮیﻘﺔ اﻻﺳﺘﺪﻻل ﻋﻠﻰ ﻣﻮﻗﻌﻨﺎ‬:</b></td>
<td width="70%"><%response.write (rs("link"))%></td>
</tr>
<tr>
<td width="30%"><b>‫ اﻟﺘﻘﻴﻴﻢ‬:</b></td>
<td width="70%"><%response.write rs(("ranking"))%></td>
</tr>
<tr>
<td width="30%"><b>‫ اﻟﺘﻌﻠﻴﻖ‬:</b></td>
<td width="70%"><%response.write rs(("comment"))%></td>
</tr>
</table>
<% rs.movenext loop %>
<p align="center"><font face="Simplified Arabic"><a href="sign_book.asp">‫ﻹﺽﺎﻓﺔ ﻣﻼﺡﻈﺎﺗﻚ‬
‫<ﻋﺰیﺰي اﻟﺰاﺉﺮ اﺽﻐﻂ هﻨﺎ‬/a></font></p>
<%
connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>
<!--#include file="pagefooter.asp" --></body></html>

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


‫ﺻﻔﺤﺔ ‪٤٦‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫اﻟﺼﻔﺤﺔ اﻷوﻟﻰ‬

‫اﻟﺼﻔﺤﺔ اﻟﺜﺎﻥﻴﺔ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٤٧‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫اﻟﻨﺘﻴﺠﺔ ﻋﻨﺪ ﺗﺸﻐﻴﻞ اﻟﺮاﺑﻂ ﺳﺠﻞ اﻟﺰوار ﺑﻌﺪ اﻟﺘﻌﺪیﻞ هﻰ‬

‫ﺑﺬﻟﻚ ﻥﻜﻮن ﻗﺪ اﻥﺘﻬﻴﻨﺎ ﻣﻦ ﺗﺼﻤﻴﻢ ﺻﻔﺤﺔ ﻋﺮض اﻟﺘﻮﻗﻴﻌﺎت‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٤٨‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﺗﺼﻤﻴﻢ ﺹﻔﺤﺔ إﺽﺎﻓﺔ اﻟﺘﻮﻗﻴﻊ ﻓﻲ ﺱﺠﻞ اﻟﺰوار ﺹﻔﺤﺔ)‪( sign_book.asp‬‬


‫ﺻﻔﺤﺔ ‪ sign_book.asp‬ﻟﻦ یﻜﻮن ﺑﻬﺎ أي ‪ Code‬ﺑﻠﻐﺔ ‪ ASP .‬ﻓﺴﺘﻜﻮن آﺎﻣﻠﺔ ﺑﻠﻐﺔ ‪ HTML‬ویﻤﻜﻨﻚ ﺗﺼﻤﻴﻤﻬﺎ‬
‫ﺑﺎﻟﻔﺮوﻥﺖ ﺑﻴﺞ )‪ (Microsoft Frontpage‬ﺑﺴﻬﻮﻟﺔ‪.‬‬
‫اﻓﺘﺢ ﺻﻔﺤﺔ ‪ guest.asp‬واﺡﻔﻈﻬﺎ ﺑﺎﺳﻢ ‪ sign_book.asp‬ﺡﻴﺚ ﺳﻨﺠﺮي ﻋﻠﻴﻬﺎ اﻟﺘﻐﻴﻴﺮات اﻟﻼزﻣﺔ‪.‬‬
‫ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ راﺑﻂ )ﺳﺠﻞ اﻟﺰوار( وﻣﻦ ﺙﻢ اﻟﺮاﺑﻂ )ﻹﺽﺎﻓﺔ ﻣﻼﺡﻈﺎﺗﻚ ﻋﺰیﺰي اﻟﺰاﺉﺮ اﺽﻐﻂ هﻨﺎ( ﺳﺘﺠﺪ اﻟﺼﻔﺤﺔ اﻟﺘﺎﻟﻴﺔ‬

‫وإﻟﻴﻚ اﻟـ ‪ Code‬ﻟﻬﺬﻩ اﻟﺼﻔﺤﺔ ﻣﻊ ﻣﻼﺡﻈﺔ أن اﻟﻨﻤﻮذج ﺑﺪاﺥﻞ ﺟﺪول ﻟﻠﺘﻨﺴﻴﻖ ﻓﻘﻂ )) اﻥﻈﺮ اﻟﺼﻔﺤﺔ اﻟﺘﺎﻟﻲ ((‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


٤٩ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

<html dir="rtl"><head><meta http-equiv="Content-Language" content="ar-sa">


<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<ﺻﻔﺤﺔ إﺽﺎﻓﺔ ﺗﻮﻗﻴﻊ ﺟﺪیﺪ‬/title></head><body>
<!--#include file="pageheader.asp" -->
<p align="center"><font color="#009933">‫ وﻣﻼﺡﻈﺎﺗﻜﻢ ﺗﺴﻌﺪﻥﺎ‬... ‫< ﻣﺮﺡﺒًﺎ ﺑﻜﻢ ﻓﻲ ﺳﺠﻞ اﻟﺰوار‬/font></p>
<p align="right"><font color="#FF3300">‫<اﻟﺤﻘﻮل اﻟﺘﻲ أﻣﺎﻣﻬﺎ ﻋﻼﻣﺔ )*( یﺠﺐ ﺗﻌﺒﺌﺘﻬﺎ‬/font></p>
<form method="POST" action="add_to_book.asp" dir="rtl">
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111"
width="100%" id="AutoNumber1">
<tr>
<td width="31%"><b>‫ اﻻﺳﻢ‬: <font color="#FF3300">*</font></b></td>
<td width="69%">
<input type="text" name="name" size="40" dir="rtl" tabindex="1"></td>
</tr>
<tr>
<td width="31%"><b>‫ اﻟﺒﺮیﺪ اﻻﻟﻜﺘﺮوﻥﻲ‬:</b></td>
<td width="69%">
<input type="text" name="email" size="40" dir="ltr" tabindex="2"></td>
</tr>
<tr>
<td width="31%"><b>‫ اﻟﻤﻮﻗﻊ اﻟﺸﺨﺼﻲ‬:</b></td>
<td width="69%">
<input type="text" name="website" size="40" dir="ltr" value="http://www." tabindex="3"></td>
</tr>
<tr>
<td width="31%"><b>‫ ﻃﺮیﻘﺔ اﻻﺳﺘﺪﻻل ﻋﻠﻰ ﻣﻮﻗﻌﻨﺎ‬:</b></td>
<td width="69%"><select size="1" name="link" dir="rtl" tabindex="4">
<option selected value="‫<ﻣﺤﺮك ﺑﺤﺚ"<ﻣﺤﺮك ﺑﺤﺚ‬/option>
<option value="‫<راﺑﻂ ﻣﻦ ﻣﻮﻗﻊ ﺁﺥﺮ"<راﺑﻂ ﻣﻦ ﻣﻮﻗﻊ ﺁﺥﺮ‬/option>
<option value="‫<وﺳﺎﺉﻞ اﻹﻋﻼم"<وﺳﺎﺉﻞ اﻹﻋﻼم‬/option>
<option value="‫<ﺻﺪیﻖ"<ﺻﺪیﻖ‬/option>
<option value="‫<أﺥﺮى"<أﺥﺮى‬/option>
</select></td>
</tr>
<tr>
<td width="31%"><b>‫ ﺗﻘﻴﻴﻢ اﻟﻤﻮﻗﻊ‬:</b></td>
<td width="69%">
<input type="radio" value="‫ "ﻣﻤﺘﺎز‬checked name="ranking" tabindex="5">‫&ﻣﻤﺘﺎز‬nbsp;&nbsp;&nbsp;&nbsp;
<input type="radio" name="ranking" value="‫ "ﺟﻴﺪ‬tabindex="5">‫&ﺟﻴﺪ‬nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="radio" name="ranking" value="‫ "ﺽﻌﻴﻒ‬tabindex="5">‫<ﺽﻌﻴﻒ‬/td>
</tr>
<tr>
<td width="31%"><b>‫ اﻟﺘﻌﻠﻴﻖ‬:<span lang="en-us"> </span>
<font color="#FF3300">*</font></b></td>
<td width="69%">
<textarea rows="8" name="comment" cols="40" dir="rtl" tabindex="6"></textarea></td>
</tr>
</table>
<p align="right"> <input type="submit" value="‫ "أﺽﻒ اﻟﺘﻮﻗﻴﻊ‬name="B1" dir="rtl" tabindex="7" style="font-weight:
bold"><span lang="en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>
<input type="reset" value="‫ "إﻋﺎدة ﺗﻌﻴﻴﻦ‬name="B2" dir="rtl" tabindex="8" style="font-weight: bold"></p>
</form>
<!--#include file="pagefooter.asp" --></body></html>

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


‫ﺻﻔﺤﺔ ‪٥٠‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫اﻟﺼﻔﺤﺔ اﻷوﻟﻰ‬

‫اﻟﺼﻔﺤﺔ اﻟﺜﺎﻥﻴﺔ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٥١‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫واﻵن إﻟﻴﻜﻢ ﺑﻌﺾ اﻟﻤﻼﺡﻈﺎت ﺡﻮل هﺬﻩ اﻟﺼﻔﺤﺔ‪:‬‬


‫ﻃﺮیﻔﺔ إدراج اﻟـﻨﻤﻮذج ﺗﺤﺪﺙﻨﺎ ﻋﻨﻬﺎ ﻣﻦ ﻗﺒﻞ ﻓﻲ اﻟﺪرس )ﺗﺼﻤﻴﻢ ﺻﻔﺤﺔ اﻟﺒﺤﺚ(‪.‬‬
‫ﻓﻲ‪ :‬اﻻﺳﻢ‪ ،‬واﻟﺒﺮیﺪ اﻻﻟﻜﺘﺮوﻥﻲ‪ ،‬واﻟﻤﻮﻗﻊ اﻟﺸﺨﺼﻲ‪ ،‬ﺗﻢ اﺳﺘﺨﺪام اﻟﺤﻘﻞ اﻟﺬي ﺑﺎﺳﻢ ) ﻣﺮﺑﻊ ﻥﺺ (‬
‫ﻓﻲ‪ :‬ﻃﺮیﻘﺔ اﻻﺳﺘﺪﻻل ﻋﻠﻰ اﻟﻤﻮﻗﻊ‪ ،‬ﺗﻢ اﺳﺘﺨﺪام )ﻣﺮﺑﻊ ﻣﻨﺴﺪل(‬
‫ﻓﻲ‪ :‬ﺗﻘﻴﻴﻢ اﻟﻤﻮﻗﻊ‪ ،‬ﺗﻢ اﺳﺘﺨﺪام )زر ﺥﻴﺎر()ﺙﻼث ﻣﺮات(‪.‬‬
‫ﻓﻲ‪ :‬اﻟﺘﻌﻠﻴﻖ‪ ،‬ﺗﻢ اﺳﺘﺨﺪام)ﻥﺎﺡﻴﺔ اﻟﻨﺺ(‪.‬‬
‫یﺠﺐ ﻋﻠﻴﻨﺎ ﺗﺤﺪیﺪ اﺳﻢ ﻟﻜﻞ ﺡﻘﻞ‪ ،‬وذﻟﻚ ﺑﺎﻟﻀﻐﻂ ﺑﺰر اﻟﻔﺄرة اﻷیﻤﻦ ﻋﻠﻰ اﻟﺤﻘﻞ اﻟﻤﺮاد ﺗﺤﺪیﺪ اﺳﻤﻪ‪ ،‬واﺥﺘﻴﺎر‬
‫)ﺥﺼﺎﺉﺺ ﺡﻘﻞ اﻟﻨﻤﻮذج( ﻣﻦ اﻟﻘﺎﺉﻤﺔ‪ .‬وآﺘﺎﺑﺔ اﻻﺳﻢ ﻓﻲ ﺥﺎﻥﺔ )اﻻﺳﻢ( ‪.‬‬
‫اﻷﺳﻤﺎء ﻟﻠﺤﻘﻮل هﻲ آﺎﻟﺘﺎﻟﻲ‪:‬‬
‫اﻻﺱـــــــــــﻢ‬ ‫اﻟﺤﻘﻞ‬
‫‪name‬‬ ‫اﻻﺳﻢ‬
‫‪email‬‬ ‫اﻟﺒﺮیﺪ اﻻﻟﻜﺘﺮوﻥﻲ‬
‫‪website‬‬ ‫اﻟﻤﻮﻗﻊ اﻟﺸﺨﺼﻲ‬
‫‪link‬‬ ‫ﻃﺮیﻘﺔ اﻻﺳﺘﺪﻻل ﻋﻠﻰ اﻟﻤﻮﻗﻊ‬
‫‪ranking‬‬ ‫اﻟﺘﻘﻴﻴﻢ )اﻻﺥﺘﻴﺎرات اﻟﺜﻼﺙﺔ ﻟﻬﺎ ﻥﻔﺲ اﻻﺳﻢ(‬
‫‪comment‬‬ ‫اﻟﺘﻌﻠﻴﻖ‬
‫ﻃﺮیﻘﺔ اﻻﺳﺘﺪﻻل ﻋﻠﻰ ﻣﻮﻗﻌﻨﺎ اﻟﺨﻴﺎرات هﻲ‪ -١‬ﻣﺤﺮك ﺑﺤﺚ)ﻣﺤﺪد( ‪ -٢‬راﺑﻂ ﻣﻦ ﻣﻮﻗﻊ ﺁﺥﺮ ‪ -٣‬وﺳﺎﺉﻞ اﻹﻋﻼم ‪ -٤‬ﺻﺪیﻖ ‪-٥‬أﺥﺮى‬
‫ﻟﻜﺘﺎﺑﺔ اﻻﺥﺘﻴﺎرات ﻓﻲ ﻗﺎﺉﻤﺔ )ﻃﺮیﻘﺔ اﻻﺳﺘﺪﻻل ﻋﻠﻰ ﻣﻮﻗﻌﻨﺎ(‪ ،‬اﺽﻐﻂ ﻋﻠﻰ اﻟﻘﺎﺉﻤﺔ ﺑﺎﻟﺰر اﻟﻴﻤﻴﻦ‪ ،‬واﺥﺘﺮ )ﺥﺼﺎﺉﺺ‬
‫ﺡﻘﻞ اﻟﻨﻤﻮذج(‪ .‬ﻣﻦ اﻟﺸﺎﺵﺔ اﻟﺘﻲ ﺳﺘﻈﻬﺮ اﺽﻐﻂ )أﺽﻒ( وأﺽﻒ ﺥﻴﺎراﺗﻚ واﺡﺪة ﺗﻠﻮ اﻷﺥﺮى‪.‬‬
‫وﺽﻌﻨﺎ اﺳﻤﺎ واﺡﺪا ﻟﺠﻤﻴﻊ اﻻﺥﺘﻴﺎرات ﻓﻲ )اﻟﺘﻘﻴﻴﻢ( وﻟﻠﺘﻤﻴﺰ ﺑﻴﻦ هﺬﻩ اﻟﺨﻴﺎرات‪ ،‬اﺽﻐﻂ ﻋﻠﻰ اﻻﺥﺘﻴﺎر اﻷول ﺑﺎﻟﺰر‬
‫اﻟﻴﻤﻴﻦ‪ ،‬واﺥﺘﺮ )ﺥﺼﺎﺉﺺ ﺡﻘﻞ اﻟﻨﻤﻮذج(‪ .‬وﻣﻨﻪ ﺡﺪد اﻟﻘﻴﻤﺔ ﻓﻲ ﺥﺎﻥﺔ )اﻟﻘﻴﻤﺔ( ﺑﻜﺘﺎﺑﺔ ﻣﻤﺘﺎز‪ .‬وآﺮر اﻟﻌﻤﻠﻴﺔ ﺑﺎﻟﻨﺴﺒﺔ‬
‫ﻟﻠﺨﻴﺎرات اﻷﺥﺮى‪.‬‬
‫أﺥﻴﺮا‪ ،‬ﻹرﺳﺎل هﺬﻩ اﻟﻘﻴﻢ ﻟﺼﻔﺤﺔ اﻟﻤﻌﺎﻟﺠﺔ واﻹﺽﺎﻓﺔ ﻟﻘﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت‪ ،‬اﺽﻐﻂ ﻋﻠﻰ أي ﺡﻘﻞ ﺑﺎﻟﺰر اﻟﻴﻤﻴﻦ‪ ،‬واﺥﺘﺮ‬
‫)ﺥﺼﺎﺉﺺ اﻟﻨﻤﻮذج( ‪ ،‬ﺳﺘﻈﻬﺮ ﻟﻚ اﻟﺸﺎﺵﺔ اﻟﺘﺎﻟﻴﺔ‪:‬‬

‫وﻣﻦ ﺙﻢ اﺥﺘﺮ ﺥﻴﺎرات‬

‫اآﺘﺐ اﺳﻢ اﻟﺼﻔﺤﺔ اﻟﺘﻲ ﺗﻮد إرﺳﺎل هﺬﻩ اﻟﻤﺪﺥﻼت إﻟﻴﻬﺎ ﻓﻲ ﺥﺎﻥﺔ ‪) Action‬اآﺘﺐ هﺬا اﻻﺳﻢ ‪(add_to_book.asp‬‬
‫واﺗﺮك اﻟﺤﻘﻞ )اﻟﻄﺮیﻘﺔ( آﻤﺎ هﻮ )ﻻ ﺗﻐﻴﺮ آﻠﻤﺔ ‪.( POST‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


٥٢ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

‫اﻷن ﺱﻨﺼ ﻤﻢ ﺹ ﻔﺤﺔ إﺽ ﺎﻓﺔ ه ﺬﻩ اﻟﻤ ﺪﺧﻼت إﻟ ﻰ ﻗﺎﻋ ﺪة اﻟﺒﻴﺎﻥ ﺎت ) ﻓ ﻲ اﻟﺠ ﺪول‬
(guest_book
Insert ‫****اﻟﻄﺮیﻘﺔ اﻷوﻟﻰ ﺑﺎﺱﺘﺨﺪام أﻡﺮ‬
‫ ﺳ ﻨﻘﻮم‬،‫ واﻟﺘﻲ ﺗﺤﺘﻮي ﻋﻠﻰ اﻟﺤﻘﻮل اﻟﻤﻄﻠﻮﺑﺔ ﻹدﺥ ﺎل اﻟﺒﻴﺎﻥ ﺎت‬sign_book.asp ‫ﺑﻌﺪ أن اﻥﺘﻬﻴﻨﺎ ﻣﻦ ﺗﺼﻤﻴﻢ ﺻﻔﺤﺔ‬
Code ‫ هﺬﻩ اﻟﺼﻔﺤﺔ ﺳﺘﻜﻮن ﻋﺒﺎرة ﻋﻦ‬.‫ ﻹﺽﺎﻓﺔ اﻟﺒﻴﺎﻥﺎت ﻟﻠﻘﺎﻋﺪة‬add_to_book.asp ‫اﻵن ﺑﺘﺼﻤﻴﻢ ﺻﻔﺤﺔ ﺑﺎﺳﻢ‬
‫ أي‬.‫ وﻣ ﺎ ﺳ ﺘﻼﺡﻈﻪ ﻓ ﻲ ه ﺬﻩ اﻟﺼ ﻔﺤﺔ ه ﻮ ﻋ ﺪم ﻇﻬﻮره ﺎ ﻟﻠﺰاﺉ ﺮ‬HTML . ‫ وﻟ ﻦ ﻥﺴ ﺘﺨﺪم أي ﻋﺒ ﺎرات‬ASP ‫ﺑﻠﻐﺔ‬
‫ﻟﻜﻦ اﻟﺰاﺉ ﺮ ﻟ ﻦ یﻼﺡ ﻆ‬. ‫ أﺽﻒ اﻟﺘﻮﻗﻴﻊ‬:‫ﺳﺘﻌﻤﻞ هﺬﻩ اﻟﺼﻔﺤﺔ ﻋﻨﺪﻣﺎ یﻘﻮم اﻟﺰاﺉﺮ ﺑﻜﺘﺎﺑﺔ ﻣﻼﺡﻈﺎﺗﻪ واﻟﻀﻐﻂ ﻋﻠﻰ زر‬
.‫ وﺳﻴﺮى ﻥﻔﺴﻪ ﻓﻲ ﺻﻔﺤﺔ )ﻋﺮض اﻟﺘﻮﻗﻴﻌﺎت( وﺳﺘﺮى ﺗﻮﻗﻴﻌﻪ ﻓﻲ اﻷﻋﻠﻰ‬،‫هﺬﻩ اﻟﺼﻔﺤﺔ‬
‫ ﺙ ﻢ اﺟ ﺮي ﻋﻠﻴﻬ ﺎ اﻟﺘﻌ ﺪیﻼت‬add_to_book.asp ‫ وﻗ ﻢ ﺑﺤﻔﻈﻬ ﺎ ﺑﺎﺳ ﻢ‬tech.asp ‫هﻴ ﺎ ﺑﻨ ﺎ اﻟ ﻰ اﻟﻌﻤ ﻞ اﻓ ﺘﺢ ﺻ ﻔﺤﺔ‬
‫اﻟﺘﺎﻟﻴﺔ‬
<html dir="rtl"><head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<اﺽﺎﻓﺔ ﺳﺠﻼت ﺟﺪیﺪة اﻟﻰ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت‬/title>
</head><body>
<!--#include file="pageheader.asp" -->
<%

fadd_dat=date()
fname=request.form("name")
femail=request.form("email")
fwebsite=request.form("website")
flink=request.form("link")
franking=request.form("ranking")
fcomment=request.form("comment")

Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
connectionToDatabase.Open "DSN=my_data_base"

If fname="" or fcomment="" then


response.write "<center>" & " ‫ ﻣﻦ ﻓﻀﻠﻚ اﺽﻐﻂ زر ﻋﻮدة ﻓﻲ‬..‫ﻟﻢ ﺗﻘﻢ ﺑﺈدﺥﺎل ﺟﻤﻴﻊ اﻟﺤﻘﻮل اﻟﻤﻄﻠﻮﺑﺔ‬
‫"ﻣﺘﺼﻔﺤﺘﻚ وﻗﻢ ﺑﺈدﺥﺎل ﺟﻤﻴﻊ اﻟﺤﻘﻮل‬
Else
addSQL=" insert into guest_book
(add_dat,name,email,website,link,ranking,comment) values
('"&fadd_dat&"','"&fname&"','"&femail&"','"&fwebsite&"','"&flink&"','"&franking&
"','"&fcomment&"') "
Set MyRs=connectionToDatabase.Execute(addSQL)
response.redirect "guest.asp"
End if

connectionToDatabase.Close
set connectionToDatabase=nothing
%>
<!--#include file="pagefooter.asp" -->
</body></html>

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


‫ﺻﻔﺤﺔ ‪٥٣‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫اﻵن ﺱﻨﻘﻮم ﺑﺸﺮح أهﻢ اﻟﻨﻘﺎط ﻓﻲ هﺬا اﻟﻜﻮد‪.‬‬


‫ﺗﺤﺪﺙﻨﺎ ﺳﺎﺑﻘﺎ ﻋﻦ اﻟﻤﺘﻐﻴﺮات‪ .‬وﻗﻠﻨﺎ أﻥﻨﺎ ﻥﻜﺘﺐ اﺳﻢ اﻟﻤﺘﻐﻴﺮ ﺙ ﻢ ﻥﻀ ﻊ ﻋﻼﻣ ﺔ )=( ﺑﻌ ﺪ اﺳ ﻤﻪ وﻥﻀ ﻊ ﻗﻴﻤﺘ ﻪ ﺑﻌ ﺪ ﻋﻼﻣ ﺔ‬
‫اﻟﻴﺴﺎوي‪ .‬وذآﺮﻥﺎ أن اﻟﻘﻴﻤ ﺔ ﻗ ﺪ ﺗﻜ ﻮن رﻗﻤ ﺎ‪ ،‬أو آﻠﻤ ﺔ‪ ،‬أو ﻣ ﺪﺥﻼت ﻓ ﻲ ﺡﻘ ﻮل ﻣ ﻦ ﺻ ﻔﺤﺎت ﺳ ﺎﺑﻘﺔ‪ .‬وذآﺮﻥ ﺎ أﻥ ﻪ إن‬
‫آﺎﻥﺖ ﻃﺮیﻘﺔ ﻥﻘﻞ اﻟﺒﻴﺎﻥﺎت ‪ GET‬ﻥﺴﺘﺨﺪام اﻟﻌﺒﺎرة ‪ Request.QueryString‬ﻟﻠﺘﻌﺒﻴﺮ ﻋﻦ اﻟﻤﺪﺥﻼت‪ .‬أﻣﺎ إن آﺎﻥﺖ‬
‫‪POST‬ﻓﺴﻨﺴﺘﺨﺪم ‪ Request.Form .‬واﻵن ﻟﻨﺸﺮح اﻟﻤﺘﻐﻴﺮات اﻟﺘﻲ ﻟﺪیﻨﺎ‪.‬‬
‫ﻟﺪیﻨﺎ ‪ ٧‬ﻣﺘﻐﻴﺮات‪ .‬اﺗﺮك اﻟﻤﺘﻐﻴﺮ اﻷول ‪ fadd_dat‬ﺟﺎﻥﺒﺎ اﻵن‪ .‬وﻟﻨﻨﻈﺮ ﻟﻠﺴﺖ ﻣﺘﻐﻴﺮات اﻷﺥﺮى‬
‫)‪ ( fname, femail, fwebsite, flink, franking and fcomment‬ﺗﺸ ﺘﺮك ه ﺬﻩ اﻟﻤﺘﻐﻴ ﺮات اﻟﺴ ﺘﺔ ﻓ ﻲ‬
‫ﻥﻔﺲ ﻃﺮیﻘﺔ اﻟﻜﺘﺎﺑﺔ‪ .‬ﺡﻴﺚ ﺗﻢ ﺗﺤﺪیﺪ اﺳﻤﻬﺎ‪ ،‬وﻣﻦ ﺙﻢ وﺽﻊ ﻋﻼﻣﺔ )=( ﺙﻢ ﺗ ﻢ اﻹﻓﺼ ﺎح ﻋ ﻦ أن ﻗﻴﻤ ﺔ ه ﺬﻩ اﻟﻤﺘﻐﻴ ﺮات‬
‫ﺳﺘﻜﻮن ﻋﺒﺎرة ﻋﻦ ﻣﺪﺥﻼت ﻓﻲ ﺡﻘﻮل ﻓﻲ ﺻﻔﺤﺔ ‪ sign_book.asp‬وذﻟ ﻚ ﺑﺎﻟﻌﺒ ﺎرة ‪ Request.Form‬أﻣ ﺎ أﺳ ﻤﺎء‬
‫اﻟﺤﻘﻮل ﻓﻲ ﺻﻔﺤﺔ ‪ sign_book.asp‬ﻓﺘﻢ آﺘﺎﺑﺘﻬﺎ ﺑﻴﻦ هﺬﻩ اﻟﻌﻼﻣﺎت)" "( ‪:‬‬
‫واﻵن‪ ،‬ﻟﻨﺮﺟﻊ ﻟﻠﻤﺘﻐﻴﺮ اﻷول وهﻮ ‪ add_dat .‬ﺗﻢ ﺗﺤﺪی ﺪ ﻗﻴﻤ ﺔ اﻟﻤﺘﻐﻴ ﺮ ﺑ ـ )(‪ date‬وه ﺬﻩ اﻟﻘﻴﻤ ﺔ ه ﻲ ﻗﻴﻤ ﺔ ﺙﺎﻥﻴ ﺔ ﻓ ﻲ‬
‫اﻟﻠﻐﺔ ﺗﻌﻄﻲ‪ :‬اﻟﺘﺎریﺦ اﻟﺤﺎﻟﻲ‪ .‬وهﻨﺎﻟﻚ اﻟﻜﺜﻴﺮ ﻣﻦ اﻟﺪوال اﻷﺥﺮى أهﻤﻬﺎ‪:‬‬

‫اﻟﺪاﻟﺔ‬ ‫اﻟﻤﻌﻨﻰ‬
‫)(‪Now‬‬ ‫اﻟﻮﻗﺖ واﻟﺘﺎریﺦ اﻟﺤﺎﻟﻴﻴﻦ‬
‫)(‪Date‬‬ ‫اﻟﺘﺎریﺦ اﻟﺤﺎﻟﻲ‬
‫)(‪Year‬‬ ‫اﻟﺴﻨﺔ اﻟﺤﺎﻟﻴﺔ‬
‫)(‪Time‬‬ ‫اﻟﻮﻗﺖ اﻟﺤﺎﻟﻲ‬
‫)(‪Hour‬‬ ‫اﻟﺴﺎﻋﺔ اﻟﺤﺎﻟﻴﺔ‬

‫ﺑﻌﺪ ﺗﺤﺪیﺪ اﻟﻤﺘﻐﻴﺮات ﺗﻢ آﺘﺎﺑﺔ ﺟﻤﻠﺔ ﺗﺒﺪأ ﺑـ ‪ if .‬وهﺬﻩ ﺟﻤﻠﺔ ﺵﺮﻃﻴﺔ‪ .‬ﺻﻴﻐﺘﻬﺎ‪:‬‬

‫‪If something Then‬‬


‫‪something‬‬
‫‪Else‬‬
‫‪something‬‬
‫‪End if‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٥٤‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﺡﻴﺚ أن آﻠﻤﺔ ‪ something‬ﺗﻌﺒﺮ ﻋﻦ ‪ :‬ﺵﺮط ﺗﻘﻮم ﺑﺘﺤﺪیﺪﻩ‪ ،‬وﻓﻌﻞ یﺠﺐ اﻟﻘﻴﺎم ﺑﻪ‪ .‬ﻟﻨﻔﺘﺮض أن اﻟﺸﺮط ه ﻮ‪ :‬اﻟﺴ ﺎﻋﺔ‬
‫‪ .١٢‬واﻟﻔﻌﻞ أو اﻹﺟﺮاء هﻮ ﻃﺒﺎﻋﺔ‪) :‬اﺑﺘﺪأ یﻮم ﺟﺪیﺪ(‪ .‬واﻹﺟﺮاء اﻟﺒﺪیﻞ هﻮ ﻃﺒﺎﻋﺔ‪) :‬ﻻزﻟﻨﺎ ﻓﻲ ﻥﻔﺲ اﻟﻴﻮم(‪ .‬ﺑﺈﻣﻜﺎﻥﻨ ﺎ‬
‫اﺳﺘﺨﺪام هﺬا اﻟﺸ ﺮط‪ ،‬ﺡﻴ ﺚ ﺳ ﻨﻜﺘﺐ ‪ if‬ﺙ ﻢ ﺳ ﻨﻜﺘﺐ اﻟﺸ ﺮط اﻟﻤﻄﻠ ﻮب‪ .‬ﺙ ﻢ ﺳ ﻨﻜﺘﺐ ‪ Then‬ﻟﺘﻨﻔﻴ ﺬ اﻹﺟ ﺮاء اﻟﻤﻄﻠ ﻮب‪.‬‬
‫وﻓﻲ ﺡﺎﻟﺔ ﻋﺪم ﺗﺤﻘﻖ اﻟﺸﺮط یﺘﻢ ﺗﻨﻔﻴﺬ اﻹﺟﺮاء اﻟﺒﺪیﻞ اﻟﺬي ﺑﻌﺪ ‪ . Else‬وﻥﻐﻠﻖ اﻟﺪاﻟﺔ اﻟﺸﺮﻃﻴﺔ ﺑـ ‪if End‬‬
‫ویﻤﻜﻦ أن ﺗﺘﻄﻮر هﺬﻩ اﻟﺼﻴﻐﺔ ﻓﻲ ﺡﺎﻟﺔ وﺟﻮد أآﺜﺮ ﻣﻦ ﺵﺮط ﻟﺘﺼﺒﺢ آﺎﻟﺘﺎﻟﻲ‪:‬‬
‫‪If something Then‬‬
‫‪something‬‬
‫‪Else If something Then‬‬
‫‪something‬‬
‫‪Else If something Then‬‬
‫‪something‬‬
‫‪Else‬‬
‫‪something‬‬
‫‪End if‬‬
‫‪End if‬‬
‫‪End if‬‬
‫ﻟﻨﻌﺪ ﻟﻠـ ‪ Code‬وﻥﺮى آﻴﻒ ﺗﻢ اﺳﺘﺨﺪام اﻟﺪاﻟﺔ اﻟﺸﺮﻃﻴﺔ‪.‬‬

‫‪If fname="" or fcomment="" then‬‬

‫ﻓﻲ اﻟﺴﻄﺮ اﻟﺴﺎﺑﻖ ﺗﻢ ﺗﺤﺪیﺪ اﻟﺸﺮط‪ ،‬وهﻮ‪ :‬إن آﺎﻥﺖ ‪ Name‬أو ‪ Comment‬ﻻ ﺗﺴﺎوي ﺵﻴﺌﺎ )أي ﺡﻘﻮل ﻓﺎرﻏﺔ( ﻗ ﻢ‬
‫ﺑﺎﻟﺘﺎﻟﻲ‪...‬‬
‫ﻣﻦ اﻟﺴﻄﺮ اﻟﺴﺎﺑﻖ ﻥﻔﻬﻢ أﻣﺮان هﻤﺎ‪:‬‬
‫ﻋﻼﻣﺘﺎ "" اﻟﻤﺘﻼﺻﻘﺘﺎن ﺗﻌﻨﻴﺎن ‪ :‬ﻻ ﺵﻲء ‪ ..‬أو ‪ :‬ﻓﺮاغ‪.‬‬
‫یﻤﻜﻦ اﺳﺘﺨﺪام اﻷواﻣﺮ اﻟﻤﻨﻄﻘﻴﺔ ‪ Or‬و ‪ And‬ﻓﻲ اﻟﺪوال اﻟﺸﺮﻃﻴﺔ ﻟﺪﻣﺞ أآﺜﺮ ﻣﻦ ﺵﺮط ﻓﻲ ﺳﻄﺮ واﺡﺪ‪.‬‬
‫أﻣﺎ اﻹﺟﺮاء اﻟﻮاﺟﺐ اﻟﻘﻴﺎم ﺑﻪ ﻓﻲ ﺡﺎﻟﺔ ﺗﻨﻔﻴﺬ اﻟﺸﺮط ﻓﻬﻮ اﻵﺗﻲ‪:‬‬
‫اﻟﻤﻄﻠﻮﺑ ﺔ‪ ..‬ﻣ ﻦ ﻓﻀ ﻠﻚ اﺽ ﻐﻂ زر ﻋ ﻮدة ﻓ ﻲ ﻟﻢ ﺗﻘﻢ ﺑﺈدﺥﺎل ﺟﻤﻴﻊ اﻟﺤﻘﻮل" & ">‪response.write "<center‬‬
‫"ﻣﺘﺼﻔﺤﺘﻚ وﻗﻢ ﺑﺈدﺥﺎل ﺟﻤﻴﻊ اﻟﺤﻘﻮل‬
‫أي‪ :‬اﻃﺒﻊ اﻟﺠﻤﻠﺔ اﻟﺘﺎﻟﻴﺔ‪) :‬ﻟﻢ ﺗﻘﻢ ﺑﺈدﺥﺎل ﺟﻤﻴﻊ اﻟﺤﻘﻮل اﻟﻤﻄﻠﻮﺑﺔ‪ ..‬ﻣ ﻦ ﻓﻀ ﻠﻚ اﺽ ﻐﻂ زر ﻋ ﻮدة ﻓ ﻲ ﻣﺘﺼ ﻔﺤﻚ وﻗ ﻢ‬
‫ﺑﺈدﺥﺎل ﺟﻤﻴﻊ اﻟﺤﻘﻮل(‪.‬‬
‫اﻷﻣﺮ اﻟﺠﺪیﺪ ﻓﻲ ‪ response.write‬هﺬﻩ اﻟﻤﺮة هﻮ أﻥﻨﺎ ﻗﻤﻨﺎ ﺑﻜﺘﺎﺑﺔ أﻣ ﺮ ‪ HTML‬ﺽ ﻤﻦ أواﻣ ﺮ ‪ ASP‬وآﺄﻥ ﻪ واﺡ ﺪ‬
‫ﻣﻨﻬﺎ‪ .‬هﺬا أﻣﺮ هﻮ >‪ <center‬أي‪ :‬ﺗﻮﺳﻴﻂ‪ .‬واﻟﺬي ﺳﻴﺠﻌﻞ اﻟﺠﻤﻠﺔ ﺗﻈﻬﺮ ﻓ ﻲ ﻣﻨﺘﺼ ﻒ اﻟﺴ ﻄﺮ‪ .‬ﺗ ﻢ آﺘﺎﺑ ﺔ ه ﺬا اﻷﻣ ﺮ‬
‫ﻋﻠﻰ اﻟﻨﺤ ﻮ اﻟﺘ ﺎﻟﻲ‪ :‬وﺽ ﻌﺖ ﻋﻼﻣ ﺎت اﻟﺘﻨﺼ ﻴﺺ "" ﺙ ﻢ آﺘ ﺐ اﻷﻣ ﺮ ﺑ ﺪاﺥﻠﻬﺎ ﺙ ﻢ وﺽ ﻌﺖ ﻋﻼﻣ ﺔ )و( & وﺗ ﻢ آﺘﺎﺑ ﺔ‬
‫اﻟﺠﻤﻠﺔ اﻟﺘﻲ ﻥﺮیﺪ ﻃﺒﺎﻋﺘﻬﺎ‪.‬‬
‫هﺬا هﻮ اﻟﺸﺮط‪ .‬أﻣﺎ اﻹﺟﺮاء اﻟﺒﺪیﻞ ﻓﻲ ﺡﺎﻟﺔ ﻋﺪم ﺗﺤﻘﻖ اﻟﺸﺮﻃﺔ )أي ﻓﻲ ﺡﺎﻟﺔ وﺟﻮد ﺑﻴﺎﻥﺎت ﻓﻲ هﺬﻩ اﻟﺨﺎﻥﺎت( ﻓﻬﻮ‪:‬‬

‫‪addSQL= " insert into guest_book‬‬


‫‪(add_dat,name,email,website,link,ranking,comment) values‬‬
‫"'‪('"&add_dat&"','"&name&"','"&email&"','"&website&"','"&link&"','"&ranking&"',‬‬
‫" )'"&‪&comment‬‬

‫ﻡﻠﺤﻮﻇﺔ هﺬا اﻷﻡﺮ ﻻﺑﺪ ان یﻜﻮن ﻓﻲ ﺱﻄﺮ واﺣﺪ‬

‫وﻓ ﻲ ه ﺬا اﻟﺴ ﻄﺮ أﻣ ﺮ ﺟﺪی ﺪ‪ ،‬ه ﻮ ‪ insert‬ووﻇﻴﻔﺘ ﻪ‪ :‬إﺽ ﺎﻓﺔ اﻟﻤ ﺪﺥﻼت ﻟﻘﺎﻋ ﺪة اﻟﺒﻴﺎﻥ ﺎت‪ .‬وﺻ ﻴﻐﺘﻪ آﻤ ﺎ ه ﻮ واﺽ ﺢ‬
‫ﺑﺎﻷﻋﻠﻰ‪ .‬یﻜﺘﺐ اﻷﻣﺮ ‪ insert‬ﻣﺘﺒﻮﻋﺔ ﺑﺎﻟﻜﻠﻤﺔ ‪ into‬ﺙﻢ اﺳﻢ اﻟﺠﺪول اﻟﻤﺮاد إﺽﺎﻓﺔ اﻟﺒﻴﺎﻥﺎت إﻟﻴﻪ‪ .‬وﺑ ﻴﻦ ﻗﻮﺳ ﻴﻦ ﺗﻜﺘ ﺐ‬
‫أﺳ ﻤﺎء اﻟﺨﺎﻥ ﺎت ﻓ ﻲ اﻟﺠ ﺪول اﻟﻤﻄﻠ ﻮب إﺽ ﺎﻓﺔ اﻟﻤ ﺪﺥﻼت إﻟﻴﻬ ﺎ‪ .‬ﺙ ﻢ ﺗﻜﺘ ﺐ ‪ values‬وﺑﻌ ﺪهﺎ ﺑ ﻴﻦ ﻗﻮﺳ ﻴﻦ أیﻀ ﺎ اﻟﻘ ﻴﻢ‬
‫اﻟﻤﺮاد إﺽﺎﻓﺘﻬﺎ وهﻲ ﺑﻨﻔﺲ ﺗﺮﺗﻴﺐ اﻟﺤﻘﻮل‪.‬‬
‫ﺗﻜﺘﺐ اﻟﻘﻴﻢ هﻜﺬا‪'"&add_dat&"' :‬‬
‫ﺑﻌﺪ ﺳﻄﺮ ‪ insert‬یﺘﻢ آﺘﺎﺑﺔ ﺳﻄﺮ ﺗﻨﻔﻴﺬ اﻷﻣﺮ وهﻮ ‪:‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٥٥‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫)‪Set MyRs=connectionToDatabase.Execute(addSQL‬‬
‫اﻻﺳﻢ ‪ addSQL‬ﻥﺤﻦ ﻣﻦ ﻗﺎم ﺑﺘﺤﺪیﺪﻩ‪ ،‬ویﻤﻜﻨﻨﺎ ﺗﻐﻴﻴﺮﻩ آﻴﻔﻤﺎ ﻥﺸﺎء‪.‬‬
‫ﻻزﻟﻨﺎ ﻓﻲ اﻟﺠﻤﻠﺔ اﻟﺸﺮﻃﻴﺔ‪ ،‬ﺡﻴﺚ ﺗﻢ ﺗﺤﺪیﺪ ﻓﻌﻞ أو إﺟﺮاء إﺽﺎﻓﻲ هﻮ‪:‬‬
‫"‪response.redirect "guest.asp‬‬
‫وهﺬﻩ اﻟﺠﻤﻠﺔ ﺗﻌﻨﻲ‪ :‬اﻥﺘﻘﻞ ﻟﻠﺼﻔﺤﺔ أو اﻟﻌﻨﻮان اﻟﻤﻮﺟﻮد ﺑﻴﻦ ﻋﻼﻣﺘﻲ اﻟﺘﻨﺼﻴﺺ‪ .‬وﻓﻲ ﺡﺎﻟﺘﻨ ﺎ ه ﺬﻩ ﻃﻠﺒﻨ ﺎ ﻣﻨ ﻪ اﻻﻥﺘﻘ ﺎل‬
‫إﻟﻰ ﺻﻔﺤﺔ ﻋﺮﺽﺎﻟﺘﻮﻗﻴﻌﺎت‪.‬‬
‫ﺗﻢ أﻏﻠﻨﺎ اﻟﺸﺮط ﺑـ ‪End if‬‬

‫ﻟﻨﺘﺨﻴﻞ اﻵن ﻃﺮیﻘﺔ ﻋﻤﻞ هﺬﻩ اﻟﺼﻔﺤﺔ‪.‬‬


‫ﺳﻴﻜﺘﺐ اﻟﺸﺨﺺ ﺗﻮﻗﻴﻌﻪ أو ﻣﻼﺡﻈﺎﺗﻪ‪ ،‬وﺳﻴﻀﻐﻂ ﻋﻠﻰ زر‪ :‬ﺽﺎف اﻟﺘﻮﻗﻴ ﻊ‪ .‬ﺳ ﻴﺒﺪأ اﻟﻤﺘﺼ ﻔﺢ ﺑﻘ ﺮاءة ه ﺬﻩ اﻟﺼ ﻔﺤﺔ‪.‬‬
‫ﻓﺴﻴﺠﺪ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻤﺘﻐﻴﺮات‪ ،‬ﺗﻌﺒﺮ ﻋﻦ اﻟﻤﺪﺥﻼت اﻟﺘﻲ ﺗﻢ إﺽﺎﻓﺘﻬﺎ ﻓﻲ اﻟﺘﻮﻗﻴﻊ‪ .‬ﺙﻢ ﺳﻴﺠﺪ داﻟﺔ ﺵﺮﻃﻴﺔ‪ ،‬ﺗﻄﻠﺐ ﻣﻨﻪ‬
‫اﻟﺘﺤﻘﻖ ﻣﻦ أﻣﺮ ﻣﻌﻴﻦ‪ .‬هﺬا اﻷﻣﻮر هﻮ‪ :‬هﻞ ﺗﻮﺟﺪ ﻣﺪﺥﻼت ﻓﻲ ﺡﻘﻮل اﻻﺳﻢ واﻟﺘﻌﻠﻴ ﻖ أم ﻻ‪ .‬ﺙ ﻢ ﺳ ﻴﺠﺪ ﺑﻤﺠﻤﻮﻋ ﺔ ﻣ ﻦ‬
‫اﻹﺟﺮاءات‪ .‬ﻓﻲ ﺡﺎل ﺗﺤﻘﻖ اﻟﺸﺮط )أي ﻋﺪم ﻣﻮﺟﻮد ﻗﻴﻢ ﻓﻲ هﺬیﻦ اﻟﺤﻘﻠ ﻴﻦ( ﺳ ﻈﻬﺮ اﻟﻌﺒ ﺎرة اﻟﺘﺎﻟﻴ ﺔ‪) :‬ﻟ ﻢ ﺗﻘ ﻢ ﺑﺈدﺥ ﺎل‬
‫ﺟﻤﻴﻊ اﻟﺤﻘﻮل اﻟﻤﻄﻠﻮﺑﺔ‪ ..‬ﻣﻦ ﻓﻀﻠﻚ اﺽﻐﻂ زر ﻋﻮدة ﻓﻲ ﻣﺘﺼﻔﺤﻚ وﻗﻢ ﺑﺈدﺥ ﺎل ﺟﻤﻴ ﻊ اﻟﺤﻘ ﻮل( أﻣ ﺎ ﻓ ﻲ ﺡﺎﻟ ﺔ ﻋ ﺪم‬
‫ﺗﺤﻘﻖ اﻟﺸﺮط )أي ﻓﻲ ﺡﺎﻟﺔ وﺟﻮد ﻗﻴﻢ ﻓﻲ ه ﺬیﻦ اﻟﺤﻘﻠ ﻴﻦ( ﺳ ﻴﺘﻢ ﺗﻨﻔﻴ ﺬ أﻣ ﺮ إﺽ ﺎﻓﺔ اﻟﺒﻴﺎﻥ ﺎت ﻟﻘﺎﻋ ﺪة اﻟﺒﻴﺎﻥ ﺎت‪ ،‬ﺗ ﻢ ﻓ ﺘﺢ‬
‫ﺻﻔﺤﺔ ﻋﺮض اﻟﺘﻮﻗﻴﻌﺎت‬
‫ﻣﻦ اﻟﺠﺪیﺮ ﺑﺎﻟﺬآﺮ أن هﺬﻩ اﻟﻌﻤﻠﻴﺔ ﺳﺘﺴﺘﻐﺮق ﺙﻮاﻥﻲ ﻗﻠﻴﻠﺔ ﻗﺪ ﻻ یﺸﻌﺮ ﺑﻬﺎ اﻟﺰاﺉﺮ‪.‬‬
‫اﻵن ﺳﻮف ﻥﻘﻮم ﺑﺘﻄﺒﻴﻖ هﺬا اﻟﻌﻤﻠﻴﺔ‪:‬‬
‫ﻣﺤﺘﻮیﺎت ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت )ﺟﺪول ‪(gues_book‬‬

‫ﻋﻨﺪ اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺮاﺑﻂ )ﺳﺠﻞ اﻟﺰوار(‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٥٦‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﻋﻨﺪ اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺮاﺑﻂ )ﻹﺽﺎﻓﺔ ﻣﻼﺡﻈﺎﺗﻚ ﻋﺰیﺰي اﻟﺰاﺉﺮ اﺽﻐﻂ هﻨﺎ(‬

‫ﻋﻨﺪ اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﻤﻔﺘﺎح )أﺽﻒ اﻟﺘﻮﻗﻴﻊ( وﻟﻜﻦ ﻻﺡﻆ ﻟﻢ یﺘﻢ إﺽﺎﻓﺔ أي ﺑﻴﺎﻥﺎت ﻓﻲ اﻟﻨﻤﻮذج – ﻓﻈﻬﺮت اﻟﺼﻔﺤﺔ اﻟﺘﺎﻟﻴﺔ‬

‫ﺑﺬﻟﻚ ﻥﻼﺡﻆ أن اﻟﺠﻤﻠﺔ اﻟﺸﺮﻃﺔ ﺗﻌﻤﻞ ﺑﺸﻜﻞ ﺟﻴﺪ ﻓﻲ ﺡﺎﻟﺔ ﻋﺪم آﺘﺎﺑﺔ أﺡﺪ اﻟﺤﻘﻠﻴﻦ اﻟﻤﻄﻠﻮﺑﻴﻦ ﺗﻌﺒﺌﺘﻬﻤﺎ وهﻤﺎ ) اﻻﺳﻢ‬
‫‪ ،‬اﻟﺘﻌﻠﻴﻖ(‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٥٧‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫أﻣﺎ ﻓﻲ ﺡﺎﻟﺔ ﺗﻌﺒﺌﺔ اﻟﺤﻘﻠﻴﻦ اﻟﻤﻄﻠﻮﺑﻴﻦ‬

‫ﺙﻢ اﻟﻀﻐﻂ ﻋﻠﻰ ﻣﻔﺘﺎح )أﺽﻒ اﻟﺘﻌﻠﻴﻖ( ﺗﻜﻮن اﻟﻨﺘﻴﺠﺔ هﻲ اﻟﺬهﺎب إﻟﻰ ﺻﻔﺤﺔ )ﻋﺮض اﻟﺘﻮﻗﻴﻌﺎت(‬

‫ﻥﻼﺡﻆ اﻥﻪ ﺗﻢ إﺽﺎﻓﺔ اﻟﺘﻌﻠﻴﻖ اﻟﺠﺪیﺪ وﻇﻬﺮ ﻓﻲ اﻟﻤﻘﺪﻣﺔ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٥٨‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫أم ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت ) ﺟﺪول ‪(guest_book‬‬

‫اﻵن ﺳﻮف ﻥﺴﺘﺤﺪث ﻋﻦ ﺑﻌﺾ رﺳﺎﺉﻞ اﻟﺨﻄﺄ اﻟﺘﻲ ﻗﺪ ﺗﻈﻬﺮ ﻟﻚ ﺑﻌﺪ ﺗﻌﺒﺌﺔ اﻟﺤﻘﻠﻴﻦ اﻟﻤﻄﻠﻮﺑﻴﻦ ﻓﻲ ﺻﻔﺤﺔ إﺽﺎﻓﺔ‬
‫ﺗﻮﻗﻴﻊ ﺟﺪیﺪ ﺙﻢ اﻟﻀﻐﻂ ﻋﻠﻰ ﻣﻔﺘﺎح )أﺽﻒ اﻟﺘﻮﻗﻴﻊ(‬
‫رﺱﺎﻟﺔ اﻟﺨﻄﺄ اﻷوﻟﻰ‪:‬‬

‫اﻟﺮﺳﺎﻟﺔ ﺗﺨﺒﺮك ﺑﺄﻥﻪ یﺠﺐ اﺳﺘﺨﺪام اﺳﺘﻌﻼم یﻘﺒﻞ اﻟﺘﺤﺪیﺚ ﻓﻲ اﻟﻌﻤﻠﻴﺔ‬

‫اﻟﺤﻞ ﻟﺘﻼﻓﻲ هﺬﻩ اﻟﺮﺳﺎﻟﺔ هﻮ اﻟﺘﺄآﺪ ﻣﻦ اﻟﺼﻼﺡﻴﺎت ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﻤﺴﺘﺨﺪﻣﻴﻦ أي یﺠﺐ إﻋﻄﺎء اﻟﺼﻼﺡﻴﺔ ﻟﻠﻜﺘﺎﺑﺔ وهﻲ‬
‫آﺎﻟﺘﺎﻟﻲ‪:‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٥٩‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﻓﻲ ﺑﻌﺾ اﻷﺡﻴﺎن ﻻ ﺗﺠﺪ اﻟﻔﺎﺻﻞ ‪ Security‬ﻣﻮﺟﻮد ﺑﺠﻬﺎزك‬


‫اﻟﺤﻞ ﻟﺬﻟﻚ ﻓﻲ أي ﻥﺎﻓﺬة ﻟﻠﻤﺠﻠﺪات اﺥﺘﺮ ﻣﻦ ﻗﺎﺉﻤﺔ ‪ Folder Options – Tools‬وﻣﻦ ﺙﻢ اﺽﻐﻂ ﻋﻠﻰ اﻟﻔﺎﺻﻞ ‪View‬‬
‫وﻣﻦ ﺙﻢ أرﻓﻊ اﻟﺘﺤﺪیﺪ ﻋﻦ اﻟﺨﻴﺎر ‪ Use simple file sharing‬ﺙﻢ اﺽﻐﻂ ﻋﻠﻰ ﻣﻮاﻓﻖ‬

‫أو ﺗﻈﻬﺮ اﻟﺮﺳﺎﻟﺔ اﻟﺘﺎﻟﻴﺔ ﻟﻚ‬


‫رﺱﺎﻟﺔ اﻟﺨﻄﺄ اﻟﺜﺎﻥﻴﺔ‪:‬‬

‫اﻟﺮﺳﺎﻟﺔ ﺗﺨﺒﺮك أﻥﻪ ﻻ یﺴﺘﻄﻴﻊ ﻋﻤﻞ ﺗﺤﺪیﺚ ﻟﻘﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت أو أن اﻟﻜﺎﺉﻦ ﻟﻠﻘﺮاءة ﻓﻘﻂ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٦٠‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫اﻟﺤﻞ ﻟﺬﻟﻚ یﺠﺐ اﻟﺘﺄآﺪ ﻣﻦ أن ﻣﻠﻒ وﻣﺠﻠﺪ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت ﻟﻴﺲ ﻣﺤﻤﻲ ﺽﺪ اﻟﻜﺘﺎﺑﺔ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


٦١ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

add_to_book.asp ‫ﻃﺮیﻘﺔ أﺥﺮى ﻟﺘﺼﻤﻴﻢ ﺻﻔﺤﺔ‬


Recordset ‫****اﻟﻄﺮیﻘﺔ اﻟﺜﺎﻥﻴﺔ ﺑﺎﺱﺘﺨﺪام أﻡﺮ‬

‫وﻟﻜﻦ ﻗﺒﻞ ﺵﺮح اﻟﻄﺮیﻘﺔ اﻟﺜﺎﻥﻴﺔ ﺳﻮف ﻥﻘﻮم ﺑﺸﺮح ﻣﺜﺎل ﺗﻮﺽﻴﺤﻲ‬

test ‫ﺳﻮف ﻥﻘﻮم ﺑﺘﺼﻤﻴﻢ ﻣﻮﻗﻊ ﺟﺪیﺪ اﺳﻤﻪ‬


‫ﺙﻢ ﺗﺼﻤﻴﻢ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت اﻟﺘﺎﻟﻴﺔ‬

1 <html dir="rtl"><head>
2 <title>Recordset‫< ﺗﺠﺮﺑﺔ‬/title>
3 </head><body>
4 <% NAME="ismail damara" %>
5 <% MESSAGE="‫ "اﻟﺤﻤﺪ ﷲ‬%>
6 <%
7 Dim DataConn
8 Dim CmaAddRecord
9 Dim MYSQL
10
11 Set DataConn=Server.CreateObject("ADODB.Connection")
12 Set CmaAddRecord=Server.CreateObject("ADODB.Recordset")
13 DataConn.Open "DSN=Sys_DSN_Name_Test"
14
15 MYSQL="Select some_table.* from some_table"
16 CmaAddRecord.Open MYSQL, DataConn, 1, 3
17 CmaAddRecord.AddNew
18 CmaAddRecord.Fields("name") = NAME
19 CmaAddRecord.Fields("message") = MESSAGE
20 CmaAddRecord.Update
21 CmaAddRecord.Close
22 Set CmaAddRecord= Nothing
23 DataConn.Close
24 Set DataConn= Nothing
25 %>
26 </body></html>

‫ اﻷرﻗﺎم ﺗﺪل ﻋﻠﻰ رﻗﻢ اﻟﺴﻄﺮ ﻓﻘﻂ ﻟﻠﺸﺮح‬: ‫ﻡﻠﺤﻮﻇﺔ‬

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


‫ﺻﻔﺤﺔ ‪٦٢‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﺵﺮح اﻟﻄﺮیﻘﺔ‬

‫اﻟﺴﻄﺮ ‪ ٤‬و‪ ٥‬اﻟﻘﻴﻢ اﻟﻤﺮاد إدﺥﺎﻟﻬﺎ ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت ﻓﻲ اﻟﺠﺪول ‪some_table‬‬

‫)"‪Set DataConn=Server.CreateObject("ADODB.Connection‬‬

‫اﻹﻋﻼن ﻋﻦ اﻟﻜﺎﺉﻦ ‪Connection‬‬

‫)"‪Set CmaAddRecord=Server.CreateObject("ADODB.Recordset‬‬

‫اﻹﻋﻼن ﻋﻦ اﻟﻜﺎﺉﻦ ‪Recordset‬‬

‫"‪DataConn.Open "DSN=Sys_DSN_Name_Test‬‬

‫ﻓﺘﺢ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت‬

‫"‪MYSQL="Select some_table.* from some_table‬‬

‫اﻹﺵﺎرة إﻟﻰ اﻟﺠﺪول اﻟﻤﺮاد وﺽﻊ اﻟﺒﻴﺎﻥﺎت ﺑﻪ‬

‫‪CmaAddRecord.Open MYSQL, DataConn, 1, 3‬‬

‫ﻓﺘﺢ اﻟﻜﺎﺉﻦ ‪ Recordset‬ویﺸﺮ إﻟﻰ اﻟﺠﺪول اﻟﻤﺮاد وﺽﻊ اﻟﺒﻴﺎﻥﺎت ‪ MYSQL‬ﺙﻢ یﺸﻴﺮاﻟﻰ اﺗﺼﺎل اﻟﺒﻴﺎﻥﺎت‬
‫‪ DataConn‬ﺙﻢ یﺸﻴﺮ اﻟﻰ ﻥﻮع اﻟﻤﺆﺵﺮ )‪ (1‬ﺙﻢ یﺸﻴﺮ إﻟﻰ ﻥﻮع اﻟﺘﺄﻣﻴﻦ )‪ (3‬وﺑﻜﻮن اﻟﻔﺎﺻﻞ ﺑﻴﻦ آﻞ هﺬﻩ اﻷﺵﻴﺎء‬
‫ﻓﺎﺻﻠﺔ ) ‪( ,‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٦٣‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﺗﺤﺪیﺪ ﻥﻮع اﻟﺘﺄﻡﻴﻦ‬ ‫ﺗﺤﻴﺪ اﻟﻤﺆﺵﺮ‬


‫اﻟﻘﻴﻤﺔ )‪ : (0‬اﻟﻘﻴﻤﺔ اﻻﻓﺘﺮاﺽﻴﺔ ﺗﻌﻨﻲ ﻟﻠﻘ ﺮاءة ﻓﻘ ﻂ وه ﻲ اﻟﻘﻴﻤﺔ )‪ : (1‬اﻟﻘﻴﻤ ﺔ اﻻﻓﺘﺮاﺽ ﻴﺔ ﺗﻤ ﻨﺢ اﻟﻤﺴ ﺘﺨﺪﻣﻴﻦ ﺡ ﻖ‬
‫ﺗﺘ ﻴﺢ ﻟﻠﻤﺴ ﺘﺨﺪﻣﻴﻦ ﻗ ﺮاءة اﻟﺴ ﺠﻞ ﻓﻘ ﻂ ‪ ،‬یﺴ ﺘﻄﻴﻊ اﻟﻘﺮاءة ﻓﻘﻂ‬
‫اﻟﻤﺴﺘﺨﺪﻣﻮن اﻟﺘﺤﺮك إﻟﻰ اﻷﻣ ﺎم ﻓﻘ ﻂ ﻋﻨ ﺪ اﺳ ﺘﺨﺪام ه ﺬا‬
‫اﻟﻨﻮع ﻣﻦ اﻟﻤﺆﺵﺮات‬
‫اﻟﻘﻴﻤﺔ )‪ : (1‬ﺗﺘﻴﺢ ﻟﻠﻤﺴﺘﺨﺪﻣﻴﻦ ﻗﺮاءة اﻟﺴ ﺠﻼت واﻟﻜﺘﺎﺑ ﺔ اﻟﻘﻴﻤ ﺔ )‪:(2‬ﺗﻘ ﻮم ﺑﺘ ﺄﻣﻴﻦ اﻟﺴ ﺠﻞ اﻟ ﺬي یﻘ ﻮم اﻟﻤﺴ ﺘﺨﺪم‬
‫إﻟﻴﻬ ﺎ‪ ،‬یﺴ ﺘﻄﻴﻊ اﻟﻤﺴ ﺘﺨﺪﻣﻮن إﺽ ﺎﻓﺔ وﺡ ﺬف وﺗﻌ ﺪیﻞ ﺑﺘﺤﺮیﺮﻩ ﺡﺎﻟﻴًﺎ‬
‫اﻟﺴ ﺠﻼت وﻟﻜ ﻨﻬﻢ ﻟ ﻦ یﺘﻤﻜﻨ ﻮا ﻣ ﻦ اﺳ ﺘﻌﺮاض اﻟﺘﻐﻴ ﺮات‬
‫اﻟﺘ ﻲ یﺠﺮیﻬ ﺎ اﻟﻤﺴ ﺘﺨﺪﻣﻮن اﻵﺥ ﺮون ﻓ ﻲ أﺙﻨ ﺎء ﻓ ﺘﺢ‬
‫ﻣﺠﻤﻮﻋ ﺔ اﻟﺴ ﺠﻼت ‪ ،‬ﻋﻨ ﺪ اﺳ ﺘﺨﺪام ه ﺬا اﻟﻨ ﻮع ﻣ ﻦ‬
‫اﻟﻤﺆﺵ ﺮات یﺴ ﺘﻄﻴﻊ اﻟﻤﺴ ﺘﺨﺪﻣﻮن اﻟﺘﺤ ﺮك ﻟﻸﻣ ﺎم‬
‫وﻟﻠﺨﻠﻒ ﻓﻲ ﻣﺠﻤﻮﻋﺔ اﻟﺴﺠﻼت‬
‫اﻟﻘﻴﻤﺔ )‪ :(2‬ﺗﺘﻴﺢ ﻟﻠﻤﺴ ﺘﺨﺪﻣﻴﻦ ﻗ ﺮاءة اﻟﺴ ﺠﻼت واﻟﻜﺘﺎﺑ ﺔ اﻟﻘﻴﻤ ﺔ )‪ :(3‬ﺗﻘ ﻮم ﺑﺘ ﺄﻣﻴﻦ اﻟﺴ ﺠﻞ اﻟ ﺬي یﻘ ﻮم اﻟﻤﺴ ﺘﺨﺪم‬
‫إﻟﻴﻬﺎ‪ ، ،‬ﻋﻨﺪ اﺳﺘﺨﺪام هﺬا اﻟﻨﻮع ﻣ ﻦ اﻟﻤﺆﺵ ﺮات یﺴ ﺘﻄﻴﻊ ﺑﺘﺤﺪیﺜﻪ‬
‫اﻟﻤﺴ ﺘﺨﺪﻣﻮن اﻟﺘﺤ ﺮك ﻟﻸﻣ ﺎم وﻟﻠﺨﻠ ﻒ ﻓ ﻲ ﻣﺠﻤﻮﻋ ﺔ‬
‫اﻟﺴ ﺠﻼت وه ﺬا اﻟﻨ ﻮع یﺘ ﻴﺢ ﻟﻠﻤﺴ ﺘﺨﺪﻣﻴﻦ اﺳ ﺘﻌﺮاض‬
‫اﻟﺘﻌﺪیﻼت اﻟﺘﻲ أﺟﺮاهﺎ اﻟﻤﺴﺘﺨﺪﻣﻮن اﻵﺥﺮون ﻓ ﻲ أﺙﻨ ﺎء‬
‫ﻓﺘﺢ ﻣﺠﻤﻮﻋﺔ اﻟﺴﺠﻼت اﻟﺤﺎﻟﻴﺔ‪.‬‬
‫اﻟﻘﻴﻤﺔ )‪ :(3‬ﺗﻤ ﻨﺢ اﻟﻤﺴ ﺘﺨﺪﻣﻴﻦ ﺡ ﻖ اﻟﻘ ﺮاءة ﻓﻘ ﻂ وﻟﻜﻨﻬ ﺎ اﻟﻘﻴﻤ ﺔ )‪ :(4‬ﺗﻘ ﻢ ﺑﺘ ـﺄﻣﻴﻦ ﻋ ﺪة ﺳ ﺠﻼت ﻋﻨ ﺪﻣﺎ یﻘ ﻮم‬
‫ﺗﺘﻴﺢ ﻟﻬﻢ اﻟﺘﺤﺮك ﻟﻸﻣﺎم وﻟﻠﺨﻠﻒ ﻓﻲ ﻣﺠﻤﻮﻋﺔ اﻟﺴﺠﻼت اﻟﻤﺴﺘﺨﺪم ﺑﻌﻤﻠﻴﺔ ﺗﺤﺪیﺚ ﺟﻤﺎﻋﻴﺔ ﻟﻠﺴﺠﻼت‬
‫اﻥﻈﺮ ﺻﻔﺤﺔ ‪ ٢٠٢‬و ‪ ٢٠٣‬ﻣﻦ آﺘﺎب اﻗﺮأ أﻗﻞ وﺗﻌﻠﻢ أآﺜﺮ‬

‫‪CmaAddRecord.AddNew‬‬
‫اﻹﻋﻼن ﻋﻦ إﺽﺎﻓﺔ ﺳﺠﻞ ﺟﺪیﺪ‬

‫‪CmaAddRecord.Fields("name") = NAME‬‬
‫‪CmaAddRecord.Fields("message") = MESSAGE‬‬
‫إﺽﺎﻓﺔ اﻟﻘﻴﻢ اﻟﺠﺪیﺪة ﻓﻲ ﺡﻘﻮل اﻟﺴﺠﻞ اﻟﺠﺪیﺪ‬

‫‪CmaAddRecord.Update‬‬
‫اﻹﻋﻼن ﻋﻦ ﺗﺤﺪیﺚ اﻟﺒﻴﺎﻥﺎت‬

‫‪CmaAddRecord.Close‬‬
‫‪Set CmaAddRecord= Nothing‬‬
‫اﻹﻋﻼن ﻋﻦ إﻏﻼق اﻟﻜﺎﺉﻦ ‪Recordset‬‬

‫‪DataConn.Close‬‬
‫‪Set DataConn= Nothing‬‬
‫اﻹﻋﻼن ﻋﻦ إﻏﻼق اﻟﻜﺎﺉﻦ ‪Connection‬‬

‫وﻋﻨﺪ ﺗﺸﻐﻴﻞ هﺬﻩ اﻟﺼﻔﺤﺔ ‪ index.asp‬ﺗﻜﻮن اﻟﻨﺘﻴﺠﺔ ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت هﻲ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


٦٤ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

add_to_book.asp ‫ ﺹﻔﺤﺔ‬Recordset ‫****اﻵن ﺱﻮف ﻥﻘﻮم ﺑﺘﻨﻔﻴﺬ اﻟﻄﺮیﻘﺔ اﻟﺜﺎﻥﻴﺔ ﺑﺎﺱﺘﺨﺪام أﻡﺮ‬

<html dir="rtl"><head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<اﺽﺎﻓﺔ ﺳﺠﻼت ﺟﺪیﺪة اﻟﻰ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت‬/title>
</head><body>
<!--#include file="pageheader.asp" -->
<%
' Recordset‫اﻟﻄﺮیﻘﺔ اﻟﺜﺎﻥﻴﺔ ﺑﺎﺳﺘﺨﺪام‬
fadd_dat = date()
fname = request.form ("name")
femail = request.form ("email")
fwebsite = request.form ("website")
flink = request.form ("link")
franking = request.form ("ranking")
fcomment = request.form ("comment")

Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
Set CmaAddRecord=Server.CreateObject("ADODB.Recordset")
connectionToDatabase.Open "DSN=my_data_base"

If fname="" or fcomment="" then


response.write "<center>" & " ‫ ﻣﻦ ﻓﻀﻠﻚ اﺽﻐﻂ زر ﻋﻮدة ﻓﻲ‬..‫ﻟﻢ ﺗﻘﻢ ﺑﺈدﺥﺎل ﺟﻤﻴﻊ اﻟﺤﻘﻮل اﻟﻤﻄﻠﻮﺑﺔ‬
‫"ﻣﺘﺼﻔﺤﺘﻚ وﻗﻢ ﺑﺈدﺥﺎل ﺟﻤﻴﻊ اﻟﺤﻘﻮل‬
Else
MYSQL="Select guest_book.* from guest_book"
CmaAddRecord.Open MYSQL, connectionToDatabase, 1, 3
CmaAddRecord.AddNew
CmaAddRecord.Fields("add_dat") = fadd_dat
CmaAddRecord.Fields("name") = fname
CmaAddRecord.Fields("email") = femail
CmaAddRecord.Fields("website") = fwebsite
CmaAddRecord.Fields("link") = flink
CmaAddRecord.Fields("ranking") = franking
CmaAddRecord.Fields("comment") = fcomment
CmaAddRecord.Update
CmaAddRecord.Close
Set CmaAddRecord= Nothing
response.redirect "guest.asp"
End if
connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>
<!--#include file="pagefooter.asp" -->
</body></html>

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


‫ﺻﻔﺤﺔ ‪٦٥‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫اﻟﺼﻔﺤﺔ اﻷوﻟﻰ‬

‫اﻟﺼﻔﺤﺔ اﻟﺜﺎﻥﻴﺔ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٦٦‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﻡﻠﺤﻮﻇﺔ‪ :‬ﻓﻲ ﺡﺎﻟﺔ ﺟﻌﻞ اﻟﻤﺘﻐﻴﺮ)(‪ fadd_dat=now‬وذﻟﻚ ﻟﻺﻋﻼن ﻋﻦ اﻟﻮﻗﺖ واﻟﺘﺎریﺦ اﻟﺤﺎﻟﻲ ﻓﻲ ﻃﺮیﻘﺔ ‪Insert‬‬
‫ﺗﻈﻬﺮ رﺳﺎﻟﺔ اﻟﺨﻄﺄ اﻟﺘﺎﻟﻴﺔ‬

‫أﻣﺎ ﻓﻲ ﺡﺎﻟﺔ اﺳﺘﺨﺪام ﻃﺮیﻘﺔ ‪ Recordset‬ﻻ ﺗﻈﻬﺮ هﺬﻩ اﻟﺮﺳﺎﻟﺔ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٦٧‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﺗﺼﻤﻴﻢ ﺻﻔﺤﺎت إدارة اﻟﻤﻮﻗﻊ‬


‫ﺳﻨﻘﻮم ﺳﻮیﺎ ﺑﺘﺼﻤﻴﻢ ﺻﻔﺤﺎت ﻹدﺥﺎل اﺳﻢ اﻟﻤﺴﺘﺨﺪم واﻟﺮﻗﻢ اﻟﺴﺮي واﻟﺘﺄآﺪ ﻣﻦ ﺻﺤﺘﻬﻤﺎ ﻣ ﻦ أﺟ ﻞ اﻟ ﺪﺥﻮل ﻟﺼ ﻔﺤﺔ‬
‫إدارة اﻷﺥﺒﺎر‪ .‬وﺳﺘﺮون آﻴﻒ أن اﻟﻤﻬﻤﺔ ﺳﻬﻠﺔ وﻣﻤﺘﻌﺔ‪ ..‬ﻓﻠﻨﺒﺪأ‪..‬‬
‫ﻟﻠﻮﺻﻮل إﻟﻰ هﺬﻩ اﻟﻨﺘﻴﺠﺔ ﺳﻨﻘﻮم ﺑﺈﻥﺸﺎء ﺙﻼث ﻣﻠﻔﺎت وهﻢ آﺎﻟﺘﺎﻟﻲ ‪:‬‬
‫* ‪admin.asp‬‬
‫** ‪validentry.asp‬‬
‫*** ‪adminsection.asp‬‬

‫* ﻥﻤ ﻮذج إدﺥ ﺎل اﺳ ﻢ اﻟﻤﺴ ﺘﺨﺪم واﻟ ﺮﻗﻢ اﻟﺴ ﺮي )‪ :(admin.asp‬یﺤﺘ ﻮي ﻋﻠ ﻰ ﻥﻤ ﻮذج )‪ (Form‬ﻹدﺥ ﺎل اﺳ ﻢ‬
‫اﻟﻤﺴﺘﺨﺪم واﻟﺮﻗﻢ اﻟﺴﺮي‪ .‬ﺗﻘﻮم هﺬﻩ اﻟﺼﻔﺤﺔ ﺑﻌﺮض رﺳﺎﻟﺔ ﺥﻄﺄ ﻋﻨﺪ ﻋﺪم إدﺥ ﺎل اﺳ ﻢ اﻟﻤﺴ ﺘﺨﺪم أو اﻟ ﺮﻗﻢ اﻟﺴ ﺮي‪،‬‬
‫أو ﻋﻨﺪ إدﺥﺎل ﻣﻌﻠﻮﻣﺎت ﺥﺎﻃﺌﺔ‪.‬‬
‫** ﺻﻔﺤﺔ اﻟﺘﺤﻘﻖ ﻣ ﻦ اﻟﻤﻌﻠﻮﻣ ﺎت )‪ :(validentry.asp‬ﺳ ﺘﻘﻮم ﺑ ﺎﻟﺘﺤﻘﻖ ﻣ ﻦ ﺻ ﺤﺔ إدﺥ ﺎل اﺳ ﻢ اﻟﻤﺴ ﺘﺨﺪم واﻟ ﺮﻗﻢ‬
‫اﻟﺴﺮي‪ ،‬وﻣﻦ ﺗﺴﺠﻴﻠﻬﻤﺎ ﻓﻲ اﻟﻤﻮﻗﻊ‪.‬‬
‫*** اﻟﺼ ﻔﺤﺔ اﻹداری ﺔ )‪ :(adminsection.asp‬ه ﻲ اﻟﺼ ﻔﺤﺔ اﻟﺘ ﻲ ﺳﻴﺴ ﻤﺢ ﺑﺎﻟ ﺪﺥﻮل إﻟﻴﻬ ﺎ ﻟﻠﻘﻴ ﺎم ﺑﻤﻬ ﺎم إدارة‬
‫اﻟﻤﻮﻗﻊ‪ ،‬ﺑﻌﺪ إدﺥﺎل اﺳﻢ اﻟﻤﺴﺘﺨﺪم واﻟﺮﻗﻢ ﺳﺮي ﺑﺸﻜﻞ ﺻﺤﻴﺢ ‪.‬‬

‫ﻗﺒﻞ أن ﻥﻘﻮم ﺑﺘﺼﻤﻴﻢ اﻟﺼ ﻔﺤﺎت ‪..‬یﺠ ﺐ أن ﻥﻘ ﻮم ﺑﺘﺼ ﻤﻴﻢ ﺟ ﺪول ﺟﺪی ﺪ ﻓ ﻲ ﻗﺎﻋ ﺪة اﻟﺒﻴﺎﻥ ﺎت‪ ..‬ﺳ ﻴﻜﻮن اﺳ ﻢ اﻟﺠ ﺪول‬
‫‪ admin‬وﺑﻪ ﺙﻼث ﺡﻘﻮل هﻲ‬
‫‪ id‬ﻣﻦ اﻟﻨﻮع )ﺗﺮﻗﻴﻢ ﺗﻠﻘﺎﺉﻲ (‬
‫‪ name‬ﻣﻦ اﻟﻨﻮع )ﻥﺺ(‬
‫‪ pass‬ﻣﻦ اﻟﻨﻮع )ﻥﺺ(‬

‫وﻗﻢ ﺑﺈدﺥﺎل أیﺔ ﻗﻴﻢ ﻓﻲ هﺬا اﻟﺠﺪول‪ .‬أﻋﻨﻲ إدﺥﺎل اﺳﻢ ﻣﺴﺘﺨﺪم وآﻠﻤﺔ ﻣﺮور اﻓﺘﺮاﺽﻴﺘﻴﻦ وﻟﺘﻜﻦ‪.‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٦٨‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫واﻵن ﻟﻨﺒﺪأ ﺑﺈﻥﺸﺎء آﻞ ﺹﻔﺤﺔ ﻋﻠﻰ ﺣﺪا‪..‬‬

‫* ﺗﺼﻤﻴﻢ ﺹﻔﺤﺔ )‪ :(admin.asp‬ﻥﻤﻮذج إدﺧﺎل اﺱﻢ اﻟﻤﺴﺘﺨﺪم واﻟﺮﻗﻢ اﻟﺴﺮي‬

‫یﻨﻘﺴﻢ هﺬا اﻟﻤﻠﻒ إﻟﻰ ﺟﺰأیﻦ‪:‬‬


‫اﻟﺠﺰء اﻷول‪ :‬یﺤﺘﻮي ﻋﻠﻰ ﻥﻤﻮذج )‪ (Form‬ﻹدﺥﺎل اﺳﻢ اﻟﻤﺴﺘﺨﺪم واﻟﺮﻗﻢ اﻟﺴﺮي آﺎﻟﺘﺎﻟﻲ‪:‬‬

‫ﻡﻼﺣﻈﺎت‪:‬‬

‫ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﺤﻘﻞ اﻟﺨﺎص ﺑﺎﻟﺮﻗﻢ اﻟﺴﺮي ‪ pass‬ﺗﻢ ﺗﺤﺪیﺪ ﻓﻴ ﻪ اﺥﺘﻴ ﺎر )ﻥﻌ ﻢ( أﻣ ﺎم ﺡﻘ ﻞ آﻠﻤ ﺔ اﻟﻤ ﺮور ﺡﺘ ﻰ ﺗﻈﻬ ﺮ ﻣﻜ ﺎن‬
‫ﺡﺮوف آﻠﻤﺔ اﻟﻤﺮور ﻥﺠﻮم ﺑﺪﻻ ﻣﻦ إﻇﻬﺎرﻩ ﻋﻠﻰ اﻟﺸﺎﺵﺔ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


٦٩ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

:‫آﻮد اﻟﻨﻤﻮذج‬

<html dir="rtl"><head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<ﻥﻤﻮذج ادﺥﺎل اﻻﺳﻢ واﻟﺮﻗﻢ اﻟﺴﺮي ﻟﻠﺪﺥﻮل ﻋﻠﻰ ﺻﻔﺤﺔ إدارة اﻟﻤﻮﻗﻊ‬/title>
</head><body>
<!--#include file="pageheader.asp" -->
<form method="POST" name="login" action="validentry.asp">
<p><font color="#800000"><b>‫ﻣﻦ ﻓﻀﻠﻚ ﻗﻢ ﺑﺘﻌﺒﺌﺔ اﻟﻨﻤﻮذج اﻟﺘﺎﻟﻲ ﺡﺘﻰ یﺘﺜﻨﻰ ﻟﻚ‬
‫<اﻟﺪﺥﻮل ﻋﻠﻰ ﺻﻔﺤﺔ إدارة اﻟﻤﻮﻗﻊ‬/b></font></p>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse"
bordercolor="#111111" width="100%" id="AutoNumber1">
<tr>
<td width="16%"><b>‫ اﺳﻢ اﻟﻤﺴﺘﺨﺪم‬:</b></td>
<td width="84%"><input type="text" name="name" size="40"></td>
</tr>
<tr>
<td width="16%"><b>‫ اﻟﺮﻗـﻢ اﻟﺴﺮي‬:</b></td>
<td width="84%"><input type="password" name="pass" size="40"></td>
</tr>
</table>
<p><input type="submit" value="‫ "دﺥﻮل‬name="submit" style="font-weight:
bold">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="reset" value="‫ "إﻋﺎدة ﺗﻌﻴﻴﻦ‬name="B2" style="font-weight: bold"></p>
</form>
<!--#include file="pagefooter.asp" -->
</body></html>

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


٧٠ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

‫ أو ﻋﻨ ﺪ إدﺥ ﺎل ﻣﻌﻠﻮﻣ ﺎت‬،‫یﻘﻮم ﺑﻌﺮض رﺳﺎﻟﺔ ﺥﻄﺄ ﻋﻨﺪ ﻋﺪم إدﺥﺎل اﺳﻢ اﻟﻤﺴﺘﺨﺪم أو اﻟ ﺮﻗﻢ اﻟﺴ ﺮي‬: :‫اﻟﺠﺰء اﻟﺜﺎﻥﻲ‬
</form> ‫( ﻣﺒﺎﺵﺮة أي ﺑﻌﺪ‬Form) ‫ ﺑﻌﺪ اﻟﻨﻤﻮذج‬Code ‫ ویﺠﺐ آﺘﺎﺑﺔ اﻟـ‬،‫ﺥﺎﻃﺌﺔ‬
،‫ ﻋﻨﺪ وﺟ ﻮد ﺥﻄ ﺄ ﻓ ﻲ إدﺥ ﺎل اﻟﻤﻌﻠﻮﻣ ﺎت ﻓ ﻲ اﻟﻨﻤ ﻮذج‬validentry.asp ‫ﺳﻮف یﺴﺘﻘﺒﻞ هﺬا اﻟﺠﺰء ﻗﻴﻤﺔ ﻣﻦ ﻣﻠﻒ‬
.‫ اﻟﻘﻴﻤﺔ‬validentry.asp ‫ ﺳﻨﺮى ﻻﺡﻘﺎ آﻴﻒ ﺳﻴﺮﺳﻞ اﻟﻤﻠﻒ‬، error ‫وﺳﻮف یﻀﻌﻬﺎ ﻓﻲ‬

<%
error=Request.querystring("error")
If error <> "" then

If error = "Name_Null" Then


Response.write "<b><font color=#FF0000>‫<ﻟﻢ ﺗﺪﺥﻞ اﺳﻢ اﻟﻤﺴﺘﺨﺪم‬/font></b>"
Else
If error = "Pass_Null" Then
Response.write "<b><font color=#FF0000>‫<ﻟﻢ ﺗﺪﺥﻞ اﻟﺮﻗﻢ اﻟﺴﺮي‬/font></b>"
Else
If error = "Name_Entry" Then
Response.write "<b><font color=#FF0000>‫<ﻟﻘﺪ أدﺥﻠﺖ اﺳﻢ ﻣﺴﺘﺨﺪم ﺥﻄﺄ‬/font></b>"
Else
If error = "Pass_Entry" Then
Response.write "<b><font color=#FF0000>‫<ﻟﻘﺪ أدﺥﻠﺖ رﻗﻢ ﺳﺮي ﺥﻄﺄ‬/font></b>"
End If
End If
End If
End If

End If
%>

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


‫ﺻﻔﺤﺔ ‪٧١‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﺵﺮح ﺵﺮوط اﻟﺘﺤﻘﻖ ﻡﻦ أﺧﻄﺎء اﻹدﺧﺎل ﻓﻲ اﻟﻨﻤﻮذج‪:‬‬

‫‪ ،If error <> "" then -١‬هﺬا اﻷﻣﺮ ﺳﻴﺘﺤﻘﻖ ﻣﻦ ﻋﺪم ﻣﺴﺎواة ‪ error‬ﻟﻔﺮاغ‪ ،‬أي أﻥ ﻪ اﺳ ﺘﻘﺒﻞ ﺥﻄ ﺄ ﻣ ﻦ اﻟﻤﻠ ﻒ‬
‫‪validentry.asp .‬ﻓﻲ ﺡﺎﻟﺔ ﺗﺤﻘﻖ اﻟﺸﺮط واﺳ ﺘﻘﺒﺎل اﻟﺨﻄ ﺄ‪ ،‬ﺳ ﻮف ی ﺘﻢ ﺗﻨﻔﻴ ﺬ اﻷواﻣ ﺮ اﻟﺘ ﻲ ﻓ ﻲ داﺥ ﻞ ‪ If‬ﻻﺥﺘﺒ ﺎر‬
‫اﻟﺸﺮوط ﻣﻦ ‪ ٢‬إﻟﻰ ‪ . ٥‬أﻣ ﺎ ﻓ ﻲ ﺡﺎﻟ ﺔ ﻋ ﺪم ﺗﺤﻘ ﻖ اﻟﺸ ﺮط ‪ ،‬أي ﻻ یﻮﺟ ﺪ ﺥﻄ ﺄ‪ ،‬ﻓﺴ ﻴﺘﻨﻘﻞ ﻟﻘ ﺮاءة اﻷواﻣ ﺮ اﻟﺘ ﻲ ﺗﻠ ﻲ‬
‫‪EndIf‬اﻷﺥﻴﺮة‪.‬‬

‫‪ If error = "Name_Null" Then -٢‬هﺬا اﻷﻣﺮ ﺳﻴﺘﺤﻘﻖ ﻣﻦ اﺳﺘﻘﺒﺎل ﺥﻄﺄ ﻓﻲ ‪ error‬ﺑﺤﻴﺚ یﻜﻮن ﻣﺴﺎوي ﻟـ‬
‫"‪ ،"Name_Null‬وه ﻮ یﺴ ﺘﻘﺒﻞ ه ﺬا اﻟﺨﻄ ﺄ ) ه ﺬﻩ اﻟﻘﻴﻤ ﺔ( إن ﻟ ﻢ ی ﺪﺥﻞ اﻟﻤﺴ ﺘﺨﺪم اﺳ ﻢ اﻟﻤﺴ ﺘﺨﺪم ﻓ ﻲ ﺥﺎﻥ ﺔ اﺳ ﻢ‬
‫اﻟﻤﺴ ﺘﺨﺪم ﻓ ﻲ اﻟﻨﻤ ﻮذج‪ .‬ﻓ ﺈذا ﺗﺤﻘ ﻖ اﻟﺸ ﺮط‪ ،‬ﺳ ﻮف یﻌ ﺮض ﻋﺒ ﺎرة" ﻟ ﻢ ﺗ ﺪﺥﻞ اﺳ ﻢ اﻟﻤﺴ ﺘﺨﺪم ‪".‬أﻣ ﺎ إذا ﻟ ﻢ یﻜ ﻦ‬
‫‪error‬یﺴﺎوي "‪ ، "Name_Null‬أي ﻟﻢ یﺘﺤﻘﻖ اﻟﺸﺮط‪ ،‬ﻓﺴﻴﻨﺘﻘﻞ إﻟﻰ اﺥﺘﺒﺎر اﻟﺸﺮط اﻟﺘﺎﻟﻲ رﻗﻢ ‪٣‬‬
‫‪.‬‬
‫‪ ،If error = "Pass_Null" Then -٣‬ه ﺬا اﻷﻣ ﺮ ﺳ ﻴﺘﺤﻘﻖ ﻣ ﻦ اﺳ ﺘﻘﺒﺎل اﻟﺨﻄ ﺄ ‪ error‬ﺑ ﺄن یﻜ ﻮن ﻣﺴ ﺎوي ﻟ ـ‬
‫"‪ ،"Pass_Null‬وهﻮ یﺴﺘﻘﺒﻞ هﺬا اﻟﺨﻄﺄ) هﺬﻩ اﻟﻘﻴﻤﺔ ( إن ﻟﻢ یﺪﺥﻞ اﻟﻤﺴﺘﺨﺪم اﻟ ﺮﻗﻢ ﺳ ﺮي ﻓ ﻲ ﺥﺎﻥ ﺔ اﻟ ﺮﻗﻢ اﻟﺴ ﺮي‬
‫ﻓﻲ اﻟﻨﻤﻮذج‪ ،‬ﻓﺈذا ﺗﺤﻘﻖ اﻟﺸ ﺮط ﺳ ﻮف یﻌ ﺮض ﻋﺒ ﺎرة" ﻟ ﻢ ﺗ ﺪﺥﻞ اﻟ ﺮﻗﻢ اﻟﺴ ﺮي ‪".‬أﻣ ﺎ إذا ﻟ ﻢ یﻜ ﻦ ‪ error‬یﺴ ﺎوي‬
‫"‪ ،"Pass_Null‬أي ﻟﻢ یﺘﺤﻘﻖ اﻟﺸﺮط‪ ،‬ﺳﻮف یﻨﺘﻘﻞ إﻟﻰ اﺥﺘﺒﺎر اﻟﺸﺮط اﻟﺘﺎﻟﻲ رﻗﻢ ‪٤‬‬

‫‪ ،If error = "Name_Entry" Then -٤‬هﺬا اﻷﻣﺮ ﺳﻴﺘﺤﻘﻖ ﻣﻦ اﺳﺘﻘﺒﺎل اﻟﺨﻄﺄ ‪ error‬ﺑﺤﻴﺚ یﻜ ﻮن ﻣﺴ ﺎوي‬
‫ﻟ ـ"‪ ، "Name_Entry‬وه ﻮ یﺴ ﺘﻘﺒﻞ ه ﺬا اﻟﺨﻄ ﺄ) ه ﺬﻩ اﻟﻘﻴﻤ ﺔ ( إن أدﺥ ﻞ اﻟﻤﺴ ﺘﺨﺪم ﻗﻴﻤ ﺔ) اﺳ ﻢ ﻣﺴ ﺘﺨﺪم( وﻟﻜﻨﻬ ﺎ‬
‫ﺥﺎﻃﺌﺔ‪ ،‬أي ﻏﻴﺮ ﻣﺴﺠﻠﺔ ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت‪ .‬ﻓ ﺈذا ﺗﺤﻘ ﻖ اﻟﺸ ﺮط ﺳ ﻮف یﻌ ﺮض ﻋﺒ ﺎرة" ﻟﻘ ﺪ أدﺥﻠ ﺖ اﺳ ﻢ ﻣﺴ ﺘﺨﺪم‬
‫ﺥﻄﺄ ‪".‬أﻣﺎ إذا ﻟﻢ یﻜﻦ ‪ error‬یﺴﺎوي"‪ ، "Name_Entry‬أي ﻟﻢ یﺘﺤﻘﻖ اﻟﺸ ﺮط‪ ،‬ﺳ ﻮف یﻨﺘﻘ ﻞ إﻟ ﻰ اﺥﺘﺒ ﺎر اﻟﺸ ﺮط‬
‫اﻟﺘﺎﻟﻲ رﻗﻢ ‪.٥‬‬

‫‪ ،If error = "Pass_Entry" Then -٥‬هﺬا اﻷﻣﺮ ﺳﻴﺘﺤﻘﻖ ﻣﻦ اﺳﺘﻘﺒﺎل اﻟﺨﻄﺄ ‪ error‬ﺑﺤﻴﺚ یﻜﻮن ﻣﺴ ﺎوي ﻟ ـ‬
‫"‪ ،"Pass_Entry‬وهﻮ یﺴﺘﻘﺒﻞ هﺬا اﻟﺨﻄﺄ) هﺬﻩ اﻟﻘﻴﻤﺔ ( إن أدﺥﻞ اﻟﻤﺴﺘﺨﺪم ﻗﻴﻤ ﺔ) اﻟ ﺮﻗﻢ اﻟﺴ ﺮي ( وﻟﻜﻨﻬ ﺎ ﺥﺎﻃﺌ ﺔ‪،‬‬
‫أي ﻏﻴﺮ ﻣﺴﺠﻠﺔ ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت‪ .‬ﻓﺈذا ﺗﺤﻘﻖ اﻟﺸ ﺮط ﺳ ﻮف یﻌ ﺮض ﻋﺒ ﺎرة" ﻟﻘ ﺪ أدﺥﻠ ﺖ رﻗ ﻢ ﺳ ﺮي ﺥﻄ ﺄ ‪".‬ﺑﻌ ﺪ‬
‫ذﻟﻚ ﺳﺘﺘﻮﻗﻒ ﻋﻤﻠﻴﺔ اﺥﺘﺒﺎر اﻟﺸﺮوط‪.‬‬

‫ﺑﺬﻟﻚ ﻥﻜﻮن اﻥﻬﻴﻨﺎ ﻡﻦ إﻥﺸﺎء ﺹﻔﺤﺔ ‪admin.asp‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٧٢‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫** ﺗﺼﻤﻴﻢ ﺹﻔﺤﺔ اﻟﺘﺤﻘﻖ ﻡﻦ اﻟﻤﻌﻠﻮﻡﺎت )‪(validentry.asp‬‬

‫ﺳ ﺘﻘﻮم ﺑﺎﺳ ﺘﻘﺒﺎل اﻟﻘ ﻴﻢ اﻟﻤﺪﺥﻠ ﺔ ﻓ ﻲ ﻥﻤ ﻮذج ‪ ، admin.asp‬ﺙ ﻢ ﺳ ﻨﺘﺤﻘﻖ ﻣ ﻦ ﺻ ﺤﺔ إدﺥ ﺎل اﺳ ﻢ اﻟﻤﺴ ﺘﺨﺪم واﻟ ﺮﻗﻢ‬
‫اﻟﺴﺮي‪ ،‬وﻣﻦ ﺗﺴﺠﻴﻠﻬﻤﺎ ﻓﻲ اﻟﻤﻮﻗﻊ‪.‬‬
‫إن ﻟ ﻢ ﺗﻜ ﻦ اﻟﻤﻌﻠﻮﻣ ﺎت اﻟﻤﺪﺥﻠ ﺔ ﺻ ﺤﻴﺤﺔ ﻓ ﻲ اﻟﻨﻤ ﻮذج‪ ،‬ﺳ ﻮف ﺗﺮﺳ ﻞ ه ﺬﻩ اﻟﺼ ﻔﺤﺔ )‪ ، (validentry.asp‬ﻣﺘﻐﻴ ﺮ‬
‫یﺴ ﻤﻰ ‪ error‬إﻟ ﻰ ﻣﻠ ﻒ ‪ ، admin.asp‬ﻟﻴﺨﺒ ﺮﻩ ﻋ ﻦ ﻥ ﻮع اﻟﺨﻄ ﺄ ﻓ ﻲ إدﺥ ﺎل اﻟﻤﻌﻠﻮﻣ ﺎت ‪.‬ﻟﻴﻘ ﻮم اﻟﻨﻤ ﻮذج ﺑﻌ ﺮض‬
‫رﺳﺎﻟﺔ اﻟﺨﻄﺄ اﻟﻤﻨﺎﺳﺒﺔ ﻟﻠﻤﺴﺘﺨﺪم‪.‬‬
‫إذا هﺬﻩ اﻟﺼ ﻔﺤﺔ ‪ validentry.asp‬ﻟ ﻦ ﺗﻘ ﻮم ﺑﻌ ﺮض أي ﺵ ﻲء ﻟﻠﻤﺴ ﺘﺨﺪم‪ ،‬ﺳ ﺘﻘﻮم ﻓﻘ ﻂ ﺑ ﺎﻟﺘﺤﻘﻖ ﻣ ﻦ ﺻ ﺤﺔ إدﺥ ﺎل‬
‫اﻟﻤﻌﻠﻮﻣ ﺎت‪ ،‬ﻓ ﺈن آﺎﻥ ﺖ ﻏﻴ ﺮ ﺻ ﺤﻴﺤﺔ‪ ،‬ﺳﻴﺮﺳ ﻞ ‪ error‬ﻟ ـ ‪ admin.asp‬وﺳ ﻮف یﻌ ﺮض اﻟﺨﻄ ﺄ‪ .‬إﻣ ﺎ إذا آﺎﻥ ﺖ‬
‫اﻟﻤﻌﻠﻮﻣﺎت اﻟﻤﺪﺥﻠﺔ ﺻﺤﻴﺤﺔ ﻟﻠﻤﺴﺘﺨﺪم‪ ،‬ﺳ ﻮف یﻘ ﻮم ﺑﻌ ﺮض ﺻ ﻔﺤﺔ اﻟﺼ ﻔﺤﺔ اﻹداری ﺔ )‪: (adminsection.asp‬‬
‫وهﻲ اﻟﺼﻔﺤﺔ اﻟﺘﻲ ﺳﻴﺴﻤﺢ ﺑﺎﻟﺪﺥﻮل إﻟﻴﻬﺎ ﻟﻠﻘﻴﺎم ﺑﻤﻬﺎم إدارة اﻟﻤﻮﻗﻊ‪ ،‬ﺑﻌﺪ إدﺥﺎل اﺳ ﻢ اﻟﻤﺴ ﺘﺨﺪم واﻟ ﺮﻗﻢ ﺳ ﺮي ﺑﺸ ﻜﻞ‬
‫ﺻﺤﻴﺢ ‪.‬‬

‫اﻵن ﺳﻨﻜﺘﺐ ‪ Code‬ﺻﻔﺤﺔ اﻟﺘﺤﻘﻖ ﻣﻦ إدﺥﺎل اﻟﻤﻌﻠﻮﻣﺎت )‪ (validentry.asp‬آﺎﻟﺘﺎﻟﻲ ‪:‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


٧٣ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

<html dir="rtl"><head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<ﺻﻔﺤﺔ اﻟﺘﺤﻘﻖ ﻣﻦ إدﺥﺎل اﻟﻤﻌﻠﻮﻣﺎت اﻻﺳﻢ واﻟﺮﻗﻢ اﻟﺴﺮي‬/title>
</head><body>
<% Name=Request.form("Name")
Pass=Request.form("Pass")

If Name = "" Then


response.redirect ("admin.asp?error=Name_Null")
Else
If Pass = "" Then
response.redirect ("admin.asp?error=Pass_Null")
Else

Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
connectionToDatabase.Open "DSN=my_data_base"

SelectSql="Select * from admin where name='"&Name&"'"


set rs=connectionToDatabase.execute (SelectSql)
If rs.eof then
response.Redirect ("admin.asp?error=Name_Entry")
Else
If rs("pass") <> pass Then
response.redirect ("admin.asp?error=Pass_Entry")
Else
Name_Cooky= request.cookies("Name")
If Name_Cooky <> Name then
response.cookies ("Name")=Name
End IF
response.Redirect ("adminsection.asp")
End If
End If
End If
End If
connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>
</body></html>

‫ ﻷﻥﻬ ﺎ ﻟ ﻦ ﺗﻌ ﺮض ﺵ ﻴﺌﺎ‬، html ‫ وﻻ ﺗﺤﺘﻮي ﻋﻠﻰ آ ﻮد ﻟﻐ ﺔ‬، ASP ‫ اﻟﺼﻔﺤﺔ ﺗﺤﺘﻮي ﻓﻘﻂ ﻋﻠﻰ آﻮد ﻟﻐﺔ‬،‫آﻤﺎ ﺗﺮون‬
. ‫وﻟﺬﻟﻚ ﻟﻢ یﺘﻢ آﺘﺎﺑﺔ رایﻂ ﺻﻔﺤﺔ اﻟﺮأس واﻟﺘﺬیﻴﻞ‬
.‫ وﺳﻮف ﺗﺮون آﻴﻒ أن اﻷﻣﺮ ﺳﻬﻞ‬، ‫ ﺟﺰﺉﺎ ﺟﺰﺉﺎ‬، Code ‫ﺳﺄﻗﻮم اﻵن ﺑﺸﺮح اﻟـ‬
: admin.asp‫اﺳﺘﻘﺒﺎل اﻟﻘﻴﻢ ﻣﻦ ﻥﻤﻮذج إدﺥﺎل اﺳﻢ اﻟﻤﺴﺘﺨﺪم واﻟﺮﻗﻢ اﻟﺴﺮي‬
‫آﻤﺎ هﻮ واﺽﺢ ﺳﻴﺴﺘﻘﺒﻞ هﺬا اﻟﺠﺰء‬
Name=Request.form("Name")
Name‫ وﺳﻴﻀﻊ اﻟﻘﻴﻤﺔ ﻓﻲ اﻟﻤﺘﻐﻴﺮ‬،‫اﺳﻢ اﻟﻤﺴﺘﺨﺪم ﻣﻦ ﻥﻤﻮذج اﻹدﺥﺎل‬

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


‫ﺻﻔﺤﺔ ‪٧٤‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫وﺳﻴﺴﺘﻘﺒﻞ هﺬا اﻟﺠﺰء‬


‫)"‪Pass=Request.form("Pass‬‬
‫اﻟﺮﻗﻢ اﻟﺴﺮي ﻣﻦ ﻥﻤﻮذج اﻹدﺥﺎل‪ ،‬وﺳﻴﻀﻊ اﻟﻘﻴﻤﺔ ﻓﻲ اﻟﻤﺘﻐﻴﺮ‪Pass‬‬

‫ﺵﺮح ﻟﺸﺮوط اﻟﺘﺤﻘﻖ ﻡﻦ ﺹﺤﺔ اﻟﻤﻌﻠﻮﻡﺎت اﻟﻤﺪﺧﻠﺔ ﻓﻲ اﻟﻨﻤﻮذج‬

‫‪-١‬‬
‫‪If Name = "" Then‬‬
‫)"‪response.redirect ("admin.asp?error=Name_Null‬‬

‫‪ If Name = "" Then‬هﺬا اﻟﺠﺰء ﺳﻴﺘﺤﻘﻖ إذا آﺎن اﺳﻢ اﻟﻤﺴﺘﺨﺪم یﺴﺎوي ﻓﺮاغ أي ﻟﻢ یﺪﺥﻞ اﻟﻤﺴﺘﺨﺪم اﺳ ﻤﺎ ﻓ ﻲ‬
‫ﻥﻤﻮذج اﻹدﺥﺎل‪ ،‬إذا آﺎن آﺬﻟﻚ ﻥﻔﺬ اﻷﻣﺮ اﻟﺘﺎﻟﻲ‪:‬‬
‫)"‪ ،response.redirect ("admin.asp?error=Name_Null‬أي اﻥﺘﻘﻞ إﻟﻰ ﻣﻠﻒ ‪ admin.asp‬إذا آﺎن اﺳﻢ‬
‫اﻟﻤﺴﺘﺨﺪم یﺴﺎوي ﻓﺮاغ‪ ،‬وأرﺳﻞ إﻟﻴﻪ آﺬﻟﻚ ﻣﺘﻐﻴﺮ اﺳﻤﻪ ‪ error‬یﺤﺘﻮى ﻋﻠﻰ ﻗﻴﻤﺔ ﺗﺴ ﺎوي ‪ ، Name_Null‬ﻟﻠﺪﻻﻟ ﺔ‬
‫ﻋﻠﻰ وﺟﻮد ﺥﻄﺄ وهﻮ ﻋﺪم إدﺥﺎل اﺳﻢ اﻟﻤﺴﺘﺨﺪم ﻓﻲ اﻟﻨﻤﻮذج‪.‬‬
‫اﻷﻣﺮ ‪ ، respons.redirect‬ﺗﻌﻨﻲ اﻥﺘﻘﻞ إﻟﻰ ﺻﻔﺤﺔ ﻣﻌﻴﻨﺔ‪ .‬ویﺠﺐ ﺗﺬآﺮ ﻋﻨﺪ اﺳ ﺘﺨﺪام ه ﺬا اﻷﻣ ﺮ ﻓ ﻲ أﻣﺜﻠ ﺔ أﺥ ﺮى‬
‫ﻓ ﻲ اﻟﻤﺴ ﺘﻘﺒﻞ ‪ ،‬یﺠ ﺐ أن یﻜ ﻮن ﻓ ﻮق >‪ ، <html‬وﺑﻤ ﺎ أن ه ﺬﻩ اﻟﺼ ﻔﺤﺔ ﻻ ﺗﺤﺘ ﻮي ﻋﻠ ﻰ >‪ <html‬ﻓﻠ ﻴﺲ ﻋﻠﻴﻨ ﺎ أن‬
‫ﻥﺒﺎﻟﻲ اﻵن ‪.‬ﺙﻢ ﻥﻜﺘﺐ ﺑﻴﻦ اﻷﻗﻮاس‪ ،‬اﺳﻢ اﻟﻤﻠﻒ اﻟﻤﺮاد اﻻﻥﺘﻘﺎل إﻟﻴﻪ‪ ،‬وهﻮ ﻓﻲ ﻣﺜﺎﻟﻨﺎ هﺬا‪(admin.asp).‬‬
‫وأردﻥ ﺎ أن ﻥﺮﺳ ﻞ ﻣ ﻊ اﻟﻤﻠ ﻒ ﻣﺘﻐﻴ ﺮ ﻟﻠﺪﻻﻟ ﺔ ﻋﻠ ﻰ وﺟ ﻮد ﺥﻄ ﺄ‪ .‬ﻓﻜﺘﺒﻨ ﺎ ‪ ، error=Name_Null‬أي أرﺳ ﻞ ﻣﺘﻐﻴ ﺮ‬
‫یﺤﻮي اﻟﻘﻴﻤﺔ ‪) ، Name_Null‬راﺟﻊ ﺻﻔﺤﺔ ‪ (admin.asp‬ﻟﻤﺮاﺟﻌﺔ آﻴﻔﻴﺔ اﺳﺘﻘﺒﺎل هﺬا اﻟﺨﻄﺄ واﻟﺘﻌﺎﻣﻞ ﻣﻌﻪ‪.‬‬
‫إذا آﺎن ‪ Name‬ﻻ یﺴﺎوي ﻓﺮاغ ‪ ،‬ﺳﻮف یﻨﺘﻘﻞ ﻟﻠﺘﺤﻘﻖ ﻣﻦ اﻟﺸﺮط اﻟﺘﺎﻟﻲ رﻗﻢ ‪.٢‬‬

‫‪-٢‬‬
‫‪If Pass = "" Then‬‬
‫)"‪response.redirect ("admin.asp?error=Pass_Null‬‬

‫‪ If Pass = "" Then‬هﺬا اﻟﺠﺰء یﺘﺤﻘﻖ إذا آﺎن اﻟﺮﻗﻢ اﻟﺴﺮي یﺴﺎوي ﻓﺮاغ أي ﻟﻢ یﺪﺥﻞ اﻟﻤﺴﺘﺨﺪم اﻟﺮﻗﻢ اﻟﺴﺮي‬
‫ﻓﻲ ﻥﻤﻮذج اﻹدﺥﺎل ‪.‬ﻓﻌﻨﺪ ﺗﺤﻘﻖ هﺬا اﻟﺸﺮط ﺳﻴﺘﻢ ﺗﻨﻔﻴﺬ اﻟﺸﺮط اﻟﺘﺎﻟﻲ‪:‬‬
‫)"‪ ،response.redirect ("admin.asp?error=Pass_Null‬أي اﻥﺘﻘ ﻞ إﻟ ﻰ ﻣﻠ ﻒ ‪ admin.asp‬إذا آ ﺎن‬
‫اﻟ ﺮﻗﻢ اﻟﺴ ﺮي یﺴ ﺎوي ﻓ ﺮاغ‪ ،‬وأرﺳ ﻞ إﻟﻴ ﻪ آ ﺬﻟﻚ ﻣﺘﻐﻴ ﺮ اﺳ ﻤﻪ ‪ error‬یﺤﺘ ﻮى ﻋﻠ ﻰ ﻗﻴﻤ ﺔ ﺗﺴ ﺎوي ‪، Pass_Null‬‬
‫ﻟﻠﺪﻻﻟﺔ ﻋﻠﻰ وﺟﻮد ﺥﻄﺄ وهﻮ ﻋﺪم إدﺥﺎل اﻟﺮﻗﻢ اﻟﺴﺮي ﻓﻲ اﻟﻨﻤﻮذج‪.‬‬
‫إذا آﺎن ‪ Pass‬ﻻ یﺴﺎوي ﻓﺮاغ‪ ،‬ﺳﻮف یﻨﺘﻘﻞ إﻟﻰ ﺗﺤﻘﻴﻖ اﻷﻣﻮر اﻟﺘﻲ ﺗﺤﺖ ‪ Else‬رﻗﻢ ‪٣‬‬

‫‪ -٣‬ﺳﻮف ﻥﻨﺘﻘﻞ اﻵن ﺑﻌﺪ ‪ Else‬إﻟﻰ اﻟﺘﺤﻘﻖ ﻣﻦ ﺗﻮاﻓﻖ اﻟﻤﻌﻠﻮﻣﺎت اﻟﻤﺪﺥﻠﺔ ﻓﻲ اﻟﻨﻤﻮذج ﻣﻊ اﻟﻤﻌﻠﻮﻣﺎت اﻟﻤﻮﺟﻮدة ﻓﻲ‬
‫ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت‪ .‬أي هﻞ اﺳﻢ اﻟﻤﺴﺘﺨﺪم واﻟﺮﻗﻢ اﻟﺴﺮي ﻣﻮﺟﻮدان ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت أم ﻻ‪.‬‬
‫ﻓﻨﺘﺼﻞ أوﻻ ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت‬
‫)"‪Set connectionToDatabase=Server.CreateObject("ADODB.Connection‬‬
‫‪connectionToDatabase.ConnectionTimeout=60‬‬
‫"‪connectionToDatabase.Open "DSN=my_data_base‬‬

‫ﺙﻢ ﻥﻜﺘﺐ أﻣﺮ اﻟﺒﺤﺚ ﻋﻦ اﻻﺳﻢ ﻓﻲ اﻟﺠﺪول ‪ ، admin‬ﺑﺤﻴﺚ یﺴﺎوي اﺳﻢ اﻟﻤﺴ ﺘﺨﺪم اﻟﻤ ﺪﺥﻞ ﻓ ﻲ اﻟﻨﻤ ﻮذج ‪ ،‬ﻓﺄﺽ ﻔﻨﺎ‬
‫اﻟﺸﺮط"'"&‪where name='"&Name‬‬
‫أي اﺳﺘﺨﺮج ﻟﻲ ﺳﺠﻼ ﻣ ﻦ ﺟ ﺪول ‪ ، admin‬ﺑﺤﻴ ﺚ یﻜ ﻮن اﻻﺳ ﻢ ﻓ ﻲ اﻟﺴ ﺠﻞ یﺴ ﺎوي اﻻﺳ ﻢ اﻟﻤ ﺪﺥﻞ ﻓ ﻲ اﻟﻨﻤ ﻮذج ‪.‬‬
‫ﺡﻴﺚ أن = ‪ where name‬هﺬا هﻮ اﻻﺳﻢ ﻓﻲ اﻟﺴﺠﻞ‪ ،‬وهﺬا '"& ‪ '"& Name‬اﻻﺳﻢ ﻣﻦ اﻟﻨﻤﻮذج‪.‬‬

‫"'"&‪SelectSql="Select * from admin where name='"&Name‬‬


‫)‪set rs=connectionToDatabase.execute (SelectSql‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٧٥‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫‪-٤‬‬
‫‪If rs.eof then‬‬
‫)"‪response.Redirect ("admin.asp?error=Name_Entry‬‬

‫‪:‬یﺘﺤﻘ ﻖ ه ﺬا اﻟﺸ ﺮط إذا آ ﺎن اﻟﻤﺘﻐﻴ ﺮ )‪ (rs‬وه ﺬا ﻣ ﻦ ﻥ ﻮع ﺥ ﺎص ﻻﺳ ﺘﻘﺒﺎل اﻟﺒﻴﺎﻥ ﺎت ﻣ ﻦ ﻗﺎﻋ ﺪة اﻟﺒﻴﺎﻥ ﺎت‬
‫یﺴ ﺎوي ‪ ،(EOF) :End Of File‬أي أن اﻟﻤﺘﻐﻴ ﺮ ﻣﻨﺘﻬ ﻲ وﻟ ﻢ یﺴ ﺘﺮﺟﻊ أي ﺳ ﺠﻞ ﻣ ﻦ اﻟﺠ ﺪول ﻟﻌ ﺪم وﺟ ﻮد ﺳ ﺠﻞ‬
‫یﺴﺎوي اﻻﺳﻢ ﻓﻴﻪ اﻻﺳﻢ اﻟﻤﺪﺥﻞ ﻓﻲ اﻟﻨﻤﻮذج ‪.‬ﻓﻌﻨﺪ ﺗﺤﻘﻖ هﺬا اﻟﺸﺮط ‪ ،‬ﺳﻴﺘﻨﻔﺬ هﺬا اﻷﻣﺮ‬
‫)"‪response.Redirect ("admin.asp?error=Name_Entry‬‬
‫أي اﻥﺘﻘﻞ إﻟﻰ اﻟﻤﻠﻒ ‪ ، admin.asp‬وأرﺳﻞ ﻟﻪ ﻣﺘﻐﻴﺮ ‪ error‬واﻟ ﺬي یﺤﺘ ﻮي ﻋﻠ ﻰ اﻟﻘﻴﻤ ﺔ ‪ ، Name_Enry‬ﻟﻠﺪﻻﻟ ﺔ‬
‫ﻋﻠﻰ وﺟﻮد ﺥﻄﺄ ﻓﻲ اﺳﻢ اﻟﻤﺴﺘﺨﺪم اﻟﺬي ﺗﻢ إدﺥﺎﻟﻪ‪.‬‬
‫أﻣﺎ إذا آﺎن اﻟﻤﻠﻒ ﻟﻴﺲ ‪ ، EOF‬أي أﻥﻪ یﺤﺘﻮي ﻋﻠﻰ ﺳﺠﻞ ﻣﺴﺘﺮﺟﻊ ﻣﻦ ﺟﺪول ‪ admin‬اﻥﺘﻘﻞ إﻟﻰ اﻟﺸﺮط رﻗﻢ ‪.٥‬‬

‫‪-٥‬‬
‫‪If rs("pass") <> pass Then‬‬
‫)"‪response.redirect ("admin.asp?error=Pass_Entry‬‬

‫‪ If rs("pass") <> pass Then‬یﺘﺤﻘ ﻖ ه ﺬا اﻟﺸ ﺮط ﻣ ﻦ أن اﻟ ﺮﻗﻢ اﻟﺴ ﺮي اﻟﻤ ﺪﺥﻞ ﻓ ﻲ اﻟﻨﻤ ﻮذج یﺴ ﺎوي اﻟ ﺮﻗﻢ‬
‫اﻟﺴﺮي اﻟﻤﻮﺟﻮد ﻓﻲ اﻟﺠﺪول ‪.‬إذا آﺎﻥﺎ ﻏﻴﺮ ﻣﺘﺴﺎویﺎن‪ ،‬ﺳﻴﺘﺤﻘﻖ اﻟﺸﺮط وﺳﻴﻨﻔﺬ هﺬا اﻷﻣﺮ‬
‫)"‪ ،response.redirect ("admin.asp?error=Pass_Entry‬أي اﻥﺘﻘ ﻞ إﻟ ﻰ ﺻ ﻔﺤﺔ ‪ admin.asp‬ﺑﺈﺽ ﺎﻓﺔ‬
‫اﻟﻤﺘﻐﻴﺮ ‪ error‬واﻟﺬي یﺤﺘﻮي ﻗﻴﻤﺔ ‪ ، Pass_Entry‬ویﺪل ﻋﻠﻰ أن اﻟﺮﻗﻢ اﻟﺴﺮي اﻟﻤﺪﺥﻞ ﺥﻄﺄ‪.‬‬
‫أﻣﺎ إذا آﺎن اﻷﻣﺮ اﻟﺴﺮي اﻟﻤﺪﺥﻞ ﺻﺤﻴﺢ ‪ ،‬اﻥﺘﻘﻞ إﻟﻰ ‪ Else‬رﻗﻢ ‪٦‬‬

‫‪-٦‬‬
‫‪Else‬‬
‫)"‪Name_Cooky= request.cookies("Name‬‬

‫ﺑﻌﺪ أن ﺗﺄآﺪﻥﺎ ﻣﻦ ﺻﺤﺔ اﺳﻢ اﻟﻤﺴﺘﺨﺪم واﻟﺮﻗﻢ اﻟﺴﺮي‪ ،‬ﺳﻨﻘﻮم ﺑﺤﻔﻆ اﺳﻢ اﻟﻤﺴ ﺘﺨﺪم ﻓ ﻲ ﻣﺘﻐﻴ ﺮ ﺙﺎﺑ ﺖ ﺑ ﻴﻦ اﻟﺼ ﻔﺤﺎت‬
‫یﺴﻤﻰ آﻮآﻲ ‪ ، Cooky‬ﻟﻠﺘﺄآﺪ ﻓﻴﻤﺎ ﺑﻌﺪ ﻓﻲ اﻟﺼﻔﺤﺎت اﻷﺥﺮى ﻣﻦ أن اﻟﺸﺨﺺ ﻗﺪ ﻗﺎم ﺑﺈدﺥﺎل اﺳﻢ اﻟﻤﺴﺘﺨﺪم واﻟﺮﻗﻢ‬
‫اﻟﺴﺮي ﻓﻲ اﻟﺒﺪایﺔ‪.‬‬
‫ﻓﺴﻨﻘﻮم أوﻻ ﺑﻘﺮاءة ﻗﻴﻤﺔ اﻻﺳﻢ ﻣﻦ اﻟﻜﻮآﻲ ﺑﻬﺬا اﻷﻣﺮ )"‪Name_Cooky= request.cookies("Name‬‬
‫ﻓ ـ‪ Name_Cooky= request.cookies‬یﻌﻨ ﻲ اﺳ ﺘﺨﺮج ﻟ ﻲ ﻗﻴﻤ ﺔ اﻟﻜ ﻮآﻲ اﻟ ﺬي اﺳ ﻤﻪ ‪، Name_Cooky‬‬
‫ﻓﺎﻟﻜﻠﻤﺔ ‪ request‬ﺗﻌﻨﻲ ﻃﻠﺐ اﻟﻜﻮآﻲ ‪.‬ﺙﻢ ﺽﻌﻪ ﻓﻲ اﻟﻤﺘﻐﻴﺮ ‪ Name_Cooky.‬ﺙﻢ ﺳﻨﻨﺘﻘﻞ ﻟﻠﺸﺮط اﻟﺴﺎﺑﻊ‪.‬‬

‫‪-٧‬‬
‫‪If Name_Cooky <> Name then‬‬
‫‪response.cookies ("Name")=Name‬‬
‫‪End IF‬‬

‫‪ If Name_Cooky <> Name then‬ﺳﻨﺨﺘﺒﺮ هﻞ اﻻﺳﻢ اﻟﻤﺪﺥﻞ ﻓ ﻲ اﻟﻨﻤ ﻮذج ‪ ، Name‬یﺴ ﺎوي اﻟﻜ ﻮآﻴﺰ‪ .‬إذا‬
‫ﻟﻢ یﻜﻦ یﺴﺎوي‪ ،‬اﺡﻔﻆ اﻻﺳﻢ اﻟﻤﺪﺥﻞ ﻣﻦ اﻟﻨﻤﻮذج ﻓﻲ اﻟﻜﻮآﻲ وﺳﺘﻜﻮن اﻟﻘﻴﻤﺔ ﺙﺎﺑﺘﺔ ﺑﻴﻦ اﻟﺼﻔﺤﺎت‪ ،‬ﺡﺘﻰ ﻥﻌﺮﻓ ﻪ ﻓﻴﻤ ﺎ‬
‫ﺑﻌﺪ ﻋﻨﺪ اﻟﺘﻨﻘﻞ ﺑﻴﻦ اﻟﺼﻔﺤﺎت وﻥﻜﺘﺐ أﻣﺮ اﻟﺤﻔﻆ ﺑﻬﺬﻩ اﻟﻄﺮیﻘﺔ‪response.cookies ("Name") = Name‬‬
‫أي ﺥﺬ اﻟﻘﻴﻤﺔ ﻣﻦ ‪ Name‬واﺡﻔﻈﻬﺎ ﻓﻲ اﻟﻜﻮآﻲ ‪ Name .‬ﻓﺎﻟﻜﻠﻤﺔ ‪ response‬هﻨﺎ ﺗﻌﻨ ﻲ ﺡﻔ ﻆ اﻟﻘﻴﻤ ﺔ ﻓ ﻲ اﻟﻜ ﻮآﻲ ‪.‬‬
‫وهﺬا اﻟﻜﻮآﻲ ﺗﻨﺘﻬﻲ ﺻﻼﺡﻴﺘﻪ‪ ،‬أي یﺨﺘﻔﻲ ﻋﻨﺪ إﻏﻼق اﻟﻤﺴﺘﺨﺪم ﻟﺼﻔﺤﺎت اﻹﻥﺘﺮﻥﺖ آﻠﻬﺎ‪.‬‬
‫وﺑﻌﺪ اﻟﺸﺮط ‪ ،‬اﺳﺘﺨﺪﻣﻨﺎ هﺬا اﻷﻣﺮ‬
‫)"‪response.Redirect ("adminsection.asp‬‬
‫وهﻮ یﻌﻨﻲ ﺑﻌﺪ ﺗﻜﻮیﻦ اﻟﻜﻮآﻲ ‪ ،‬اﻵن یﻤﻜﻨﻚ اﻟﺪﺥﻮل ﻋﻠﻰ ﺻﻔﺤﺔ إدارة اﻟﻤﻮﻗﻊ ‪adminsection.asp‬‬
‫ﻓﺴﻴﻨﻘﻞ هﺬا اﻷﻣﺮ اﻟﻤﺴ ﺘﺨﺪم إﻟ ﻰ ﺻ ﻔﺤﺔ ‪ adminsection.asp‬ﺗﻠﻘﺎﺉﻴ ﺎ‪ ،‬ﺑﻌ ﺪ اﻟﺘﺄآ ﺪ ﻣ ﻦ ﺻ ﺤﺔ اﻟﻤﻌﻠﻮﻣ ﺎت وﺗﻜ ﻮیﻦ‬
‫اﻟﻜﻮآﻲ‪.‬‬
‫ﺙﻢ ﺑﻌﺪ ذﻟﻚ ﻥﻘﻮم ﺑﺈﻏﻼق ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٧٦‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫واﻵن إﻟﻴﻚ اﻟﺼﻔﺤﺎت اﻟﺘﻮﺽﻴﺤﻴﺔ‬


‫أوﻻ أﺡﺐ أن أذآﺮك أن اﻻﺳﻢ وآﻠﻤﺔ اﻟﻤﺮور اﻟﻤﺴﺠﻠﺔ ﺟﺪول ‪ admin‬هﻲ‬

‫ﻋﻨﺪ اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺮاﺑﻂ )إدارة اﻟﻤﻮﻗﻊ( ﺙﻢ اﻟﻀﻐﻂ ﻋﻠﻰ ﻣﻔﺘﺎح )دﺥﻮل( وﻟﻜﻦ ﻟﻢ یﺘﻢ إدﺥﺎل ) اﺳﻢ اﻟﻤﺴﺘﺨﺪم(‬
‫ﻓﺴﺘﻜﻮن اﻟﻨﺘﻴﺠﺔ آﺎﻟﺘﺎﻟﻲ ‪:‬‬

‫وﻋﻨﺪ إدﺥﺎل )اﺳﻢ اﻟﻤﺴﺘﺨﺪم( وﻟﻢ یﺘﻢ إدﺥﺎل )آﻠﻤﺔ اﻟﻤﺮور( ﻓﺴﺘﻜﻮن اﻟﻨﺘﻴﺠﺔ آﺎﻟﺘﺎﻟﻲ ‪:‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٧٧‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫وﻋﻨﺪ إدﺥﺎل )اﺳﻢ اﻟﻤﺴﺘﺨﺪم( ﺥﻄﺄ وﺗﻢ إدﺥﺎل )آﻠﻤﺔ اﻟﻤﺮور( ﻓﺴﺘﻜﻮن اﻟﻨﺘﻴﺠﺔ آﺎﻟﺘﺎﻟﻲ ‪:‬‬

‫وﻋﻨﺪ إدﺥﺎل )اﺳﻢ اﻟﻤﺴﺘﺨﺪم( ﺻﺤﻴﺢ و إدﺥﺎل )آﻠﻤﺔ اﻟﻤﺮور( ﺥﻄﺄ ﻓﺴﺘﻜﻮن اﻟﻨﺘﻴﺠﺔ آﺎﻟﺘﺎﻟﻲ ‪:‬‬

‫وﻋﻨ ﺪ إدﺥ ﺎل )اﺳ ﻢ اﻟﻤﺴ ﺘﺨﺪم( ﺻ ﺤﻴﺢ و إدﺥ ﺎل )آﻠﻤ ﺔ اﻟﻤ ﺮور( ﺻ ﺤﻴﺤﺔ ﻓﺴ ﻴﻨﺘﻘﻞ إﻟ ﻰ ﺻ ﻔﺤﺔ إدارة اﻟﻤﻮﻗ ﻊ‬
‫‪adminsection.asp‬‬
‫وﺑ ﺬﻟﻚ ﻥﻜ ﻮن ﻗ ﺪ اﻥﺘﻬﻴﻨ ﺎ ﻣ ﻦ ﺗﺼ ﻤﻴﻢ ﺻ ﻔﺤﺔ اﻟﺘﺄآ ﺪ ﻣ ﻦ ﺻ ﺤﺔ اﻟﺒﻴﺎﻥ ﺎت ) اﺳ ﻢ اﻟﻤﺴ ﺘﺨﺪم وآﻠﻤ ﺔ اﻟﻤ ﺮور(‬
‫‪validentry.asp‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


٧٨ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

(adminsection.asp) ‫ﺘﺼﻤﻴﻡ ﺼﻔﺤﺔ ﺇﺩﺍﺭﺓ ﺍﻟﻤﻭﻗﻊ‬

‫وﻓ ﻲ ه ﺬﻩ اﻟﺼ ﻔﺤﺔ ﺳ ﻨﺤﺘﺎج آ ﺬﻟﻚ ﻟﻠﺘﺄآ ﺪ ﻣ ﻦ‬. ‫وهﻲ اﻟﺼﻔﺤﺔ اﻟﺘﻲ ﺳﻴﺴﻤﺢ ﺑﺎﻟﺪﺥﻮل إﻟﻴﻬ ﺎ ﻟﻠﻘﻴ ﺎم ﺑﻤﻬ ﺎم إدارة اﻟﻤﻮﻗ ﻊ‬
‫ اﻟ ﺬي أﻥﺸ ﺄﻥﺎﻩ ﻓ ﻲ ﺻ ﻔﺤﺔ‬Cooky ‫ ﻟ ﺬﻟﻚ ﺳ ﻨﺨﺘﺒﺮ‬.‫إدﺥ ﺎل اﻟﻤﺴ ﺘﺨﺪم اﻻﺳ ﻢ واﻟ ﺮﻗﻢ اﻟﺴ ﺮي ﺑﺸ ﻜﻞ ﺻ ﺤﻴﺢ‬
Code ‫وهﺬا هﻮ اﻟـ‬validentry.asp

<html> ‫ وﺽﻌﺖ ﻗﺒﻞ اﻟﻮﺳﻢ‬cookies ‫ﻡﻊ ﻡﻼﺣﻈﺔ أن ﻣﻜﺎن اﻟـ‬

<%
Name_Cooky=Request.cookies("Name")
If Name_Cooky="" Then
response.redirect ("admin.asp")
End If
%>
<html dir="rtl">
<head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<إدارة اﻟﻤﻮﻗﻊ‬/title>
</head>
<body>
<!--#include file="pageheader.asp" -->

<!--#include file="pagefooter.asp" -->


</body></html>

‫ﺑﺬﻟﻚ ﻟﻦ یﺴﺘﻄﻴﻊ أي ﺵﺨﺺ اﻟﺪﺥﻮل ﻋﻠﻰ هﺬﻩ اﻟﺼﻔﺤﺔ إﻻ إذا دﺥﻞ ﻋﻠﻰ اﻟﻤﻮﻗﻊ ﺑﺎﻻﺳﻢ واﻟﺮﻗﻢ اﻟﺴﺮي ﺑﺸﻜﻞ‬
‫ ﻟﻄﻠﺐ ﺗﻠﻚ اﻟﻤﻌﻠﻮﻣﺎت‬admin.asp ‫ﺻﺤﻴﺢ وإﻻ ﻓﺈن اﻟﺼﻔﺤﺔ ﺳﺘﻨﻘﻠﻪ إﻟﻰ ﺻﻔﺤﺔ‬

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


‫ﺻﻔﺤﺔ ‪٧٩‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﻋﻨﺪ إدﺥﺎل )اﺳﻢ اﻟﻤﺴﺘﺨﺪم( ﺻﺤﻴﺢ و إدﺥﺎل )آﻠﻤﺔ اﻟﻤﺮور( ﺻﺤﻴﺤﺔ‬

‫ﻓﺴﻴﻨﺘﻘﻞ إﻟﻰ ﺻﻔﺤﺔ إدارة اﻟﻤﻮﻗﻊ ‪adminsection.asp‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٨٠‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫یﻤﻜﻨﻚ اﻵن إﺽﺎﻓﺔ ﻡﺎ ﺗﺸﺎء ﻓﻲ هﺬﻩ اﻟﺼﻔﺤﺔ ‪ .adminsection.asp‬وأﻗﺘﺮح إﺽﺎﻓﺔ اﻷﻗﺴﺎم اﻟﺘﺎﻟﻴﺔ‪:‬‬

‫)‪(add_news.asp‬‬ ‫‪ -١‬إﺽﺎﻓﺔ أﺧﺒﺎر‪:‬‬


‫• أﺥﺒﺎر ﻋﺎﻣﺔ‪.‬‬
‫• أﺥﺒﺎر ﺗﻘﻨﻴﺔ‪.‬‬
‫‪ -٢‬ﺗﻌﺪیﻞ ‪ /‬ﻡﺴﺢ اﻷﺧﺒﺎر‪(news_list.asp) :‬‬
‫• أﺥﺒﺎر ﻋﺎﻣﺔ‪.‬‬
‫• أﺥﺒﺎر ﺗﻘﻨﻴﺔ‪.‬‬
‫) ‪( guest_list.asp‬‬ ‫‪ -٣‬إدارة ﺱﺠﻞ اﻟﺰوار‪.‬‬
‫)‪(change_admin_password.asp‬‬ ‫‪ -٤‬ﺗﻐﻴﻴﺮ آﻠﻤﺔ اﻟﻤﺮور‪.‬‬
‫) ‪( add_admin_users.asp‬‬ ‫‪ -٥‬إﺽﺎﻓﺔ ﻣﺸﺮﻓﻴﻦ‪.‬‬
‫)‪(admin_users_display.asp‬‬ ‫‪ -٦‬ﻣﺴﺢ ﻣﺸﺮﻓﻴﻦ‪.‬‬
‫اﻟﺸﻜﻞ اﻟﻤﻘﺘﺮح‪ :‬ﻟﺼﻔﺤﺔ ‪.adminsection.asp‬‬

‫آﻤﺎ ﺗﺮى ﺗﻢ وﺽﻊ اﻟﺮواﺑﻂ ﻓﻲ ﺟﺪول ﻟﻤﺰیﺪ ﻡﻦ اﻟﺘﻨﺴﻴﻖ‬


‫وﺗ ﻢ رﺑ ﻂ اﻟ ﺮاﺑﻂ )إﺽ ﺎﻓﺔ اﻷﺥﺒ ﺎر( ﺑﺎﻟﺼ ﻔﺤﺔ )‪ (add_news.asp‬واﻟ ﺮاﺑﻂ) ﺗﻌ ﺪیﻞ أو ﻣﺴ ﺢ اﻷﺥﺒ ﺎر(ﺑﺎﻟﺼ ﻔﺤﺔ‬
‫)‪ (news_list.asp‬واﻟ ﺮاﺑﻂ )إدارة ﺳ ﺠﻞ اﻟ ﺰوار( ﺑﺎﻟﺼ ﻔﺤﺔ ) ‪ ( guest_list.asp‬واﻟ ﺮاﺑﻂ )إﺽ ﺎﻓﺔ ﻣﺸ ﺮﻓﻴﻦ ( ﺑﺎﻟﺼ ﻔﺤﺔ‬
‫)‪ (add_admin_users.asp‬واﻟ ﺮاﺑﻂ )ﺡ ﺬف ﻣﺸ ﺮﻓﻴﻦ( ﺑﺎﻟﺼ ﻔﺤﺔ )‪ (admin_users_display.asp‬واﻟ ﺮاﺑﻂ )ﺗﻐﻴﻴ ﺮ آﺎﻣ ﺔ‬
‫اﻟﻤﺮور( ﺑﺎﻟﺼﻔﺤﺔ ‪change_admin_password.asp‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٨١‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﺗﺼﻤﻴﻢ ﺹﻔﺤﺔ إﺽﺎﻓﺔ اﻷﺧﺒﺎر‪(add_news.asp) .‬‬

‫واﻵن ﺳ ﻴﺘﻢ ﺗﺼ ﻤﻴﻢ ﺻ ﻔﺤﺔ إﺽ ﺎﻓﺔ اﻷﺥﺒ ﺎر‪ (add_news.asp) .‬واﻟﺘ ﻲ ﻻ ﺗﺨﺘﻠ ﻒ آﺜﻴ ﺮا ﻋ ﻦ ﺻ ﻔﺤﺔ اﻟﺘﻮﻗﻴ ﻊ ﻓ ﻲ‬
‫ﺳﺠﻞ اﻟﺰوار‪.‬‬
‫ﺳﻨﺴﺘﺨﺪم ﻥﻔﺲ اﻟﻤﺒﺎدئ اﻟﺘﻲ ﺗﻌﻠﻤﻨﺎهﺎ ﻋﻨﺪ إﻥﺸﺎء ﺻﻔﺤﺔ إﺽﺎﻓﺔ ﺗﻮﻗﻴﻊ ﻓﻲ ﺳﺠﻞ اﻟﺰوار‬
‫ﻟﺘﺼﻤﻴﻢ هﺬﻩ اﻟﺼﻔﺤﺔ أﻥﺸﺊ ﺻﻔﺤﺔ ﺟﺪیﺪ ة ﺑﺎﺳﻢ ‪ (add_news.asp).‬واﻟﺸﻜﻞ اﻟﻌﺎم ﺳﻴﻜﻮن آﺎﻟﺘﺎﻟﻲ‪:‬‬

‫و اﻟﻘﺎﺋﻤﺔ اﻟﻤﻨﺴﺪﻟﺔ ﺗﺤﺘﻮى ﻋﻠﻰ‬

‫أﺱﻤﺎء اﻟﺤﻘﻮل هﻲ‪:‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٨٢‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫• ‪section‬ﻟﻠﻘﺎﺉﻤﺔ اﻟﻤﻨﺴﺪﻟﺔ ‪.‬‬


‫• ‪subject‬ﻟﻠﻌﻨﻮان ‪.‬‬
‫• ‪body‬ﻟﻠﻤﺤﺘﻮى ‪.‬‬
‫ﺳﻮف یﺘﻢ ﺗﺼﻤﻴﻢ اﻟﺸﻜﻞ اﻟﺴﺎﺑﻖ ﺑﺎﻟﻔﺮوﻥﺖ ﺑﻴﺞ‬
‫ﺳﻨﺴﺘﻌﺮض اﻵن اﻟﻔﺮو ﻗﺎت ﺑﻴﻦ هﺬﻩ اﻟﺼﻔﺤﺔ وﺻﻔﺤﺔ ﺳﺠﻞ اﻟﺰوار‪:‬‬
‫أوﻻ ‪ :‬ﺗﻢ إﺽﺎﻓﺔ اﻟﻘﺴﻢ )‪ (section‬واﺳﺘﺨﺪﻣﻨﺎ ﻓﻴﻪ اﻟﻘﺎﺉﻤﺔ اﻟﻤﻨﺴﺪﻟﺔ )ﻣﺮﺑﻊ ﻣﻨﺴﺪل( ‪.‬ﻣﻊ ﻣﻼﺡﻈﺔ ﺗﻌﺪیﻞ ﺥﺼﺎﺉﺼﻪ‪:‬‬
‫ﻓﻌﻨﺪ إﺽﺎﻓﺔ اﻟﻘﻴﻢ ﻟﻠﻘﺎﺉﻤﺔ اﻟﻤﻨﺴﺪﻟﺔ )ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ زر )إﺽﺎﻓﺔ( ﺳﺘﻈﻬﺮ ﻟﻨﺎ اﻟﺸﺎﺵﺔ اﻟﺘﺎﻟﻴﺔ‪:‬‬

‫ﻥﻀﻊ إﺵﺎرة ﺻﺢ أﻣﺎم )ﺗﺤﺪیﺪ اﻟﻘﻴﻤﺔ( ﺙﻢ ﻥﻜﺘﺐ اﻟﻘﻴﻤ ﺔ)‪ (general_news‬اﻟﺘ ﻲ ﺳ ﻴﺘﻢ إرﺳ ﺎﻟﻬﺎ ﻣ ﻦ ﻃﺮی ﻖ اﻟﻨﻤ ﻮذج‬
‫وهﺬﻩ اﻟﻘﻴﻤﺔ ﺗﻤﺜّﻞ‪ :‬اﺳﻢ اﻟﺠﺪول اﻟﺬي یﺤﺘﻮي ﻋﻠﻰ هﺬﻩ اﻟﻨﻮﻋﻴ ﺔ ﻣ ﻦ اﻷﺥﺒ ﺎر ﻓ ﻲ ﻗﺎﻋ ﺪة اﻟﺒﻴﺎﻥ ﺎت‪ .‬وﻟﻔﻬ ﻢ ﺳ ﺒﺐ ﻗﻴﺎﻣﻨ ﺎ‬
‫ﺑﺬﻟﻚ‪ ،‬یﺠﺐ ﻣﻌﺮﻓﺔ اﻟﻐﺮض ﻣﻦ اﺳﺘﺨﺪام اﻟﻘﺎﺉﻤﺔ اﻟﻤﻨﺴﺪﻟﺔ ﻓﻲ هﺬا اﻟﻤﻮﻗﻊ‪.‬‬
‫ﺗﻌﻠﻤﻨﺎ ﺳﺎﺑﻘﺎ أن أﻣﺮ ‪ Add‬ﻟﻺﺽﺎﻓﺔ ﺑﻴﺎﻥﺎت ﻟﻠﻘﺎﻋﺪة‪ ،‬یﺘﻄﻠﺐ ﺗﺤﺪیﺪ‪:‬‬
‫‪ -١‬اﺳﻢ اﻟﺠﺪول اﻟﻤﻄﻠﻮب إﺽﺎﻓﺔ اﻟﺒﻴﺎﻥﺎت ﻓﻴﻪ‪.‬‬
‫‪ -٢‬اﺳﻢ آﻞ ﺡﻘﻞ ﻓﻲ اﻟﺠﺪول‪.‬‬
‫‪ -٣‬اﻟﻘﻴﻤﺔ اﻟﻤﻄﻠﻮب إدراﺟﻬﺎ ﻓﻲ آﻞ ﺡﻘﻞ‪.‬‬
‫ﻓﻲ ﺡﺎﻟﺘﻨﺎ ه ﺬﻩ ﻟ ﺪیﻨﺎ ﺟ ﺪوﻟﻴﻦ وﻟ ﻴﺲ ﺟ ﺪوﻻ واﺡ ﺪا‪ ..‬ﺟ ﺪول یﻀ ﻢ اﻷﺥﺒ ﺎر اﻟﻌﺎﻣ ﺔ وه ﻮ )‪ ،(general_news‬وﺁﺥ ﺮ‬
‫ﻟﻸﺥﺒ ﺎر اﻟﺘﻘﻨﻴ ﺔ وه ﻮ )‪ .(tech_news‬ﺑﺎﻹﻣﻜ ﺎن ﺗﺼ ﻤﻴﻢ ﺻ ﻔﺤﺔ ﻹﺽ ﺎﻓﺔ اﻷﺥﺒ ﺎر ﻋﺎﻣ ﺔ‪ ،‬وﺻ ﻔﺤﺔ أﺥ ﺮى ﻹﺽ ﺎﻓﺔ‬
‫اﻷﺥﺒﺎر اﻟﺘﻘﻨﻴﺔ‪ .‬ﻟﻜﻦ اﻷﻓﻀﻞ ﻣﻦ ذﻟﻚ‪ ،‬هﻮ ﺗﺼﻤﻴﻢ ﺻﻔﺤﺔ واﺡﺪة )ﻣﺮﻥﺔ( یﻤﻜﻦ ﻣﻦ ﺥﻼﻟﻬﺎ ﺗﺤﺪیﺪ اﻟﺠﺪول اﻟ ﺬي ﻥﺮی ﺪ‬
‫إﺽﺎﻓﺔ اﻟﻤﻘﺎﻻت ﻓﻴﻪ‪ .‬ویﺘﻢ ذﻟﻚ ﺑﺎﺳﺘﺨﺪام اﻟﻘﺎﺉﻤﺔ اﻟﻤﻨﺴﺪﻟﺔ‪.‬‬
‫ﻓﻲ اﻟﻨﻬﺎیﺔ ﺳﺘﻈﻬﺮ ﺥﺼﺎﺉﺺ اﻟﻘﺎﺉﻤﺔ اﻟﻤﻨﺴﺪﻟﺔ ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ‪:‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


٨٣ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

‫ وهﻲ ﻥﻔﺲ‬،‫ ﻣﻦ ﺥﻼل )ﺥﺼﺎﺉﺺ اﻟﻨﻤﻮذج( یﺘﻢ ﺗﺤﺪیﺪ اﻟﺼﻔﺤﺔ اﻟﺘﻲ ﺳﻴﺘﻢ إرﺳﺎل اﻟﻘﻴﻢ إﻟﻴﻬﺎ ﻟﻠﻤﻌﺎﻟﺠﺔ‬،‫أﺥﻴﺮا‬
: add_news.asp ‫اﻟﺼﻔﺤﺔ اﻟﺘﻲ ﺗﺤﺘﻮي ﻋﻠﻰ اﻟﻨﻤﻮذج‬
: ‫واﻟﻴﻚ اﻵن اﻟﻜﻮد‬

<%
Name_Cooky=Request.cookies("Name")
If Name_Cooky="" Then
response.redirect ("admin.asp")
End If
%>
<html dir="rtl"><head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<إﺽﺎﻓﺔ اﻷﺥﺒﺎر‬/title>
</head><body>
<!--#include file="pageheader.asp" -->
<form method="POST" action="add_news.asp">
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse"
bordercolor="#111111" width="100%" id="AutoNumber1">
<tr>
<td width="11%" align="justify"><b>‫ اﻟﻘﺴــﻢ‬:</b></td>
<td width="89%"><select size="1" name="section">
<option value="general_news">‫<أﺥﺒﺎر ﻋﺎﻣﺔ‬/option>
<option value="tech_news">‫<أﺥﺒﺎر ﺗﻘﻨﻴﺔ‬/option>
</select></td>
</tr>
<tr>
<td width="11%" align="justify"><b>‫ اﻟﻌﻨـﻮان‬:</b></td>
<td width="89%"><input type="text" name="subject" size="50"></td>
</tr>
<tr>
<td width="11%" align="justify"><b>‫ اﻟﻤﺤﺘﻮى‬:</b></td>
<td width="89%"><textarea rows="6" name="body" cols="40"></textarea></td>
</tr>
</table>
<p><input type="submit" value="‫ "إﺽﺎﻓﺔ‬name="add"><span lang="en-us">&nbsp;&nbsp;&nbsp;
</span><input type="reset" value="‫ "إﻋﺎدة ﺗﻌﻴﻴﻦ‬name="B2"></p>
</form>
<!--#include file="pagefooter.asp" -->
</body></html>

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


‫ﺻﻔﺤﺔ ‪٨٤‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


٨٥ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

.‫ وﺳﻨﺸﺮح اﻷواﻣﺮ اﻟﺠﺪیﺪة‬ASP .. ‫ ﻥﻨﺘﻘﻞ اﻵن إﻟﻰ آﺘﺎﺑﺔ أواﻣﺮ‬،‫ﺑﻌﺪ ﺗﺼﻤﻴﻢ اﻟﻨﻤﻮذج‬
<%
Name_Cooky=Request.cookies("Name")
If Name_Cooky="" Then
response.redirect ("admin.asp")
End If
%>
<html dir="rtl"><head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<إﺽﺎﻓﺔ اﻷﺥﺒﺎر‬/title></head><body><!--#include file="pageheader.asp" -->
<%
Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
connectionToDatabase.Open "DSN=my_data_base"

section=request.form("section")
subject=request.form("subject")
body=request.form("body")

Function AddF()
addSQL= " insert into "&section&" (subject,body) values ('"&subject&"','"&body&"')"
connectionToDatabase.execute(addSQL)
%><p><b><font face="Simplified Arabic" size="3" color="#00FF00"> ‫ ﻟﻘﺪ ﺗﻢ إﺽﺎﻓﺔ اﻟﺨﺒﺮ‬..‫ﺵﻜﺮا ﻟﻚ‬
‫<ﺑﻨﺠﺎح‬/font></b></p><%
End Function

If subject="" or body="" then


response.write "<b><font color=#FF8040>‫< ﻣﻦ ﻓﻀﻠﻚ یﺠﺐ ﺗﻌﺒﺌﺔ ﺟﻤﻴﻊ اﻟﺤﻘﻮل‬/font></b>"
Else
AddF()
End If
%>
<form method="POST" action="add_news.asp">
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111"
width="100%" id="AutoNumber1">
<tr>
<td width="11%" align="justify"><b>‫ اﻟﻘﺴــﻢ‬:</b></td>
<td width="89%"><select size="1" name="section">
<option value="general_news">‫<أﺥﺒﺎر ﻋﺎﻣﺔ‬/option>
<option value="tech_news">‫<أﺥﺒﺎر ﺗﻘﻨﻴﺔ‬/option>
</select></td>
</tr>
<tr>
<td width="11%" align="justify"><b>‫ اﻟﻌﻨـﻮان‬:</b></td>
<td width="89%"><input type="text" name="subject" size="50"></td>
</tr>
<tr>
<td width="11%" align="justify"><b>‫ اﻟﻤﺤﺘﻮى‬:</b></td>
<td width="89%"><textarea rows="6" name="body" cols="40"></textarea></td>
</tr>
</table>
<p><input type="submit" value="‫ "إﺽﺎﻓﺔ‬name="add"><span lang="en-us">&nbsp;&nbsp;&nbsp;
</span><input type="reset" value="‫ "إﻋﺎدة ﺗﻌﻴﻴﻦ‬name="B2"></p>
</form>
<% connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>
<!--#include file="pagefooter.asp" --></body></html>

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


‫ﺻﻔﺤﺔ ‪٨٦‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫اﻟﺠﺰء اﻷول‬

‫اﻟﺠﺰء اﻟﺜﺎﻥﻲ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٨٧‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫اﻵن ﺟﺎء دور ﺵﺮح اﻷآﻮاد اﻟﺠﺪیﺪة‬

‫ﺃﻭﻻ‪ :‬ﻫﻨﺎﻟﻙ ﺍﺨﺘﻼﻑ ﺒﺴﻴﻁ ﻓﻲ ﺠﻤﻠﺔ ‪ addSQL‬ﻋﻤﺎ ﻜﺘﺒﻨﺎﻩ ﺴﺎﺒﻘﺎ ﻓﻲ ﺼﻔﺤﺔ ﺇﻀﺎﻓﺔ ﺍﻟﺘﻭﺍﻗﻴﻊ ﻟﺴﺠل ﺍﻟﺯﻭﺍﺭ‪ ،‬ﻓﻔﻲ‬
‫ﺴﺠل ﺍﻟﺯﻭﺍﺭ ﺤﺩﺩﻨﺎ ﺍﺴﻡ ﺍﻟﺠﺩﻭل ﺍﻟﺫﻱ ﻨﻭﺩ ﺇﻀﺎﻓﺔ ﺍﻟﻤﺩﺨﻼﺕ ﻓﻴﻪ‪ ،‬ﺃﻤﺎ ﻓﻲ ﻫﺫﻩ ﺍﻟﺼﻔﺤﺔ ﻓﺎﺴﺘﺒﺩﻟﻨﺎ ﺍﺴـﻡ ﺍﻟﺠـﺩﻭل‬
‫ﺒﺎﻟﻤﺘﻐﻴﺭ "&‪ "&section‬ﻭﺍﻟﺫﻱ ﻴﺘﻡ ﺍﺴﺘﻘﺒﺎل ﻗﻴﻤﺘﻪ ﻤﻥ ﺨﻼل ﺍﻟﻘﺎﺌﻤﺔ ﺍﻟﻤﻨﺴﺩﻟﺔ ﻓﻲ ﺍﻟﻨﻤﻭﺫﺝ‪ .‬ﻭﺒﺎﻟﺘﺎﻟﻲ ﻗﺩ ﻴﻜـﻭﻥ‬
‫ﺃﺨﺒﺎﺭ ﻋﺎﻤﺔ‪ ،‬ﺃﻭ ﺃﺨﺒﺎﺭ ﺘﻘﻨﻴﺔ‪.‬‬

‫ﺜﺎﻨﻴﺎ ‪:‬ﺍﺴﺘﺨﺩﻤﻨﺎ ‪ Function‬ﻭﺍﻟﺘﻲ ﻴﻤﻜﻥ ﺘﺴﻤﻴﺘﻬﺎ ﻭﻅﻴﻔﺔ ﺃﻭ ﺩﺍﻟﺔ ‪.‬ﻭﻫﻲ ﻋﺒﺎﺭﺓ ﻋﻥ ﻤﺠﻤﻭﻋﺔ ﺃﻭﺍﻤﺭ ﺘﹸـﻨﻔﹼـﺫ ﻤـﻊ‬
‫ﺒﻌﻀﻬﺎ ﺍﻟﺒﻌﺽ ﺃﻭ ﻻ ﺘﹸـﻨﻔﹼـﺫ ﺇﻁﻼﻗﺎ‪ ،‬ﻟﺫﺍ ﻓﻨﻀﻌﻬﺎ ﻤﻊ ﺒﻌﺽ ﻨﺒﺩﺃﻫﺎ ﺒـ ‪ Function‬ﻭﻨﺤﺩﺩ ﺍﺴـﻡ ﻤـﺜﻼ ‪addf‬‬
‫ﻭﻨﻀﻊ ﺒﻌﺩﻫﺎ ﺍﻻﺴﻡ )( ﺜﻡ ﻨﻜﺘﺏ ﺍﻟﻤﻁﻠﻭﺏ‪ ..‬ﻭﻨﻐﻠﻕ ﺍﻟـ ‪ Function‬ﺒـ ‪ End Function .‬ﻭﻓﻲ ﺍﻟﻤﻜﺎﻥ ﺍﻟﻠـﻲ‬
‫ﻨﺭﻴﺩ ﺘﻨﻔﻴﺫ ﻫﺫﻩ ﺍﻷﻭﻭﺍﻤﺭ ﺃﻭ ﺍﻟـ ‪ Function‬ﻓﻴﻪ ﻨﻀﻊ ﻓﻴﻪ ﺍﻻﺴﻡ ‪.‬ﻭﻓﻲ ﺤﺎﻟﺘﻨﺎ )(‪ addf‬ﻭﻀﻌﻨﺎﻩ ﺒﻴﻥ ‪ Else‬ﻭ ‪End‬‬
‫‪if‬ﻭﻫﻭ ﺍﻟﻤﻜﺎﻥ ﺍﻟﺫﻱ ﻨﺭﻴﺩ ﻓﻴﻪ ﺃﻥ ﺘﺘﻨﻔﺫ ﺃﻭﺍﻤﺭ ﺍﻹﻀﺎﻓﺔ‪.‬‬

‫واﻵن ﺟﺎء دور ﻡﺸﺎهﺪة اﻟﺘﻨﻔﻴﺬ‬

‫ﺟﺪول اﻟﺒﻴﺎﻥﺎت )‪ (general_news‬یﺤﺘﻮى ﻋﻠﻰ‬

‫ﻋﻨﺪ ﺗﺸﻐﻴﻞ اﻟﺮاﺑﻂ أﺥﺒﺎر ﻣﻨﻮﻋﺔ ﺗﻈﻬﺮ ﻟﻨﺎ ﺻﻔﺤﺔ )ﺻﻔﺤﺔ اﻟﻤﻘﺎﻻت ( ﺑﻬﺎ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٨٨‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﻋﻨﺪ ﺗﺸﻐﻴﻞ اﻟﺮاﺑﻂ إدارة اﻟﻤﻮﻗﻊ ﺙﻢ ادﺥﺎل اﺳﻢ اﻟﻤﺴﺘﺨﺪم وآﻠﻤﺔ اﻟﻤﺮور ﺙﻢ اﻟﺨﻴﺎر اﻟﺮاﺑﻂ )إﺽﺎﻓﺔ اﻷﺥﺒﺎر( ﺗﻈﻬﺮ‬
‫ﻟﻨﺎ ﺻﻔﺤﺔ )إﺽﺎﻓﺔ اﻷﺥﺒﺎر ( ﺙﻢ ﻥﻘﻮم ﺑﺘﻌﺒﺌﺔ ﺟﻤﻴﻊ اﻟﺤﻘﻮل وﻟﻴﻜﻦ آﺎﻟﺘﺎﻟﻲ ‪:‬‬

‫وﻋﻨﺪ اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺮز )إﺽﺎﻓﺔ ( ﺗﻜﻮن اﻟﻨﺘﻴﺠﺔ ﻣﻌﻠﻨﺔ )) ﺵﻜﺮا ﻟﻚ ﻟﻘﺪ ﺗﻢ إﺽﺎﻓﺔ اﻟﺨﺒﺮ ﺑﻨﺠﺎح ((‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٨٩‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫وﻟﻠﺘﺄآﺪ ﻣﻦ ذﻟﻚ اﺽﻐﻂ ﻋﻠﻰ اﻟﺮاﺑﻂ ) أﺥﺒﺎر ﻣﻨﻮﻋﺔ( ﻟﺘﻈﻬﺮ اﻟﻨﺘﻴﺠﺔ آﺎﻟﺘﺎﻟﻲ ‪:‬‬

‫ﺙﻢ اﻟﻀﻐﻂ ﻋﻠﻰ ﻋﻨﻮان اﻟﺨﺒﺮ‬

‫وﺑﺬﻟﻚ ﻥﻜﻮن ﻗﺪ اﻥﺘﻬﻴﻨﺎ ﻣﻦ اﻟﺠﺰء اﻷول ﻓﻲ ﺻﻔﺤﺔ )إدارة اﻟﻤﻮﻗﻊ( وهﻮ ))) إﺽﺎﻓﺔ اﻷﺥﺒﺎر (((‪.‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٩٠‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﺘﺼﻤﻴﻡ ﺼﻔﺤﺔ ﺘﻌﺩﻴل ‪ /‬ﻤﺴﺢ ﺍﻷﺨﺒﺎﺭ )‪(news_list.asp‬‬

‫ﺳﻨﺼﻤﻢ اﻵن ﺻﻔﺤﺔ )‪ (news_list.asp‬ﺗﺤﺘﻮي ﻋﻠﻰ ﻗﺎﺉﻤﺔ ﺑﻌﻨﺎویﻦ اﻷﺥﺒﺎر وأﻣﺎم آﻞ ﻋﻨﻮان ﺥﻴﺎران أﺡﺪهﻤﺎ‬
‫"ﺗﻌﺪیﻞ" واﻵﺥﺮ "ﻣﺴﺢ"‪.‬‬
‫اﻟﺸﻜﻞ اﻟﻤﻘﺘﺮح ‪:‬‬

‫اﻵن اﻟﻴﻜﻢ ﺹﻮرة اﻟﻜﻮد‬


‫اﻟﺠﺰء اﻷول‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٩١‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫اﻟﺠﺰء اﻟﺜﺎﻥﻲ‬

‫اﻟﺠﺰء اﻟﺜﺎﻟﺚ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


٩٢ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

: ‫اﻵن إﻟﻴﻜﻢ اﻟﻜﻮد‬


<%
Name_Cooky=Request.cookies("Name")
If Name_Cooky="" Then
response.redirect ("admin.asp")
End If
%>
<html dir="rtl"><head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<ﻗﺎﺉﻤﺔ ﻋﻨﺎویﻴﻦ اﻷﺥﺒﺎر‬/title>
</head><body>
<!--#include file="pageheader.asp" -->
<%
Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
connectionToDatabase.Open "DSN=my_data_base"
'‫أواﻣﺮ اﺥﺘﻴﺎر ﺟﺪول اﻷﺥﺒﺎر اﻟﻌﺎﻣﺔ واﺳﺘﺪﻋﺎء اﻟﺒﻴﺎﻥﺎت ﻣﻨﻪ‬
selectnewsSQL="select * from general_news order by add_dat desc"
set rsnews=connectionToDatabase.execute(selectnewsSQL)
'‫أواﻣﺮ اﺥﺘﻴﺎر ﺟﺪول اﻷﺥﺒﺎر اﻟﺘﻘﻨﻴﺔ واﺳﺘﺪﻋﺎء اﻟﺒﻴﺎﻥﺎت ﻣﻨﻪ‬
selecttechSQL="select * from tech_news order by add_dat desc"
set rstech=connectionToDatabase.execute(selecttechSQL)
%>
<p align="center"><b><font face="Simplified Arabic" color="#C11111" size="5"> ‫ﺗﻌﺪیﻞ أو ﺡﺬف‬
‫<أﺥﺒﺎر‬/font></b></p>
<p><b><font face="Simplified Arabic">‫<ﻗﺎﺉﻤﺔ اﻷﺥﺒﺎر اﻟﻌﺎﻣﺔ‬/font></b></p>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111"
width="100%" id="AutoNumber1">
<tr>
<td width="80%" bgcolor="#00FFFF">
<p align="center"><font face="Simplified Arabic"><b>‫<اﻟﻌﻨﻮان‬/b></font></td>
<td width="10%" align="center" bgcolor="#00FFFF"><font face="Simplified
Arabic"><b>‫<ﺗﻌﺪیﻞ‬/b></font></td>
<td width="10%" align="center" bgcolor="#00FFFF"><font face="Simplified
Arabic"><b>‫<ﻣﺴﺢ‬/b></font></td>
</tr>
</table>
<%
'‫أواﻣﺮ اﺳﺘﻌﺮاض ﻋﻨﺎویﻦ اﻷﺥﺒﺎر اﻟﻌﺎﻣﺔ‬
do while not rsnews.eof
%>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111"
width="100%" id="AutoNumber1">
<tr>
<td width="80%">
<p align="right"><font face="Simplified Arabic"><b><%=rsnews("subject")%>&nbsp;</b></font></td>
<td width="10%" align="center"><font face="Simplified Arabic"><a
href="news_upd.asp?id=<%=rsnews("id")%>"><b>‫<ﺗﻌﺪیﻞ‬/b></font></td>
<td width="10%" align="center"><font face="Simplified Arabic"><a
href="news_del.asp?id=<%=rsnews("id")%>"><b>‫<ﻣﺴﺢ‬/b></font></td>
</tr>

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


٩٣ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

</table>
<%
rsnews.movenext
loop
%>
<p>&nbsp;</p>
<p><b><font face="Simplified Arabic">‫<ﻗﺎﺉﻤﺔ اﻷﺥﺒﺎر اﻟﺘﻘﻨﻴﺔ‬/font></b></p>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111"
width="100%" id="AutoNumber1">
<tr>
<td width="80%" bgcolor="#00FFFF">
<p align="center"><font face="Simplified Arabic"><b>‫<اﻟﻌﻨﻮان‬/b></font></td>
<td width="10%" align="center" bgcolor="#00FFFF"><font face="Simplified
Arabic"><b>‫<ﺗﻌﺪیﻞ‬/b></font></td>
<td width="10%" align="center" bgcolor="#00FFFF"><font face="Simplified
Arabic"><b>‫<ﻣﺴﺢ‬/b></font></td>
</tr>
</table>
<%
'‫أواﻣﺮ اﺳﺘﻌﺮاض ﻋﻨﺎویﻦ اﻷﺥﺒﺎر اﻟﺘﻘﻨﻴﺔ‬
do while not rstech.eof
%>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111"
width="100%" id="AutoNumber1">
<tr>
<td width="80%">
<p align="right"><font face="Simplified Arabic"><b><%=rstech("subject")%>&nbsp;</b></font></td>
<td width="10%" align="center"><font face="Simplified Arabic"><a
href="tech_upd.asp?id=<%=rstech("id")%>"><b>‫<ﺗﻌﺪیﻞ‬/b></font></td>
<td width="10%" align="center"><font face="Simplified Arabic"><a
href="tech_del.asp?id=<%=rstech("id")%>"><b>‫<ﻣﺴﺢ‬/b></font></td>
</tr>
</table>
<%
rstech.movenext
loop
%>
<p>&nbsp;</p>
<%
connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>
<!--#include file="pagefooter.asp" -->
</body></html>

،‫ وﻓﺘﺢ ﺟ ﺪاول اﻷﺥﺒ ﺎر اﻟﻌﺎﻣ ﺔ واﻷﺥﺒ ﺎر اﻟﺘﻘﻨﻴ ﺔ‬،‫ آﻞ ﻣﺎ ﻗﻤﻨﺎ ﺑﻪ هﻮ اﻻﺗﺼﺎل ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت‬..‫ﻟﻢ ﻥﻘﻢ ﺑﻜﺘﺎﺑﺔ أي أواﻣﺮ ﺟﺪیﺪة ﻓﻲ هﺬﻩ اﻟﺼﻔﺤﺔ‬
‫ ﻓﻌﻨ ﺪ اﻟﻀ ﻐﻂ ﻋﻠ ﻰ‬.‫ ووﺽ ﻌﻨﺎ رواﺑ ﻂ ﻋﻠ ﻰ ه ﺬﻩ اﻟﻜﻠﻤ ﺎت‬.‫ ﺡ ﺬف‬، ‫ ﺗﻌ ﺪیﻞ‬:‫ وأﻣﺎم آﻞ ﻋﻨﻮان آﻠﻤﺘ ﺎن‬،‫ﺙﻢ ﻋﺮض ﻋﻨﺎویﻦ اﻷﺥﺒﺎر ﻓﻲ ﺟﺪاول‬
‫ إن آ ﺎن اﻟﺘﻌ ﺪیﻞ‬tech_upd.asp ‫ أو ﺳ ﺘﻔﺘﺢ اﻟﺼ ﻔﺤﺔ‬،‫ إن آ ﺎن اﻷﻣ ﺮ ﻟﺘﻌ ﺪیﻞ اﻷﺥﺒ ﺎر اﻟﻌﺎﻣ ﺔ‬news_upd.asp ‫"ﺗﻌ ﺪیﻞ" ﺳ ﺘﻔﺘﺢ اﻟﺼ ﻔﺤﺔ‬
.‫ آﻞ واﺡﺪة ﺗﺨﺘﺺ ﺑﻘﺴﻢ ﻣﻦ اﻷﺥﺒﺎر‬tech_del.asp ‫ "و‬news_del.asp ‫ وﺑﺎﻟﻤﺜﻞ ﻓﻬﻨﺎﻟﻚ ﺻﻔﺤﺘﺎن "ﻟﻠﻤﺴﺢ‬.‫ﻟﻸﺥﺒﺎر اﻟﺘﻘﻨﻴﺔ‬
‫? وه ﺬا اﻷﻣ ﺮ ﻗ ﺪ ﺗ ﻢ ﺵ ﺮﺡﻪ ﺳ ﺎﺑﻘﺎ ﻋﻨ ﺪ‬id=<%=rstech("id")%> ‫ﻻﺣﻆ ﻡﻌﻲ أﻥﻪ ﻋﻨ ﺪ آﺘﺎﺑ ﺔ اﻟ ﺮواﺑﻂ ﻷواﻣ ﺮ اﻟﺘﻌ ﺪیﻞ واﻟﻤﺴ ﺢ ﺗ ﻢ إﺽ ﺎﻓﺔ‬
‫ وذﻟﻚ ﻋﻦ ﻃﺮیﻖ إرﺳﺎل ﻗﻴﻤﺔ‬،‫ ﺗﺤﺪیﺪ اﻟﺨﺒﺮ اﻟﻤﺮاد ﺗﻌﺪیﻠﻪ أو ﺡﺬﻓﻪ‬:‫ واﻟﻤﻘﺼﻮد ﺑﻪ ﺑﺎﺥﺘﺼﺎر هﻮ‬.‫ﺗﺼﻤﻴﻢ ﺻﻔﺤﺎت ﻋﺮض اﻟﺒﻴﺎﻥﺎت واﻷﺥﺒﺎر‬
.‫ﻟﻠﺨﺒﺮ ﻟﻠﺼﻔﺤﺔ اﻟﺘﻲ ﺳﺘﻘﻮم ﺑﺎﻟﻌﻤﻠﻴﺎت‬id

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


‫ﺻﻔﺤﺔ ‪٩٤‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫اﻟﺬي أود اﻹﺵﺎرة إﻟﻴﻪ هﻨﺎ‪ ،‬أﻥﻪ ﺑﺎﻹﻡﻜﺎن ﻋﻤﻞ ﺹﻔﺤﺔ ﺗﻌﺪیﻞ واﺣﺪة ﻟﻜﻼ اﻟﻨﻮﻋﺎن‪ ،‬وﺹ ﻔﺤﺔ ﻡﺴ ﺢ واﺣ ﺪة ﻟﻜ ﻼ اﻟﻨﻮﻋ ﺎن‪ .‬ﻟﻜ ﻦ ﻟﺮﻏﺒﺘ ﻲ‬
‫ﻓﻲ ﺗﺼﻤﻴﻢ اﻟﻤﻮﻗﻊ ﺑﺄﺑﺴﻂ ﺹﻮرة ﻡﻤﻜﻨﺔ ﻟﻴﻤﻜﻦ ﻟﻠﻤﺒﺘﺪئ ﻡﺘﺎﺑﻌﺔ اﻟﺸﺮح ﺑﺴ ﻬﻮﻟﺔ ﻗ ﺮرت ﺗﺼ ﻤﻴﻢ ﺹ ﻔﺤﺔ ﻟﻜ ﻞ ﻗﺴ ﻢ‪ .‬وه ﺬا یﺘ ﻴﺢ اﻟﻤﺠ ﺎل‬
‫ﻟﻠﻤﺘﻌﻠﻢ ﻟﺒﺬﻟﻚ ﺟﻬﺪ إﺽﺎﻓﻲ ﺑﻌﺪ اﻻﻥﺘﻬﺎء ﻡﻦ اﻟﺸﺮح ﻟﺘﻄﻮیﺮ اﻟﻤﻮﻗﻊ وﺗﻘﻠﻴﺺ ﻋﺪد ﺹﻔﺤﺎﺗﻪ‪.‬‬
‫واﻵن إﻟﻴﻜﻢ اﻟﺘﻨﻔﻴﺬ‬

‫ﻋﻨﺪ اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺮاﺑﻂ ) ﺗﻌﺪیﻞ أو ﻣﺴﺢ اﻷﺥﺒﺎر ( ﻓﻲ ﺻﻔﺤﺔ ) إدارة اﻟﻤﻮﻗﻊ ( ﺗﻈﻬﺮ اﻟﻨﺘﻴﺠﺔ آﺎﻟﺘﺎﻟﻲ ‪:‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٩٥‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﺗﺼﻤﻴﻢ ﺹﻔﺤﺔ ﺗﻌﺪیﻞ أو ﺗﺤﺪیﺚ اﻟﺒﻴﺎﻥﺎت )‪(news_upd.asp‬‬

‫ﺳﻨﺼﻤﻢ ﺻﻔﺤﺔ ﺗﻌﺪیﻞ أو ﺗﺤﺪیﺚ اﻟﺒﻴﺎﻥﺎت اﻟﻤﻮﺟﻮدة ﺑﺎﻟﺠﺪول ‪ general_news‬ﺑﺎﺳﻢ )‪ (news_upd.asp‬وأﺥﺮى‬


‫ﺑﺎﺳﻢ )‪ (tech_upd.asp‬ﻟﺘﻌﺪیﻞ أو ﺗﺤﺪیﺚ اﻟﺒﻴﺎﻥﺎت اﻟﻤﻮﺟﻮدة ﺑﺎﻟﺠﺪول ‪ tech_news‬ﻟ ﻦ ﺗﺨﺘﻠﻔ ﺎ اﻟﺼ ﻔﺤﺘﻴﻦ ﻋ ﻦ‬
‫ﺑﻌﻀﻬﻤﺎ اﻟﺒﻌﺾ آﺜﻴﺮا‪ .‬اﻷواﻣﺮ اﻟﺠﺪی ﺪة اﻟﺘ ﻲ ﺳ ﻨﺘﻌﻠﻤﻬﺎ هﻨ ﺎ ه ﻲ اﻻﺳ ﺘﻌﻼم ‪ Update‬اﻟ ﺬي یﻘ ﻮم ﺑﺘﺤ ﺪیﺚ اﻟﺒﻴﺎﻥ ﺎت‬
‫اﻟﺘﻲ ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت‪.‬‬

‫او ًﻻ ‪ :‬ﺗﺼﻤﻴﻢ اﻟﺼﻔﺤﺔ‪) news_upd.asp‬أﺧﺒﺎر ﻋﺎﻡﺔ – ﻡﻘﺎﻻت (‬

‫اﻟﺸﻜﻞ اﻟﻤﻘﺘﺮح ﻟﻠﺼﻔﺤﺔ‪news_upd.asp‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٩٦‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫إﻟﻴﻜﻢ ﺹﻮرة اﻟﻜﻮد‬


‫اﻟﺠﺰء اﻷول‬

‫اﻟﺠﺰء اﻟﺜﺎﻥﻲ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


٩٧ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

: ‫اﻵن إﻟﻴﻜﻢ اﻟﻜﻮد‬

<%
Name_Cooky=Request.cookies("Name")
If Name_Cooky="" Then
response.redirect ("admin.asp")
End If
%>
<html dir="rtl"><head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<ﺗﺤﺪیﺚ ﺑﻴﺎﻥﺎت اﻷﺥﺒﺎر اﻟﻌﺎﻣﺔ‬/title>
</head><body>
<!--#include file="pageheader.asp" -->
<%
Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
connectionToDatabase.Open "DSN=my_data_base"
%>
<%
function updatef()
updateSQL= " update general_news set subject = '"&subject&"' , body = '"&body&"' where id="&id
connectionToDatabase.execute(updateSQL)
%>
<p><font face="Simplified Arabic" size="3">‫ ﻟﻘﺪ ﺗﻢ ﺗﺤﺪیﺚ اﻟﻤﻮﺽﻮع ﺑﻨﺠﺎح‬..‫<ﺵﻜﺮا ﻟﻚ‬/font></p>
<%
end function

id=request.querystring("id")
subject=request.form("subject")
body=request.form("body")

selectSQL="select * from general_news where id="&id


set rs=connectionToDatabase.execute(selectSQL)

%>
<p align="center"><b><font face="Simplified Arabic" color="#C11111" size="6">‫<ﺗﻌﺪیﻞ‬/font></b></p>
<%
if subject = "" then
response.write "‫"اﺽﻐﻂ زر ﺗﺤﺪیﺚ ﻟﺘﺜﺒﻴﺖ اﻟﺘﻐﻴﻴﺮات‬
else
updatef()
end if
%>
<form method="POST" action="news_upd.asp?id=<%=id%>">
<p><font face="Simplified Arabic" size="3">‫اﻟﻌﻨﻮان‬
<textarea rows="2" name="subject" cols="53"><%response.write rs("subject")%></textarea></font></p>
<p><font face="Simplified Arabic" size="3">‫ اﻟﻤﺤﺘﻮى‬:</font></p>
<p><font face="Simplified Arabic" size="3"><textarea rows="12" name="body" cols="58"><%response.write
rs("body")%></textarea></font></p>
<p><font face="Simplified Arabic" size="3"><input type="submit" value="‫ "ﺗﺤﺪیﺚ‬name="start"></font></p>
</form>
<%
connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>
<!--#include file="pagefooter.asp" --></body></html>

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


‫ﺻﻔﺤﺔ ‪٩٨‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫اﻟﺠﺪیﺪ هﻨﺎ هﻮ اﺱﺘﺨﺪام اﻻﺱﺘﻌﻼم ‪ update‬وﻃﺮیﻘﺔ اﺱﺘﺨﺪاﻡﻬﺎ آﻤﺎ هﻮ ﻡﺒﻴﻦ‪:‬‬

‫ﺗﺤﺪیﺪ اﺳﻢ اﻟﺠﺪول اﻟﻤﺮاد ﺗﺤﺪیﺚ ﺑﻴﺎﻥﺎﺗﻪ ‪.‬‬ ‫‪.١‬‬


‫ﺗﺤﺪیﺪ اﻟﺤﻘﻞ اﻟﻤﺮاد ﺗﺤﺪیﺜﻪ ‪.‬‬ ‫‪.٢‬‬
‫ﺗﺤﺪیﺪ اﻟﻘﻴﻤﺔ اﻟﺠﺪیﺪة )ﺑﻌﺪ ﻋﻼﻣﺔ = أﻣﺎم اﺳﻢ اﻟﺤﻘﻞ ‪).‬‬ ‫‪.٣‬‬
‫وﺽﻊ ﻓﺎﺻﻠﺔ )‪ (,‬ﺑﻌﺪ آﻞ ﺡﻘﻞ وﻗﻴﻤﺘﻪ ﻟﻜﺘﺎﺑﺔ اﺳﻢ ﺡﻘﻞ ﺟﺪیﺪ ‪.‬‬ ‫‪.٤‬‬
‫ﺗﺤﺪیﺪ رﻗﻢ ‪ id‬وذﻟﻚ ﻟﺘﻤﻴﻴﺰ اﻟﺒﻴﺎﻥﺎت ﻋﻦ ﻏﻴﺮهﺎ ﻓﻲ اﻟﺠﺪول ‪.‬‬ ‫‪.٥‬‬

‫وﻓﻲ ﻣﺜﺎﻟﻨﺎ اﻟﺴﺎﺑﻖ ﻟﻢ ﻥﺤﺪد اﻟﻘﻴﻢ ﻣﺴﺒﻘﺎ‪ .‬وإﻥﻤﺎ ﻗﻤﻨﺎ ﺑﺠﻠﺐ اﻟﻘﻴﻢ اﻟﻤﻮﺟﻮدة ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت واﺳﺘﺨﺪاﻣﻬﺎ آﺄﺳﺎس‬
‫ﻟﻠﺘﺤﺪیﺚ‪ .‬ﻣﺜﺎل‪:‬‬

‫‪<textarea rows="2" name="subject" cols="53"><%response.write‬‬


‫>‪rs("subject")%></textarea‬‬

‫ﻓﻲ اﻟﺴﻄﺮ اﻟﺴﺎﺑﻖ ﺗﻢ إﻥﺸﺎء ﻣﺮﺑﻊ ﻥﺺ ﺑﺎﺳﻢ ‪ subject‬وﺗﻢ ﺗﺤﺪیﺪ ﻗﻴﻤﺘﻪ ﺑﺄﻥﻪ ﻣﺤﺘﻮى اﻟﺤﻘﻞ ‪ Subject‬ﻣﻦ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت‪.‬‬

‫>‪<textarea rows="12" name="body" cols="58"><%response.write rs("body")%></textarea‬‬

‫ﻓﻲ اﻟﺴﻄﺮ اﻟﺴﺎﺑﻖ ﺗﻢ إﻥﺸﺎء ﻣﺮﺑﻊ ﻥﺺ ﺑﺎﺳﻢ ‪ body‬وﺗﻢ ﺗﺤﺪیﺪ ﻗﻴﻤﺘﻪ ﺑﺄﻥﻪ ﻣﺤﺘﻮى اﻟﺤﻘﻞ ‪ body‬ﻣﻦ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت‪.‬‬

‫ﺑﻤﻌﻨﻰ أﻥﻨﺎ ﺟﻌﻠﻨﺎ اﻟﻘﻴﻤﺔ اﻻﺑﺘﺪاﺉﻴﺔ )اﻷوﻟﻴﺔ( ﻣﺎ هﻮ ﻣﻮﺟﻮد ﺑﺎﻟﺴﺠﻞ آﺎﻟﺘﺎﻟﻲ‪:‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٩٩‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﻻﺣﻆ اﻟﺨﺼﺎﺋﺺ اﻟﺘﺎﻟﻴﺔ ‪:‬‬

‫ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﻌﻨﻮان‬

‫ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﻤﺤﺘﻮى‬

‫ﺧﺼﺎﺋﺺ اﻟﻨﻤﻮذج‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪١٠٠‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫واﻵن إﻟﻴﻜﻢ اﻟﺘﻨﻔﻴﺬ‬

‫ﻋﻨﺪ اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺮاﺑﻂ ) ﺗﻌﺪیﻞ أو ﻣﺴﺢ اﻷﺥﺒﺎر ( ﻓﻲ ﺻﻔﺤﺔ ) إدارة اﻟﻤﻮﻗﻊ ( ﺙﻢ اﻟﻀﻐﻂ ﻋﻠﻰ )ﺗﻌﺪیﻞ( ﺗﻈﻬﺮ‬
‫اﻟﻨﺘﻴﺠﺔ آﺎﻟﺘﺎﻟﻲ ‪:‬‬

‫ﻼ ﺑﺈﺽﺎﻓﺔ ﺟﻤﻠﺔ )) ﺟﻨﻮب ﺵﺮق ((‬


‫وﺑﺎﻟﺘﻌﺪیﻞ ﻋﻠﻰ اﻟﻌﻨﻮان ﻣﺜ ً‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪١٠١‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫وﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ ﻣﻔﺘﺎح )) ﺗﺤﺪیﺚ (( ﺗﻜﻮن اﻟﻨﺘﻴﺠﺔ‬

‫وﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺮاﺑﻂ )) أﺥﺒﺎر ﻣﻨﻮﻋﺔ (( ﺗﻈﻬﺮ اﻟﻨﺘﻴﺠﺔ اﻟﺘﺎﻟﻴﺔ وﻗﺪ ﺗﻐﻴﺮ ﻋﻨﻮان اﻟﻤﻘﺎل‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪١٠٢‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﺙﺎﻥﻴ ًﺎ ‪ :‬ﺗﺼﻤﻴﻢ اﻟﺼﻔﺤﺔ‪ ) tech_upd.asp‬أﺧﺒﺎر اﻟﺘﻘﻨﻴﺔ (‬

‫ه ﺬﻩ اﻟﺼ ﻔﺤﺔ ﻻ ﺗﺨﺘﻠ ﻒ آﺜﻴ ﺮًا ﻋ ﻦ اﻟﺼ ﻔﺤﺔ )‪ (news_upd.asp‬ﻟ ﺬﻟﻚ ﻗ ﻢ ﺑﺤﻔﻈﻬ ﺎ ﺑﺎﺳ ﻢ ﺟﺪی ﺪ وﻟﻜ ﻦ ﺑﺎﺳ ﻢ‬
‫‪tech_upd.asp‬‬
‫وﻗﻢ ﺑﺘﻐﻴﻴﺮ ‪ general_news‬إﻟﻰ ‪ tech_news‬ﻓﻲ آﻼ اﻻﺳﺘﻌﻼﻣﻴﻦ ‪ select‬و‪update.‬‬
‫ﻡﻠﺤﻮﻇﺔ ‪:‬اﺳﺘﺨﺪم ﻣﻦ ﻗﺎﺉﻤﺔ ﺗﺤﺮیﺮ – اﺳﺘﺒﺪال )) ﻟﻠﺘﺴﻬﻴﻞ ((‬
‫وﺗﻐﻴﻴﺮ ‪ news_upd.asp‬إﻟﻰ ‪ tech_upd.asp‬ﻓﻲ اﻟﺴﻄﺮ اﻟﺘﺎﻟﻲ‪:‬‬

‫>">‪<form method="POST" action="tech_upd.asp?id=<%=id%‬‬

‫وﺑﺬﻟﻚ ﺗﻜﻮن ﻥﻔﺲ اﻟﻨﺘﻴﺠﺔ اﻟﺘﻲ ﺗﻢ اﻟﻮﺻﻮل اﻟﻴﻬﺎ ﻓﻲ اﻟﺼﻔﺤﺔ )‪(news_upd.asp‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


١٠٣ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

: ‫اﻵن إﻟﻴﻜﻢ اﻟﻜﻮد ﺑﻌﺪ اﻟﺘﻌﺪیﻞ‬

<%
Name_Cooky=Request.cookies("Name")
If Name_Cooky="" Then
response.redirect ("admin.asp")
End If
%>
<html dir="rtl"><head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<ﺗﺤﺪیﺚ ﺑﻴﺎﻥﺎت أﺥﺒﺎر اﻟﺘﻘﻨﻴﺔ‬/title>
</head><body>
<!--#include file="pageheader.asp" -->
<%
Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
connectionToDatabase.Open "DSN=my_data_base"
%>
<%
function updatef()
updateSQL= " update tech_news set subject = '"&subject&"' , body = '"&body&"' where id="&id
connectionToDatabase.execute(updateSQL)
%>
<p><font face="Simplified Arabic" size="3">‫ ﻟﻘﺪ ﺗﻢ ﺗﺤﺪیﺚ اﻟﻤﻮﺽﻮع ﺑﻨﺠﺎح‬..‫<ﺵﻜﺮا ﻟﻚ‬/font></p>
<%
end function

id=request.querystring("id")
subject=request.form("subject")
body=request.form("body")

selectSQL="select * from tech_news where id="&id


set rs=connectionToDatabase.execute(selectSQL)

%>
<p align="center"><b><font face="Simplified Arabic" color="#C11111" size="6">‫<ﺗﻌﺪیﻞ‬/font></b></p>
<%
if subject = "" then
response.write "‫"اﺽﻐﻂ زر ﺗﺤﺪیﺚ ﻟﺘﺜﺒﻴﺖ اﻟﺘﻐﻴﻴﺮات‬
else
updatef()
end if
%>
<form method="POST" action="tech_upd.asp?id=<%=id%>">
<p><font face="Simplified Arabic" size="3">‫اﻟﻌﻨﻮان‬
<textarea rows="2" name="subject" cols="53"><%response.write rs("subject")%></textarea></font></p>
<p><font face="Simplified Arabic" size="3">‫ اﻟﻤﺤﺘﻮى‬:</font></p>
<p><font face="Simplified Arabic" size="3"><textarea rows="12" name="body" cols="58"><%response.write
rs("body")%></textarea></font></p>
<p><font face="Simplified Arabic" size="3"><input type="submit" value="‫ "ﺗﺤﺪیﺚ‬name="start"></font></p>
</form>
<%
connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>
<!--#include file="pagefooter.asp" --></body></html>

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


‫ﺻﻔﺤﺔ ‪١٠٤‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﺗﺼﻤﻴﻢ ﺹﻔﺤﺔ ﻡﺴﺢ أو ﺣﺬف اﻟﺒﻴﺎﻥﺎت )‪(news_del.asp‬‬

‫ﺳﻨﺼﻤﻢ ﺻﻔﺤﺔ ﻣﺴ ﺢ أو ﺡ ﺬف اﻟﺒﻴﺎﻥ ﺎت اﻟﻤﻮﺟ ﻮدة ﺑﺎﻟﺠ ﺪول ‪ general_news‬ﺑﺎﺳ ﻢ )‪ (news_del.asp‬وأﺥ ﺮى‬
‫ﺑﺎﺳ ﻢ )‪ (tech_del.asp‬ﻟﻤﺴ ﺢ أو ﺡ ﺬف اﻟﺒﻴﺎﻥ ﺎت اﻟﻤﻮﺟ ﻮدة ﺑﺎﻟﺠ ﺪول ‪ tech_news‬ﻟ ﻦ ﺗﺨﺘﻠﻔ ﺎ اﻟﺼ ﻔﺤﺘﻴﻦ ﻋ ﻦ‬
‫ﺑﻌﻀ ﻬﻤﺎ اﻟ ﺒﻌﺾ آﺜﻴ ﺮا‪ .‬اﻷواﻣ ﺮ اﻟﺠﺪی ﺪة اﻟﺘ ﻲ ﺳ ﻨﺘﻌﻠﻤﻬﺎ هﻨ ﺎ ه ﻲ اﻻﺳ ﺘﻌﻼم ‪ delete‬اﻟ ﺬي یﻘ ﻮم ﺑﻤﺴ ﺢ أو ﺡ ﺬف‬
‫اﻟﺒﻴﺎﻥﺎت اﻟﺘﻲ ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت‪.‬‬

‫او ًﻻ ‪ :‬ﺗﺼﻤﻴﻢ اﻟﺼﻔﺤﺔ‪) news_del.asp‬أﺧﺒﺎر ﻋﺎﻡﺔ – ﻡﻘﺎﻻت (‬

‫إﻟﻴﻜﻢ ﺹﻮرة اﻟﻜﻮد ‪:‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


١٠٥ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

: ‫اﻵن إﻟﻴﻜﻢ اﻟﻜﻮد‬

<%
Name_Cooky=Request.cookies("Name")
If Name_Cooky="" Then
response.redirect ("admin.asp")
End If
%>
<html dir="rtl"><head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<ﺡﺬف ﺑﻴﺎﻥﺎت اﻷﺥﺒﺎر اﻟﻌﺎﻣﺔ‬/title>
</head><body>
<!--#include file="pageheader.asp" -->
<%
Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
connectionToDatabase.Open "DSN=my_data_base"
%>
<%
id=request.querystring("id")
deleteSQL = "delete * from general_news where id="&id
connectionToDatabase.execute(deleteSQl)
response.redirect "news_list.asp"

connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>
<!--#include file="pagefooter.asp" -->
</body></html>

:‫ وﻃﺮیﻘﺔ اﺳﺘﺨﺪاﻣﻪ آﻤﺎ هﻮ ﻣﺒﻴﻦ‬delete ‫اﻻﺳﺘﻌﻼم اﻟﺠﺪیﺪ ﻓﻲ هﺬﻩ اﻟﺼﻔﺤﺔ هﻮ‬


. ‫ﺗﺤﺪیﺪ اﺳﻢ اﻟﺠﺪول اﻟﻤﺮاد اﻟﻤﺴﺢ ﻣﻨﻪ‬
. ‫ ﻟﻠﻤﻌﻠﻮﻣﺔ اﻟﻤﺮاد ﻣﺴﺤﻬﺎ‬id ‫ﺗﺤﺪیﺪ رﻗﻢ‬

‫ وﺑﻌ ﺪ إﺗﻤ ﺎم اﻟﻌﻤﻠﻴ ﺔ ﺳ ﻴﻨﺘﻘﻞ اﻟﻤﺘﺼ ﻔﺢ ﻟﻠﺼ ﻔﺤﺔ‬.‫ اﻟﻤﺮﺳﻠﺔ ﻣ ﻦ اﻟﺼ ﻔﺤﺔ اﻟﺴ ﺎﺑﻘﺔ‬id ‫آﻤﺎ هﻮ واﺽﺢ ﺗﻢ اﺳﺘﺨﺪام ﻗﻴﻤﺔ‬
response.redirect .‫اﺳﺘﺠﺎﺑﺔ ﻟﻸﻣﺮ‬news_list.asp

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


‫ﺻﻔﺤﺔ ‪١٠٦‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫واﻵن إﻟﻴﻜﻢ اﻟﺘﻨﻔﻴﺬ‬


‫ﺑﻔﺮض أﻥﻪ ﺗﻢ إﺽﺎﻓﺔ ﻣﻘﺎل ﺟﺪیﺪ وﻟﻴﻜﻦ ﺑﻌﻨﻮان ) اﺥﺘﺮاع ﺟﺪیﺪ یﻬﺰ اﻟﻌﺎﻟﻢ ( آﺎﻟﺘﺎﻟﻲ‪:‬‬

‫اﻵن ﻥﺮیﺪ ﺣﺬف هﺬا اﻟﻤﻘﺎل آﻴﻒ ؟؟؟؟؟‬


‫ﻣﺎ ﻋﻠﻴﻚ اﻻ اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺮاﺑﻂ )ﻣﺴﺢ( أﻣﺎم ﻋﻨﻮان اﻟﻤﻘﺎل )) اﺥﺘﺮاع ﺟﺪیﺪ یﻬﺰ اﻟﻌﺎﻟﻢ (( وﺳﻮف ﺗﻜﻮن اﻟﻨﺘﻴﺠﺔ آﺎﻟﺘﺎﻟﻲ ‪:‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


١٠٧ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

( ‫ ) أﺧﺒﺎر اﻟﺘﻘﻨﻴﺔ‬tech_del.asp‫ ﺗﺼﻤﻴﻢ اﻟﺼﻔﺤﺔ‬: ‫ﺙﺎﻥﻴ ًﺎ‬


tech_del.asp ‫( ﻟﺬﻟﻚ ﻗﻢ ﺑﺤﻔﻈﻬﺎ ﺑﺎﺳﻢ ﺟﺪیﺪ وﻟﻜﻦ ﺑﺎﺳﻢ‬news_del.asp) ‫هﺬﻩ اﻟﺼﻔﺤﺔ ﻻ ﺗﺨﺘﻠﻒ آﺜﻴﺮًا ﻋﻦ اﻟﺼﻔﺤﺔ‬
delete .‫ ﻓﻲ اﻻﺳﺘﻌﻼم‬tech_news ‫ إﻟﻰ‬general_news ‫وﻗﻢ ﺑﺘﻐﻴﻴﺮ‬
(news_upd.asp) ‫وﺑﺬﻟﻚ ﺗﻜﻮن ﻥﻔﺲ اﻟﻨﺘﻴﺠﺔ اﻟﺘﻲ ﺗﻢ اﻟﻮﺻﻮل اﻟﻴﻬﺎ ﻓﻲ اﻟﺼﻔﺤﺔ‬
: ‫اﻵن إﻟﻴﻜﻢ اﻟﻜﻮد ﺑﻌﺪ اﻟﺘﻌﺪیﻞ‬

<%
Name_Cooky=Request.cookies("Name")
If Name_Cooky="" Then
response.redirect ("admin.asp")
End If
%>
<html dir="rtl"><head> <meta http-equiv="Content-Language" content="ar-sa">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<ﺡﺬف ﺑﻴﺎﻥﺎت اﺥﺒﺎر اﻟﺘﻘﻨﻴﺔ‬/title>
</head><body>
<!--#include file="pageheader.asp" -->
<%
Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
connectionToDatabase.Open "DSN=my_data_base"
%>
<%
id=request.querystring("id")
deleteSQL = "delete * from tech_news where id="&id
connectionToDatabase.execute(deleteSQl)
response.redirect "news_list.asp"
%>
<%
connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>
<!--#include file="pagefooter.asp" --> </body></html>

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


‫ﺻﻔﺤﺔ ‪١٠٨‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﺘﺼﻤﻴﻡ ﺼﻔﺤﺔ ﺍﻟﺭﺍﺒﻁ )ﺇﺩﺍﺭﺓ ﺴﺠل ﺍﻟﺯﻭﺍﺭ( )‪(guest_list.asp‬‬

‫ﺳﻨﺼﻤﻢ اﻵن ﺻﻔﺤﺔ )‪ (guest_list.asp‬وﺗﺤﺘﻮي ﻋﻠﻰ ﻗﺎﺉﻤﺔ ﺑﺄﺳﻤﺎء ﺗﻮﻗﻴﻌﺎت ﺳﺠﻞ اﻟﺰوار وأﻣ ﺎم آ ﻞ اﺳ ﻢ ﺥﻴ ﺎر‬
‫"ﻣﺴﺢ"‪.‬‬
‫اﻟﺸﻜﻞ اﻟﻤﻘﺘﺮح ‪:‬‬

‫ﻥﻼﺡﻆ أن هﺬﻩ اﻟﺼﻔﺤﺔ ﻻ ﺗﺨﺘﻠﻒ آﺜﻴﺮا ﻋﻦ ﺻﻔﺤﺔ )‪(news_list.asp‬‬


‫اﻟﺘﻐﻴﻴﺮ اﻟﻮﺡﻴﺪ هﻮ ﺗﻐﻴﻴﺮ اﺳﻢ ﺟﺪول اﻟﺒﻴﺎﻥﺎت وراﺑﻂ اﻟﻤﺴﺢ‬
‫وراﺑﻂ آﻠﻤﺔ ﻣﺴﺢ هﻮ‬
‫>‪guest_del.asp?id=<%=rs("id")%‬‬

‫واﻟﻴﻜﻢ ﺹﻮرة اﻟﻜﻮد ‪:‬‬

‫اﻟﺠﺰء اﻷول‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


١٠٩ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

‫اﻟﺠﺰء اﻟﺜﺎﻥﻲ‬

‫واﻟﻴﻜﻢ اﻟﻜﻮد‬
<%
Name_Cooky=Request.cookies("Name")
If Name_Cooky="" Then
response.redirect ("admin.asp")
End If
%>
<html dir="rtl"><head> <meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<ﻗﺎﺉﻤﺔ ﺳﺠﻞ اﻟﺰوار‬/title>
</head><body>
<!--#include file="pageheader.asp" -->
<%
Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
connectionToDatabase.Open "DSN=my_data_base"
'‫أواﻣﺮ اﺥﺘﻴﺎر ﺟﺪول ﺳﺠﻞ اﻟﺰوار واﺳﺘﺪﻋﺎء اﻟﺒﻴﺎﻥﺎت ﻣﻨﻪ‬
selectSQL="select * from guest_book order by add_dat desc"
set rs=connectionToDatabase.execute(selectSQL)
%>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse"
bordercolor="#111111" width="100%" id="AutoNumber2" height="24">
<tr>
<td width="80%" bgcolor="#00FFFF" height="24">

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١١٠ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

<p align="center"><b>‫<اﺳﻢ ﻣُﻮﻗﻊ ﺳﺠﻞ اﻟﺰوار‬/b></td>


<td width="20%" bgcolor="#00FFFF" height="24">
<p align="center"><b>‫<ﻣﺴﺢ‬/b></td>
</tr>
</table>
<%
'‫أواﻣﺮ اﺳﺘﻌﺮاض اﻟﺘﻮاﻗﻴﻊ‬
do while not rs.eof
%>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse"
bordercolor="#111111" width="100%" id="AutoNumber1" height="28">
<tr>
<td width="80%" height="3">
<p align="center"><font face="Simplified Arabic"><b><%=rs("name")%>&nbsp;</b></font></td>
<td width="20%" align="center" height="3"><font face="Simplified Arabic"><a
href="guest_del.asp?id=<%=rs("id")%>"><b>‫<ﻣﺴﺢ‬/b></font></td>
</tr>
</table>
<%
rs.movenext
loop
%>
<%
connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>
<!--#include file="pagefooter.asp" --> </body></html>
: ‫اﻟﻨﺘﻴﺠﺔ هﻲ‬

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١١١ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

(guest_del.asp) ‫ﺘﺼﻤﻴﻡ ﺼﻔﺤﺔ‬

(news_del.asp) ‫ﻥﻼﺡﻆ أن هﺬﻩ اﻟﺼﻔﺤﺔ ﻻ ﺗﺨﺘﻠﻒ آﺜﻴﺮا ﻋﻦ ﺻﻔﺤﺔ‬


‫اﻟﺘﻐﻴﻴﺮ اﻟﻮﺡﻴﺪ هﻮ ﺗﻐﻴﻴﺮ اﺳﻢ ﺟﺪول اﻟﺒﻴﺎﻥﺎت واﻟﺮواﺑﻂ‬

: ‫ﺹﻮرة اﻟﻜﻮد‬

‫واﻟﻴﻜﻢ اﻟﻜﻮد‬
<%
Name_Cooky=Request.cookies("Name")
If Name_Cooky="" Then
response.redirect ("admin.asp")
End If
%>
<html dir="rtl"><head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<ﺡﺬف ﺑﻴﺎﻥﺎت ﺳﺠﻞ اﻟﺰوار‬/title>
</head><body>
<!--#include file="pageheader.asp" -->
<%
Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
connectionToDatabase.Open "DSN=my_data_base"

id=request.querystring("id")
deleteSQL = "delete * from guest_book where id="&id
connectionToDatabase.execute(deleteSQl)
response.redirect "guest_list.asp"

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


‫ﺻﻔﺤﺔ ‪١١٢‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫‪connectionToDatabase.Close‬‬
‫‪Set connectionToDatabase=Nothing‬‬
‫>‪%‬‬
‫>‪<!--#include file="pagefooter.asp" --‬‬
‫>‪</body></html‬‬

‫واﻟﻴﻜﻢ اﻟﻨﺘﻴﺠﺔ ﻋﻨﺪ اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺮاﺑﻂ )ﻣﺴﺢ ( أﻣﺎم أﺳﻢ ﻣُﻮﻗﻊ ﺳﺠﻞ اﻟﺰوار واﺳﻤﻪ ))إﺳﻤﺎﻋﻴﻞ أﺑﻮ زیﺪ((‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪١١٣‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﺘﺼﻤﻴﻡ ﺼﻔﺤﺔ ﺇﻀﺎﻓﺔ ﺍﻟﻤﺸﺭﻓﻴﻥ)‪(add_admin_users.asp‬‬

‫ﻥﻼﺡﻆ أن هﺬﻩ اﻟﺼﻔﺤﺔ ﻻ ﺗﺨﺘﻠﻒ آﺜﻴﺮا ﻋﻦ ﺻﻔﺤﺔ )‪(add_news.asp‬‬

‫اﻟﺸﻜﻞ اﻟﻤﻘﺘﺮح ‪:‬‬

‫ﻣﺮﺑﻊ ﻥﺺ )اﺳﻢ اﻟﻤﺴﺘﺨﺪم(‬

‫ﻣﺮﺑﻊ ﻥﺺ )آﻠﻤﺔ اﻟﻤﺮور(‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪١١٤‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﻣﺮﺑﻊ ﻥﺺ )ﺗﺄآﻴﺪ آﻠﻤﺔ اﻟﻤﺮور(‬

‫ﺥﺼﺎﺉﺺ اﻟﻨﻤﻮذج‬

‫واﻟﻴﻜﻢ ﺹﻮرة اﻟﻜﻮد ‪:‬‬


‫اﻟﺠﺰء اﻷول‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪١١٥‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫اﻟﺠﺰء اﻟﺜﺎﻥﻲ‬

‫اﻟﺠﺰء اﻟﺜﺎﻟﺚ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


١١٦ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

: ‫واﻟﻴﻜﻢ اﻟﻜﻮد‬

<%
Name_Cooky=Request.cookies("Name")
If Name_Cooky="" Then
response.redirect ("admin.asp")
End If

username=request.form("username")
pass1=request.form("pass1")
pass2=request.form("pass2")
%>
<html dir="rtl"><head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<إﺽﺎﻓﺔ ﻣﺸﺮف ﺟﺪیﺪ‬/title>
</head><body>
<!--#include file="pageheader.asp" -->
<%
Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
connectionToDatabase.Open "DSN=my_data_base"
%>
<%
function addf()
addSQL= " insert into admin (name,pass) values ('"&username&"','"&pass1&"') "
connectionToDatabase.execute(addSQL)
%>
<p><b><font face="Simplified Arabic" size="3" color="#008000"> ‫ ﻟﻘﺪ ﺗﻢ إﺽﺎﻓﺔ اﻟﻤﺸﺮف‬..‫ﺵﻜﺮا ﻟﻚ‬
‫<ﺑﻨﺠﺎح‬/font></b></p>
<%
end function
function checkf()
selectSQL="select * from admin where name='"&username&"'"
set usercheck=connectionToDatabase.execute(selectSQL)
if usercheck.EOF then
addf()
else
response.write "<b><font color=#FF8040> ‫ اﻟﺮﺟﺎء اﺥﺘﻴﺎر اﺳﻢ‬..‫اﺳﻢ اﻟﻤﺴﺘﺨﺪم ﻣﺤﺠﻮز ﺳﺎﺑﻘﺎ‬
‫<ﺁﺥﺮ‬/font></b>"
end if
end function
%>
<%
if username = "" or pass1 = "" or pass2 = "" then
response.write "<b><font color=#FF8040>‫<ﻟﻢ ﺗﻘﻢ ﺑﺈدﺥﺎل ﺑﻌﺾ اﻟﺤﻘﻮل‬/font></b>"
else
if pass1 <> pass2 then

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١١٧ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

response.write "<b><font color=#FF8040> ‫ اﻟﺮﺟﺎء‬..‫ﻗﻤﺖ ﺑﺈدﺥﺎل آﻠﻤﺔ ﻣﺨﺘﻠﻔﺔ ﻓﻲ ﺥﺎﻥﺔ ﺗﺄآﻴﺪ آﻠﻤﺔ اﻟﻤﺮور‬
‫<إدﺥﺎل اﻟﺒﻴﺎﻥﺎت ﻣﺮة أﺥﺮى‬/font></b>"
else
checkf()
end if
end if
%>
<p align="center"><font size="5" color="#FF0000">‫<إﺽﺎﻓﺔ ﻣﺸﺮف ﺟﺪیﺪ‬/font></p>
<form method="POST" action="add_admin_users.asp">
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse"
bordercolor="#111111" width="100%" id="AutoNumber1">
<tr>
<td width="22%"><b>‫ اﺳﻢ اﻟﻤﺴــﺘﺨﺪم‬:</b></td>
<td width="78%"><input type="text" name="username" size="40"></td>
</tr>
<tr>
<td width="22%"><b>‫ آﻠﻤﺔ اﻟﻤـــﺮور‬:</b></td>
<td width="78%"><input type="password" name="pass1" size="40"></td>
</tr>
<tr>
<td width="22%"><b>‫ ﺗﺄآﻴﺪ آﻠﻤﺔ اﻟﻤﺮور‬:</b></td>
<td width="78%"><input type="password" name="pass2" size="40"></td>
</tr>
</table>
<p align="justify"><input type="submit" value="‫ "إﺽﺎﻓﺔ‬name="B1">&nbsp;&nbsp;&nbsp;&nbsp;
<input type="reset" value="‫ "إﻋﺎدة ﺗﻌﻴﻴﻦ‬name="B2"></p>
</form>
<%
connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>
<!--#include file="pagefooter.asp" -->
</body></html>

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


‫ﺻﻔﺤﺔ ‪١١٨‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫واﻟﻴﻜﻢ اﻵن اﻟﻨﺘﻴﺠﺔ ‪:‬‬

‫ﻓﻲ ﺡﺎﻟﺔ ﻋﺪم ﺗﻌﺒﺌﺔ أي ﺥﺎﻥﺔ‬

‫ﻓﻲ ﺡﺎﻟﺔ اذا آﺎن اﺳﻢ اﻟﻤﺴﺘﺨﺪم ﻣﻮﺟﻮد ﻣﻦ ﻗﺒﻞ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪١١٩‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﻓﻲ ﺡﺎﻟﺔ ﻋﺪم ﺗﻄﺎﺑﻖ ﺥﺎﻥﺔ )آﻠﻤﺔ اﻟﻤﺮور( ﻣﻊ ﺥﺎﻥﺔ )ﺗﺄآﻴﺪ آﻠﻤﺔ اﻟﻤﺮور(‬

‫ﻓﻲ ﺡﺎﻟﺔ ﻗﺒﻮل ﻣﺸﺮف ﺟﺪیﺪ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪١٢٠‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﺘﺼﻤﻴﻡ ﺼﻔﺤﺔ ﺤﺫﻑ ﻤﺸﺭﻓﻴﻥ )‪(admin_users_display.asp‬‬

‫ﻥﻼﺡﻆ أن هﺬﻩ اﻟﺼﻔﺤﺔ ﻻ ﺗﺨﺘﻠﻒ آﺜﻴﺮا ﻋﻦ ﺻﻔﺤﺔ )‪(guest_list.asp‬‬


‫اﻻﺥ ﺘﻼف اﻟﻮﺡﻴ ﺪ ه ﻮ ﺗﻐﻴﻴ ﺮ اﺳ ﻢ ﺟ ﺪول اﻟﺒﻴﺎﻥ ﺎت إﻟ ﻰ ‪ admin‬وﺑﻌ ﺾ اﻟﻌﻨ ﺎویﻴﻦ وﺗﻐﻴﻴ ﺮ راﺑ ﻂ اﻟﻤﺴ ﺢ اﻟ ﻰ‬
‫‪admin_users_del.asp‬‬

‫اﻟﺸﻜﻞ اﻟﻤﻘﺘﺮح ‪:‬‬

‫واﻟﻴﻜﻢ ﺹﻮرة اﻟﻜﻮد ‪:‬‬

‫اﻟﺠﺰء اﻷول‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


١٢١ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

‫اﻟﺠﺰء اﻟﺜﺎﻥﻲ‬

: ‫واﻟﻴﻜﻢ اﻟﻜﻮد‬
<%
Name_Cooky=Request.cookies("Name")
If Name_Cooky="" Then
response.redirect ("admin.asp")
End If
%>
<html dir="rtl"><head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<ﻗﺎﺉﻤﺔ اﻟﻤﺸﺮﻓﻴﻦ‬/title>
</head><body>
<!--#include file="pageheader.asp" -->
<%
Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
connectionToDatabase.Open "DSN=my_data_base"

'‫أواﻣﺮ اﺥﺘﻴﺎر ﺟﺪول اﻻدارة واﺳﺘﺪﻋﺎء اﻟﺒﻴﺎﻥﺎت ﻣﻨﻪ‬


selectSQL="select * from admin"
set rs=connectionToDatabase.execute(selectSQL)
%>
<p align="center"><b><font color="#FF0000" size="5">‫<ﻗﺎﺉﻤﺔ ﺑﺄﺳﻤﺎء اﻟﻤﺸﺮﻓﻴﻦ‬/font></b></p>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111"
width="100%" id="AutoNumber2" height="24">
<tr>
<td width="80%" bgcolor="#00FFFF" height="24">

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٢٢ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

<p align="center"><b>‫<اﺳﻢ اﻟﻤﺸﺮف‬/b></td>


<td width="20%" bgcolor="#00FFFF" height="24">
<p align="center"><b>‫<ﻣﺴﺢ‬/b></td>
</tr>
</table>
<%
'‫أواﻣﺮ اﺳﺘﻌﺮاض اﺳﻤﺎء اﻟﻤﺸﺮﻓﻴﻦ‬
do while not rs.eof
%>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111"
width="100%" id="AutoNumber1" height="28">
<tr>
<td width="80%" height="3">
<p align="center"><font face="Simplified Arabic"><b><%=rs("name")%>&nbsp;</b></font></td>
<td width="20%" align="center" height="3"><font face="Simplified Arabic"><a
href="admin_users_del.asp?id=<%=rs("id")%>"><b>‫<ﻣﺴﺢ‬/b></font></td>
</tr>
</table>
<%
rs.movenext
loop
%>
<%
connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>
<br>
<!--#include file="pagefooter.asp" --> </body></html>
: ‫اﻟﻨﺘﻴﺠﺔ هﻲ‬

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٢٣ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

(admin_users_del) ‫ﺘﺼﻤﻴﻡ ﺼﻔﺤﺔ‬

(guest_del.asp) ‫ﻥﻼﺡﻆ أن هﺬﻩ اﻟﺼﻔﺤﺔ ﻻ ﺗﺨﺘﻠﻒ آﺜﻴﺮا ﻋﻦ ﺻﻔﺤﺔ‬


‫اﻟﺘﻐﻴﻴﺮ اﻟﻮﺡﻴﺪ هﻮ ﺗﻐﻴﻴﺮ اﺳﻢ ﺟﺪول اﻟﺒﻴﺎﻥﺎت واﻟﺮواﺑﻂ‬

: ‫ﺹﻮرة اﻟﻜﻮد‬

‫واﻟﻴﻜﻢ اﻟﻜﻮد‬

<%
Name_Cooky=Request.cookies("Name")
If Name_Cooky="" Then
response.redirect ("admin.asp")
End If
%>
<html dir="rtl"><head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<ﺡﺬف ﺑﻴﺎﻥﺎت ﻣﺸﺮف‬/title>
</head><body>
<!--#include file="pageheader.asp" -->
<%
Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٢٤ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

connectionToDatabase.Open "DSN=my_data_base"

id=request.querystring("id")
deleteSQL = "delete * from admin where id="&id
connectionToDatabase.execute(deleteSQl)
response.redirect "admin_users_display.asp"

connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>
<!--#include file="pagefooter.asp" -->
</body></html>

((ismail_damaran)) ‫واﻟﻴﻜﻢ اﻟﻨﺘﻴﺠﺔ ﻋﻨﺪ اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺮاﺑﻂ )ﻣﺴﺢ ( أﻣﺎم اﺳﻢ اﻟﻤﺸﺮف‬

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


‫ﺻﻔﺤﺔ ‪١٢٥‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﺘﺼﻤﻴﻡ ﺼﻔﺤﺔ ﺘﻐﻴﻴﺭ ﻜﻠﻤﺔ ﺍﻟﻤﺭﻭﺭ ﻷﺤﺩ ﺍﻟﻤﺸﺭﻓﻴﻥ )‪(change_admin_password.asp‬‬

‫ﻥﻼﺡﻆ أن هﺬﻩ اﻟﺼﻔﺤﺔ ﻣﺸﺎﺑﻬﺔ ﻟﻠﺼﻔﺤﺔ )‪(add_admin_users.asp‬‬

‫اﻟﺘﺼﻤﻴﻢ اﻟﻤﻘﺘﺮح ‪:‬‬

‫اﺳﻢ اﻟﻤﺴﺘﺨﺪم‬

‫آﻠﻤﺔ اﻟﻤﺮور اﻟﻘﺪیﻤﺔ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪١٢٦‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫آﻠﻤﺔ اﻟﻤﺮور اﻟﺠﺪیﺪة‬

‫ﺗﺄآﻴﺪ آﻠﻤﺔ اﻟﻤﺮور اﻟﺠﺪیﺪة‬

‫ﺥﺼﺎﺉﺺ اﻟﻨﻤﻮذج‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪١٢٧‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﺹﻮرة اﻟﻜﻮد ‪:‬‬

‫اﻟﺠﺰء اﻷول‬

‫اﻟﺠﺰء اﻟﺜﺎﻥﻲ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


١٢٨ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

‫اﻟﺠﺰء اﻟﺜﺎﻟﺚ‬

: ‫واﻟﻴﻜﻢ اﻟﻜﻮد‬
<%
Name_Cooky=Request.cookies("Name")
If Name_Cooky="" Then
response.redirect ("admin.asp")
End If
%>
<html dir="rtl"><head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<ﺗﻐﻴﻴﺮ آﻠﻤﺔ اﻟﻤﺮور ﻟﻠﻤﺸﺮﻓﻴﻦ‬/title>
</head><body>
<!--#include file="pageheader.asp" -->
<%
Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
connectionToDatabase.Open "DSN=my_data_base"
%>
<%
function updatef()
updateSQL= " update admin set pass = '"&pass1&"' where name='"&username&"' "
connectionToDatabase.execute(updateSQL)
%>
<p><b><font face="Simplified Arabic" size="3" color="#008000">‫ ﻟﻘﺪ ﺗﻢ ﺗﻐﻴﻴﺮ آﻠﻤﺔ اﻟﻤﺮور ﺑﻨﺠﺎح‬..‫<ﺵﻜﺮا ﻟﻚ‬/font></b></p>
<%
end function
function checkf()
selectSQL="select * from admin where name='"&username&"'"

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٢٩ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

set usercheck=connectionToDatabase.execute(selectSQL)
if usercheck.EOF then
response.write "<b><font color=#FF8040>‫<ﻻ یﻮﺟﺪ ﻣﺸﺮف ﺑﻬﺬا اﻻﺳﻢ‬/font></b>"
else
if oldpass=usercheck("pass") then
updatef()
else
response.write "<b><font color=#FF8040>‫<ﻟﻢ ﺗﺪﺥﻞ آﻠﻤﺔ اﻟﻤﺮور اﻟﻘﺪیﻤﺔ ﺑﺸﻜﻞ ﺻﺤﻴﺢ‬/font></b>"
end if
end if
end function

username=request.form("username")
oldpass=request.form("oldpass")
pass1=request.form("pass1")
pass2=request.form("pass2")
%>
<%
if username = "" or oldpass = "" or pass1 = "" or pass2 = "" then
response.write "<b><font color=#FF8040>‫<ﻟﻢ ﺗﻘﻢ ﺑﺈدﺥﺎل ﺑﻌﺾ اﻟﺤﻘﻮل‬/font></b>"
else
if pass1 <> pass2 then
response.write "<b><font color=#FF8040>‫<ﻗﻤﺖ ﺑﺈدﺥﺎل آﻠﻤﺔ ﻣﺨﺘﻠﻔﺔ ﻓﻲ ﺥﺎﻥﺔ ﺗﺄآﻴﺪ آﻠﻤﺔ اﻟﻤﺮور اﻟﺠﺪیﺪة‬/font></b>"
else
checkf()
end if
end if
%>
<p align="center"><font color="#C11111"><b>
<font face="Simplified Arabic" size="5">‫<ﺗﻐﻴﻴﺮ آﻠﻤﺔ اﻟﻤﺮور ﻷﺡﺪ اﻟﻤﺸﺮﻓﻴﻦ‬/font></b></font></p>
<form method="POST" action="change_admin_password.asp">
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111"
width="100%" id="AutoNumber1">
<tr>
<td width="25%"><b>‫ اﺳﻢ اﻟﻤﺴــــــﺘﺨﺪم‬:</b></td>
<td width="75%"><input type="text" name="username" size="40"></td>
</tr>
<tr>
<td width="25%"><b>‫ آﻠﻤﺔ اﻟﻤـــﺮور اﻟﻘﺪیﻤﺔ‬:</b></td>
<td width="75%"><input type="password" name="oldpass" size="40"></td>
</tr>
<tr>
<td width="25%"><b>‫ آﻠﻤﺔ اﻟﻤـــﺮور اﻟﺠﺪیﺪة‬:</b></td>
<td width="75%"><input type="password" name="pass1" size="40"></td>
</tr>
<tr>
<td width="25%"><b>‫ ﺗﺄآﻴﺪ آﻠﻤﺔ اﻟﻤﺮور اﻟﺠﺪیﺪة‬:</b></td>
<td width="75%"><input type="password" name="pass2" size="40"></td>
</tr>
</table>
<p align="justify"><input type="submit" value="‫ "ﺗﻐﻴﻴﺮ‬name="B1">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="reset" value="‫ "إﻋﺎدة ﺗﻌﻴﻴﻦ‬name="B2"></p>
</form>
<%
connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>
<!--#include file="pagefooter.asp" -->
</body></html>
: ‫واﻟﻴﻜﻢ اﻵن اﻟﻨﺘﻴﺠﺔ‬

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


‫ﺻﻔﺤﺔ ‪١٣٠‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﻓﻲ ﺡﺎﻟﺔ ﻋﺪم ﺗﻌﺒﺌﺔ أي ﺥﺎﻥﺔ‬

‫ﻓﻲ ﺣﺎل اﺱﻢ اﻟﻤﺴﺘﺨﺪم ﻏﻴﺮ ﻡﻮﺟﻮد ﻓﻲ اﻷﺹﻞ‬

‫ﻓﻲ ﺡﺎﻟﺔ إدﺥﺎل آﻠﻤﺔ اﻟﻤﺮور ﺑﺸﻜﻞ ﺻﺤﻴﺢ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪١٣١‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﻓﻲ ﺡﺎﻟﺔ آﺘﺎﺑﺔ ﺗﺄآﻴﺪ آﻠﻤﺔ اﻟﻤﺮور اﻟﺠﺪیﺪة ﺑﺸﻜﻞ ﻏﻴﺮ ﻣﻄﺎﺑﻖ ﻟﻜﻠﻤﺔ اﻟﻤﺮور اﻟﺠﺪیﺪة‬

‫ﻓﻲ ﺡﺎﻟﺔ آﺘﺎﺑﺔ ﺟﻤﻴﻊ اﻟﺤﻘﻮل ﺑﺸﻜﻞ ﺻﺤﻴﺢ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪١٣٢‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪١٣٣‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﺗﻘﺴﻴﻢ اﻟﻨﺘﺎﺋﺞ ﻋﻠﻰ ﻋﺪة ﺹﻔﺤﺎت‬


‫ﻓ ﻲ ﻗﻮاﻋ ﺪ اﻟﺒﻴﺎﻥ ﺎت اﻟﻜﺒﻴ ﺮة یﺼ ﻌﺐ ﻋ ﺮض اﻟﺒﻴﺎﻥ ﺎت ﻓ ﻲ ﺻ ﻔﺤﺔ واﺡ ﺪة‪ ،‬و ﻟﻬ ﺬا یﺠ ﺐ ﺗﻘﺴ ﻴﻢ اﻟﻨﺘ ﺎﺉﺞ ﻋﻠ ﻰ ﻋ ﺪة‬
‫ﺻﻔﺤﺎت‪ .‬ﻓﻲ اﻟـ ‪ ASP‬هﻨﺎك ﻋﺪة ﻃﺮق ﻟﻌﻤﻞ ذﻟﻚ‪.‬‬
‫اﻟﻄﺮیﻘﺔ اﻷوﻟﻰ ‪AbsolutePage‬‬

‫ﺗﻌﺘﺒﺮ هﺬﻩ اﻟﻄﺮیﻘﺔ اﻷآﺜﺮ آﻠﻔﺔ ﻻﻋﺘﻤﺎدهﺎ ﻋﻠﻰ ﺟﻬﺎز اﻟﺰﺑﻮن ﻟﺤﻔﻆ اﻟﺒﻴﺎﻥﺎت ﻣﺆﻗﺘﺎ ‪ ..‬ﻓﻲ اﻟﻜﻮد ‪:‬‬
‫‪RS.CursorLocation=adUseClient‬‬
‫هﺬﻩ هﻲ اﻟﺠﻤﻠﺔ اﻟﻤﻜﻠﻔﺔ و هﺬﻩ اﻟﻄﺮیﻘﺔ ﻻ ﺗﻌﻤﻞ ﺑﺪون اﺳﺘﺨﺪام ﻗﻴﻤﺔ ‪adUseClient‬‬
‫‪ CursorLocation‬اﻟﻘﻴﻤﺔ اﻻﻓﺘﺮاﺽﻴﺔ هﻲ ‪.adUseServer‬‬
‫‪ : CursorLocation.‬ﻣﻜﺎن ﺡﻔﻆ اﻟﺒﻴﺎﻥﺎت اﻟﻤﺆﻗﺖ ‪.‬‬
‫‪ .‬و ﺳ ﺒﺐ ﺁﺥ ﺮ یﺒﻄ ﺊ ﻋﻤﻠﻴ ﺔ ﺟﻠ ﺐ اﻟﺒﻴﺎﻥ ﺎت ه ﻲ اﺳ ﺘﺨﺪام ‪) Record Set‬یﻤﻜ ﻦ ﺗﻌﺮیﺒﻬ ﺎ آﺼ ﻨﺪوق اﻟﺒﻴﺎﻥ ﺎت(‬
‫اﻟﻤﺨﺼﺼ ﺔ ﻻﺳ ﺘﺨﺪاﻣﺎت ﺳ ﻄﺢ اﻟﻤﻜﺘ ﺐ و اﻟﺸ ﺒﻜﺎت ‪ ،‬و ﺗ ﺮك ﻥ ﻮع ‪ adOpenForwardOnly‬اﻟﻤﺨﺼ ﺺ‬
‫ﻻﺳﺘﺨﺪاﻣﺎت اﻟﻮیﺐ ‪...‬‬

‫ﻡﻘﺪﻡﺔ ﺗﻌﺮیﻔﻴﺔ ‪:‬‬


‫****إﺽﺎﻓﺔ‪ :‬أﻥﻮاع ﺻﻨﺎدیﻖ اﻟﺒﻴﺎﻥﺎت ‪Record Set‬‬

‫‪RS.Open SQL,ADO,RecordSetCursorType,LockType‬‬

‫‪:RecordSetCursorType‬ﻋﺪد ﺻﺤﻴﺢ یﺤﺪد ﻥﻮع ال ‪ RecordSet‬اﻟﻤﺴﺘﺨﺪم‬


‫ﻗﻴﻢ ‪:RecordSetCursorType‬‬
‫‪ : adOpenForwardOnly‬أﺳﺮع اﻷﻥﻮاع و أﺥﻔﻬﺎ اﻟﺘﺼﻔﺢ ﻓﻲ اﺗﺠﺎﻩ واﺡﺪ ﻓﻘﻂ‬
‫‪ : adOpenStatic‬ﻥﺴﺨﺔ ﺙﺎﺑﺘﺔ ﻣﻦ اﻟﺒﻴﺎﻥﺎت و ﺗﺼﻔﺢ اﻟﺒﻴﺎﻥﺎت ﻓﻲ ﺟﻤﻴﻊ اﻻﺗﺠﺎهﺎت‬
‫‪ : adOpenKeyset‬ﻓﺘﺢ ﻥﺴﺨﺔ ﻣﻦ اﻟﺒﻴﺎﻥﺎت و ﻣﺸﺎهﺪة اﻟﻤﺘﻐﻴﺮات ﻣﺎﻋﺪا اﻟﺒﻴﺎﻥﺎت اﻟﻤﺪﺥﻠﺔ ﺡﺪیﺜﺎ و ﺗﺼﻔﺢ اﻟﺒﻴﺎﻥﺎت‬
‫ﻓﻲ ﺟﻤﻴﻊ اﻻﺗﺠﺎهﺎت‬
‫‪ : adOpenDynamic‬ﻓﺘﺢ ﻥﺴﺨﺔ ﺗﺮى ﻓﻴﻬﺎ ﺟﻤﻴﻊ اﻟﺘﻐﻴﺮات اﻟﺘﻲ ﺗﻄﺮأ ﻋﻠﻰ اﻟﺒﻴﺎﻥﺎت ﻣﻦ ﺗﺤﺪیﺚ و ﺡﺬف و أدﺥﺎل‬

‫اﻟﻘﻴﻢ اﻟﺮﻗﻤﻴﺔ‪:‬‬
‫‪Const adOpenForwardOnly = 0‬‬
‫‪Const adOpenKeyset = 1‬‬
‫‪Const adOpenDynamic = 2‬‬
‫‪Const adOpenStatic = 3‬‬

‫ﺗﺠﺪ هﺬﻩ اﻟﺜﻮاﺑﺖ و اﻟﻌﺪیﺪ ﻣﻨﻬﺎ ﻓﻲ ﻣﻠﻒ أﺳﻤﺔ ‪ ) adovbs.inc‬ﻥﺴﺨﺔ اﻟﻔﻲ ﺑﻴﺴﻜﺮﺑﺖ ( ]اﺑﺤﺚ ﻋﻨﻪ ﻓﻲ ﺟﻬﺎزك [‬
‫ﺳﻮف ﺗﺠﺪﻩ ﻓﻲ اﻟﻤﺴﺎر اﻟﺘﺎﻟﻲ‪:‬‬
‫‪C:\Program Files\Common Files\System\ado\ adovbs.inc‬‬

‫واﻓﺘﺤﻪ ﻋﻦ ﻃﺮیﻖ ‪Notepad‬‬


‫وﻣﻠﻒ ‪ ) adojs.inc‬ﻥﺴﺨﺔ اﻟﺠﺎﻓﺎ ﺳﻜﺮﺑﺖ ( ‪..‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


١٣٤ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

:‫ ﻟﻠﺘﻌﺮف ﻋﻠﻰ ﻡﺤﺘﻮیﺎﺗﻪ‬adovbs.inc ‫واﻟﻴﻜﻢ اﻵن اﻟﻤﻠﻒ‬

<%
'--------------------------------------------------------------------
' Microsoft ADO
'
' Copyright (c) 1996-1998 Microsoft Corporation.
'
'
' ADO constants include file for VBScript
'
'--------------------------------------------------------------------
'---- CursorTypeEnum Values ----
Const adOpenForwardOnly = 0
Const adOpenKeyset = 1
Const adOpenDynamic = 2
Const adOpenStatic = 3

'---- CursorOptionEnum Values ----


Const adHoldRecords = &H00000100
Const adMovePrevious = &H00000200
Const adAddNew = &H01000400
Const adDelete = &H01000800
Const adUpdate = &H01008000
Const adBookmark = &H00002000
Const adApproxPosition = &H00004000
Const adUpdateBatch = &H00010000
Const adResync = &H00020000
Const adNotify = &H00040000
Const adFind = &H00080000
Const adSeek = &H00400000
Const adIndex = &H00800000

'---- LockTypeEnum Values ----


Const adLockReadOnly = 1
Const adLockPessimistic = 2
Const adLockOptimistic = 3
Const adLockBatchOptimistic = 4

'---- ExecuteOptionEnum Values ----


Const adAsyncExecute = &H00000010
Const adAsyncFetch = &H00000020
Const adAsyncFetchNonBlocking = &H00000040
Const adExecuteNoRecords = &H00000080
Const adExecuteStream = &H00000400

'---- ConnectOptionEnum Values ----


Const adAsyncConnect = &H00000010

'---- ObjectStateEnum Values ----


Const adStateClosed = &H00000000
Const adStateOpen = &H00000001
Const adStateConnecting = &H00000002
Const adStateExecuting = &H00000004
Const adStateFetching = &H00000008

'---- CursorLocationEnum Values ----


Const adUseServer = 2
Const adUseClient = 3
'---- DataTypeEnum Values ----

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٣٥ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

Const adEmpty = 0
Const adTinyInt = 16
Const adSmallInt = 2
Const adInteger = 3
Const adBigInt = 20
Const adUnsignedTinyInt = 17
Const adUnsignedSmallInt = 18
Const adUnsignedInt = 19
Const adUnsignedBigInt = 21
Const adSingle = 4
Const adDouble = 5
Const adCurrency = 6
Const adDecimal = 14
Const adNumeric = 131
Const adBoolean = 11
Const adError = 10
Const adUserDefined = 132
Const adVariant = 12
Const adIDispatch = 9
Const adIUnknown = 13
Const adGUID = 72
Const adDate = 7
Const adDBDate = 133
Const adDBTime = 134
Const adDBTimeStamp = 135
Const adBSTR = 8
Const adChar = 129
Const adVarChar = 200
Const adLongVarChar = 201
Const adWChar = 130
Const adVarWChar = 202
Const adLongVarWChar = 203
Const adBinary = 128
Const adVarBinary = 204
Const adLongVarBinary = 205
Const adChapter = 136
Const adFileTime = 64
Const adPropVariant = 138
Const adVarNumeric = 139
Const adArray = &H2000

'---- FieldAttributeEnum Values ----


Const adFldMayDefer = &H00000002
Const adFldUpdatable = &H00000004
Const adFldUnknownUpdatable = &H00000008
Const adFldFixed = &H00000010
Const adFldIsNullable = &H00000020
Const adFldMayBeNull = &H00000040
Const adFldLong = &H00000080
Const adFldRowID = &H00000100
Const adFldRowVersion = &H00000200
Const adFldCacheDeferred = &H00001000
Const adFldIsChapter = &H00002000
Const adFldNegativeScale = &H00004000
Const adFldKeyColumn = &H00008000
Const adFldIsRowURL = &H00010000
Const adFldIsDefaultStream = &H00020000
Const adFldIsCollection = &H00040000

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٣٦ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

'---- EditModeEnum Values ----


Const adEditNone = &H0000
Const adEditInProgress = &H0001
Const adEditAdd = &H0002
Const adEditDelete = &H0004

'---- RecordStatusEnum Values ----


Const adRecOK = &H0000000
Const adRecNew = &H0000001
Const adRecModified = &H0000002
Const adRecDeleted = &H0000004
Const adRecUnmodified = &H0000008
Const adRecInvalid = &H0000010
Const adRecMultipleChanges = &H0000040
Const adRecPendingChanges = &H0000080
Const adRecCanceled = &H0000100
Const adRecCantRelease = &H0000400
Const adRecConcurrencyViolation = &H0000800
Const adRecIntegrityViolation = &H0001000
Const adRecMaxChangesExceeded = &H0002000
Const adRecObjectOpen = &H0004000
Const adRecOutOfMemory = &H0008000
Const adRecPermissionDenied = &H0010000
Const adRecSchemaViolation = &H0020000
Const adRecDBDeleted = &H0040000

'---- GetRowsOptionEnum Values ----


Const adGetRowsRest = -1

'---- PositionEnum Values ----


Const adPosUnknown = -1
Const adPosBOF = -2
Const adPosEOF = -3

'---- BookmarkEnum Values ----


Const adBookmarkCurrent = 0
Const adBookmarkFirst = 1
Const adBookmarkLast = 2

'---- MarshalOptionsEnum Values ----


Const adMarshalAll = 0
Const adMarshalModifiedOnly = 1
'---- AffectEnum Values ----
Const adAffectCurrent = 1
Const adAffectGroup = 2
Const adAffectAllChapters = 4

'---- ResyncEnum Values ----


Const adResyncUnderlyingValues = 1
Const adResyncAllValues = 2

'---- CompareEnum Values ----


Const adCompareLessThan = 0
Const adCompareEqual = 1
Const adCompareGreaterThan = 2
Const adCompareNotEqual = 3
Const adCompareNotComparable = 4

'---- FilterGroupEnum Values ----


Const adFilterNone = 0

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٣٧ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

Const adFilterPendingRecords = 1
Const adFilterAffectedRecords = 2
Const adFilterFetchedRecords = 3
Const adFilterConflictingRecords = 5

'---- SearchDirectionEnum Values ----


Const adSearchForward = 1
Const adSearchBackward = -1

'---- PersistFormatEnum Values ----


Const adPersistADTG = 0
Const adPersistXML = 1

'---- StringFormatEnum Values ----


Const adClipString = 2

'---- ConnectPromptEnum Values ----


Const adPromptAlways = 1
Const adPromptComplete = 2
Const adPromptCompleteRequired = 3
Const adPromptNever = 4

'---- ConnectModeEnum Values ----


Const adModeUnknown = 0
Const adModeRead = 1
Const adModeWrite = 2
Const adModeReadWrite = 3
Const adModeShareDenyRead = 4
Const adModeShareDenyWrite = 8
Const adModeShareExclusive = &Hc
Const adModeShareDenyNone = &H10
Const adModeRecursive = &H400000

'---- RecordCreateOptionsEnum Values ----


Const adCreateCollection = &H00002000
Const adCreateStructDoc = &H80000000
Const adCreateNonCollection = &H00000000
Const adOpenIfExists = &H02000000
Const adCreateOverwrite = &H04000000
Const adFailIfNotExists = -1

'---- RecordOpenOptionsEnum Values ----


Const adOpenRecordUnspecified = -1
Const adOpenOutput = &H00800000
Const adOpenAsync = &H00001000
Const adDelayFetchStream = &H00004000
Const adDelayFetchFields = &H00008000
Const adOpenExecuteCommand = &H00010000

'---- IsolationLevelEnum Values ----


Const adXactUnspecified = &Hffffffff
Const adXactChaos = &H00000010
Const adXactReadUncommitted = &H00000100
Const adXactBrowse = &H00000100
Const adXactCursorStability = &H00001000
Const adXactReadCommitted = &H00001000
Const adXactRepeatableRead = &H00010000
Const adXactSerializable = &H00100000
Const adXactIsolated = &H00100000

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٣٨ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

'---- XactAttributeEnum Values ----


Const adXactCommitRetaining = &H00020000
Const adXactAbortRetaining = &H00040000

'---- PropertyAttributesEnum Values ----


Const adPropNotSupported = &H0000
Const adPropRequired = &H0001
Const adPropOptional = &H0002
Const adPropRead = &H0200
Const adPropWrite = &H0400

'---- ErrorValueEnum Values ----


Const adErrProviderFailed = &Hbb8
Const adErrInvalidArgument = &Hbb9
Const adErrOpeningFile = &Hbba
Const adErrReadFile = &Hbbb
Const adErrWriteFile = &Hbbc
Const adErrNoCurrentRecord = &Hbcd
Const adErrIllegalOperation = &Hc93
Const adErrCantChangeProvider = &Hc94
Const adErrInTransaction = &Hcae
Const adErrFeatureNotAvailable = &Hcb3
Const adErrItemNotFound = &Hcc1
Const adErrObjectInCollection = &Hd27
Const adErrObjectNotSet = &Hd5c
Const adErrDataConversion = &Hd5d
Const adErrObjectClosed = &He78
Const adErrObjectOpen = &He79
Const adErrProviderNotFound = &He7a
Const adErrBoundToCommand = &He7b
Const adErrInvalidParamInfo = &He7c
Const adErrInvalidConnection = &He7d
Const adErrNotReentrant = &He7e
Const adErrStillExecuting = &He7f
Const adErrOperationCancelled = &He80
Const adErrStillConnecting = &He81
Const adErrInvalidTransaction = &He82
Const adErrUnsafeOperation = &He84
Const adwrnSecurityDialog = &He85
Const adwrnSecurityDialogHeader = &He86
Const adErrIntegrityViolation = &He87
Const adErrPermissionDenied = &He88
Const adErrDataOverflow = &He89
Const adErrSchemaViolation = &He8a
Const adErrSignMismatch = &He8b
Const adErrCantConvertvalue = &He8c
Const adErrCantCreate = &He8d
Const adErrColumnNotOnThisRow = &He8e
Const adErrURLIntegrViolSetColumns = &He8f
Const adErrURLDoesNotExist = &He8f
Const adErrTreePermissionDenied = &He90
Const adErrInvalidURL = &He91
Const adErrResourceLocked = &He92
Const adErrResourceExists = &He93
Const adErrCannotComplete = &He94
Const adErrVolumeNotFound = &He95
Const adErrOutOfSpace = &He96
Const adErrResourceOutOfScope = &He97
Const adErrUnavailable = &He98
Const adErrURLNamedRowDoesNotExist = &He99

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٣٩ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

Const adErrDelResOutOfScope = &He9a


Const adErrPropInvalidColumn = &He9b
Const adErrPropInvalidOption = &He9c
Const adErrPropInvalidValue = &He9d
Const adErrPropConflicting = &He9e
Const adErrPropNotAllSettable = &He9f
Const adErrPropNotSet = &Hea0
Const adErrPropNotSettable = &Hea1
Const adErrPropNotSupported = &Hea2
Const adErrCatalogNotSet = &Hea3
Const adErrCantChangeConnection = &Hea4
Const adErrFieldsUpdateFailed = &Hea5
Const adErrDenyNotSupported = &Hea6
Const adErrDenyTypeNotSupported = &Hea7
Const adErrProviderNotSpecified = &Hea9

'---- ParameterAttributesEnum Values ----


Const adParamSigned = &H0010
Const adParamNullable = &H0040
Const adParamLong = &H0080

'---- ParameterDirectionEnum Values ----


Const adParamUnknown = &H0000
Const adParamInput = &H0001
Const adParamOutput = &H0002
Const adParamInputOutput = &H0003
Const adParamReturnValue = &H0004

'---- CommandTypeEnum Values ----


Const adCmdUnknown = &H0008
Const adCmdText = &H0001
Const adCmdTable = &H0002
Const adCmdStoredProc = &H0004
Const adCmdFile = &H0100
Const adCmdTableDirect = &H0200

'---- EventStatusEnum Values ----


Const adStatusOK = &H0000001
Const adStatusErrorsOccurred = &H0000002
Const adStatusCantDeny = &H0000003
Const adStatusCancel = &H0000004
Const adStatusUnwantedEvent = &H0000005

'---- EventReasonEnum Values ----


Const adRsnAddNew = 1
Const adRsnDelete = 2
Const adRsnUpdate = 3
Const adRsnUndoUpdate = 4
Const adRsnUndoAddNew = 5
Const adRsnUndoDelete = 6
Const adRsnRequery = 7
Const adRsnResynch = 8
Const adRsnClose = 9
Const adRsnMove = 10
Const adRsnFirstChange = 11
Const adRsnMoveFirst = 12
Const adRsnMoveNext = 13
Const adRsnMovePrevious = 14
Const adRsnMoveLast = 15

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٤٠ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

'---- SchemaEnum Values ----


Const adSchemaProviderSpecific = -1
Const adSchemaAsserts = 0
Const adSchemaCatalogs = 1
Const adSchemaCharacterSets = 2
Const adSchemaCollations = 3
Const adSchemaColumns = 4
Const adSchemaCheckConstraints = 5
Const adSchemaConstraintColumnUsage = 6
Const adSchemaConstraintTableUsage = 7
Const adSchemaKeyColumnUsage = 8
Const adSchemaReferentialConstraints = 9
Const adSchemaTableConstraints = 10
Const adSchemaColumnsDomainUsage = 11
Const adSchemaIndexes = 12
Const adSchemaColumnPrivileges = 13
Const adSchemaTablePrivileges = 14
Const adSchemaUsagePrivileges = 15
Const adSchemaProcedures = 16
Const adSchemaSchemata = 17
Const adSchemaSQLLanguages = 18
Const adSchemaStatistics = 19
Const adSchemaTables = 20
Const adSchemaTranslations = 21
Const adSchemaProviderTypes = 22
Const adSchemaViews = 23
Const adSchemaViewColumnUsage = 24
Const adSchemaViewTableUsage = 25
Const adSchemaProcedureParameters = 26
Const adSchemaForeignKeys = 27
Const adSchemaPrimaryKeys = 28
Const adSchemaProcedureColumns = 29
Const adSchemaDBInfoKeywords = 30
Const adSchemaDBInfoLiterals = 31
Const adSchemaCubes = 32
Const adSchemaDimensions = 33
Const adSchemaHierarchies = 34
Const adSchemaLevels = 35
Const adSchemaMeasures = 36
Const adSchemaProperties = 37
Const adSchemaMembers = 38
Const adSchemaTrustees = 39
Const adSchemaFunctions = 40
Const adSchemaActions = 41
Const adSchemaCommands = 42
Const adSchemaSets = 43

'---- FieldStatusEnum Values ----


Const adFieldOK = 0
Const adFieldCantConvertValue = 2
Const adFieldIsNull = 3
Const adFieldTruncated = 4
Const adFieldSignMismatch = 5
Const adFieldDataOverflow = 6
Const adFieldCantCreate = 7
Const adFieldUnavailable = 8
Const adFieldPermissionDenied = 9
Const adFieldIntegrityViolation = 10
Const adFieldSchemaViolation = 11
Const adFieldBadStatus = 12

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٤١ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

Const adFieldDefault = 13
Const adFieldIgnore = 15
Const adFieldDoesNotExist = 16
Const adFieldInvalidURL = 17
Const adFieldResourceLocked = 18
Const adFieldResourceExists = 19
Const adFieldCannotComplete = 20
Const adFieldVolumeNotFound = 21
Const adFieldOutOfSpace = 22
Const adFieldCannotDeleteSource = 23
Const adFieldReadOnly = 24
Const adFieldResourceOutOfScope = 25
Const adFieldAlreadyExists = 26
Const adFieldPendingInsert = &H10000
Const adFieldPendingDelete = &H20000
Const adFieldPendingChange = &H40000
Const adFieldPendingUnknown = &H80000
Const adFieldPendingUnknownDelete = &H100000

'---- SeekEnum Values ----


Const adSeekFirstEQ = &H1
Const adSeekLastEQ = &H2
Const adSeekAfterEQ = &H4
Const adSeekAfter = &H8
Const adSeekBeforeEQ = &H10
Const adSeekBefore = &H20

'---- ADCPROP_UPDATECRITERIA_ENUM Values ----


Const adCriteriaKey = 0
Const adCriteriaAllCols = 1
Const adCriteriaUpdCols = 2
Const adCriteriaTimeStamp = 3

'---- ADCPROP_ASYNCTHREADPRIORITY_ENUM Values ----


Const adPriorityLowest = 1
Const adPriorityBelowNormal = 2
Const adPriorityNormal = 3
Const adPriorityAboveNormal = 4
Const adPriorityHighest = 5

'---- ADCPROP_AUTORECALC_ENUM Values ----


Const adRecalcUpFront = 0
Const adRecalcAlways = 1
'---- ADCPROP_UPDATERESYNC_ENUM Values ----

'---- ADCPROP_UPDATERESYNC_ENUM Values ----

'---- MoveRecordOptionsEnum Values ----


Const adMoveUnspecified = -1
Const adMoveOverWrite = 1
Const adMoveDontUpdateLinks = 2
Const adMoveAllowEmulation = 4

'---- CopyRecordOptionsEnum Values ----


Const adCopyUnspecified = -1
Const adCopyOverWrite = 1
Const adCopyAllowEmulation = 4
Const adCopyNonRecursive = 2

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٤٢ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

'---- StreamTypeEnum Values ----


Const adTypeBinary = 1
Const adTypeText = 2

'---- LineSeparatorEnum Values ----


Const adLF = 10
Const adCR = 13
Const adCRLF = -1

'---- StreamOpenOptionsEnum Values ----


Const adOpenStreamUnspecified = -1
Const adOpenStreamAsync = 1
Const adOpenStreamFromRecord = 4

'---- StreamWriteEnum Values ----


Const adWriteChar = 0
Const adWriteLine = 1

'---- SaveOptionsEnum Values ----


Const adSaveCreateNotExist = 1
Const adSaveCreateOverWrite = 2

'---- FieldEnum Values ----


Const adDefaultStream = -1
Const adRecordURL = -2

'---- StreamReadEnum Values ----


Const adReadAll = -1
Const adReadLine = -2

'---- RecordTypeEnum Values ----


Const adSimpleRecord = 0
Const adCollectionRecord = 1
Const adStructDoc = 2
%>' Microsoft ADO
'' Copyright (c) 1996-1998 Microsoft Corporation.

' ADO constants include file for VBScript


''--------------------------------------------------------------------

'---- CursorTypeEnum Values ----


Const adOpenForwardOnly = 0
Const adOpenKeyset = 1
Const adOpenDynamic = 2
Const adOpenStatic = 3

'---- CursorOptionEnum Values ----


Const adHoldRecords = &H00000100
Const adMovePrevious = &H00000200
Const adAddNew = &H01000400
Const adDelete = &H01000800
Const adUpdate = &H01008000
Const adBookmark = &H00002000
Const adApproxPosition = &H00004000
Const adUpdateBatch = &H00010000
Const adResync = &H00020000
Const adNotify = &H00040000
Const adFind = &H00080000
Const adSeek = &H00400000
Const adIndex = &H00800000

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٤٣ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

'---- LockTypeEnum Values ----


Const adLockReadOnly = 1
Const adLockPessimistic = 2
Const adLockOptimistic = 3
Const adLockBatchOptimistic = 4

'---- ExecuteOptionEnum Values ----


Const adAsyncExecute = &H00000010
Const adAsyncFetch = &H00000020
Const adAsyncFetchNonBlocking = &H00000040
Const adExecuteNoRecords = &H00000080
Const adExecuteStream = &H00000400

'---- ConnectOptionEnum Values ----


Const adAsyncConnect = &H00000010

'---- ObjectStateEnum Values ----


Const adStateClosed = &H00000000
Const adStateOpen = &H00000001
Const adStateConnecting = &H00000002
Const adStateExecuting = &H00000004
Const adStateFetching = &H00000008

'---- CursorLocationEnum Values ----


Const adUseServer = 2
Const adUseClient = 3

'---- DataTypeEnum Values ----


Const adEmpty = 0
Const adTinyInt = 16
Const adSmallInt = 2
Const adInteger = 3
Const adBigInt = 20
Const adUnsignedTinyInt = 17
Const adUnsignedSmallInt = 18
Const adUnsignedInt = 19
Const adUnsignedBigInt = 21
Const adSingle = 4
Const adDouble = 5
Const adCurrency = 6
Const adDecimal = 14
Const adNumeric = 131
Const adBoolean = 11
Const adError = 10
Const adUserDefined = 132
Const adVariant = 12
Const adIDispatch = 9
Const adIUnknown = 13
Const adGUID = 72
Const adDate = 7
Const adDBDate = 133
Const adDBTime = 134
Const adDBTimeStamp = 135
Const adBSTR = 8
Const adChar = 129
Const adVarChar = 200
Const adLongVarChar = 201
Const adWChar = 130
Const adVarWChar = 202
Const adLongVarWChar = 203

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٤٤ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

Const adBinary = 128


Const adVarBinary = 204
Const adLongVarBinary = 205
Const adChapter = 136
Const adFileTime = 64
Const adPropVariant = 138
Const adVarNumeric = 139
Const adArray = &H2000

'---- FieldAttributeEnum Values ----


Const adFldMayDefer = &H00000002
Const adFldUpdatable = &H00000004
Const adFldUnknownUpdatable = &H00000008
Const adFldFixed = &H00000010
Const adFldIsNullable = &H00000020
Const adFldMayBeNull = &H00000040
Const adFldLong = &H00000080
Const adFldRowID = &H00000100
Const adFldRowVersion = &H00000200
Const adFldCacheDeferred = &H00001000
Const adFldIsChapter = &H00002000
Const adFldNegativeScale = &H00004000
Const adFldKeyColumn = &H00008000
Const adFldIsRowURL = &H00010000
Const adFldIsDefaultStream = &H00020000
Const adFldIsCollection = &H00040000

'---- EditModeEnum Values ----


Const adEditNone = &H0000
Const adEditInProgress = &H0001
Const adEditAdd = &H0002
Const adEditDelete = &H0004

'---- RecordStatusEnum Values ----


Const adRecOK = &H0000000
Const adRecNew = &H0000001
Const adRecModified = &H0000002
Const adRecDeleted = &H0000004
Const adRecUnmodified = &H0000008
Const adRecInvalid = &H0000010
Const adRecMultipleChanges = &H0000040
Const adRecPendingChanges = &H0000080
Const adRecCanceled = &H0000100
Const adRecCantRelease = &H0000400
Const adRecConcurrencyViolation = &H0000800
Const adRecIntegrityViolation = &H0001000
Const adRecMaxChangesExceeded = &H0002000
Const adRecObjectOpen = &H0004000
Const adRecOutOfMemory = &H0008000
Const adRecPermissionDenied = &H0010000
Const adRecSchemaViolation = &H0020000
Const adRecDBDeleted = &H0040000

'---- GetRowsOptionEnum Values ----


Const adGetRowsRest = -1

'---- PositionEnum Values ----


Const adPosUnknown = -1
Const adPosBOF = -2
Const adPosEOF = -3

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٤٥ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

'---- BookmarkEnum Values ----


Const adBookmarkCurrent = 0
Const adBookmarkFirst = 1
Const adBookmarkLast = 2

'---- MarshalOptionsEnum Values ----


Const adMarshalAll = 0
Const adMarshalModifiedOnly = 1

'---- AffectEnum Values ----


Const adAffectCurrent = 1
Const adAffectGroup = 2
Const adAffectAllChapters = 4

'---- ResyncEnum Values ----


Const adResyncUnderlyingValues = 1
Const adResyncAllValues = 2

'---- CompareEnum Values ----


Const adCompareLessThan = 0
Const adCompareEqual = 1
Const adCompareGreaterThan = 2
Const adCompareNotEqual = 3
Const adCompareNotComparable = 4

'---- FilterGroupEnum Values ----


Const adFilterNone = 0
Const adFilterPendingRecords = 1
Const adFilterAffectedRecords = 2
Const adFilterFetchedRecords = 3
Const adFilterConflictingRecords = 5

'---- SearchDirectionEnum Values ----


Const adSearchForward = 1
Const adSearchBackward = -1

'---- PersistFormatEnum Values ----


Const adPersistADTG = 0
Const adPersistXML = 1

'---- StringFormatEnum Values ----


Const adClipString = 2

'---- ConnectPromptEnum Values ----


Const adPromptAlways = 1
Const adPromptComplete = 2
Const adPromptCompleteRequired = 3
Const adPromptNever = 4

'---- ConnectModeEnum Values ----


Const adModeUnknown = 0
Const adModeRead = 1
Const adModeWrite = 2
Const adModeReadWrite = 3
Const adModeShareDenyRead = 4
Const adModeShareDenyWrite = 8
Const adModeShareExclusive = &Hc
Const adModeShareDenyNone = &H10
Const adModeRecursive = &H400000
'---- RecordCreateOptionsEnum Values ----
Const adCreateCollection = &H00002000
Const adCreateStructDoc = &H80000000

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٤٦ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

Const adCreateNonCollection = &H00000000


Const adOpenIfExists = &H02000000
Const adCreateOverwrite = &H04000000
Const adFailIfNotExists = -1

'---- RecordOpenOptionsEnum Values ----


Const adOpenRecordUnspecified = -1
Const adOpenOutput = &H00800000
Const adOpenAsync = &H00001000
Const adDelayFetchStream = &H00004000
Const adDelayFetchFields = &H00008000
Const adOpenExecuteCommand = &H00010000

'---- IsolationLevelEnum Values ----


Const adXactUnspecified = &Hffffffff
Const adXactChaos = &H00000010
Const adXactReadUncommitted = &H00000100
Const adXactBrowse = &H00000100
Const adXactCursorStability = &H00001000
Const adXactReadCommitted = &H00001000
Const adXactRepeatableRead = &H00010000
Const adXactSerializable = &H00100000
Const adXactIsolated = &H00100000

'---- XactAttributeEnum Values ----


Const adXactCommitRetaining = &H00020000
Const adXactAbortRetaining = &H00040000

'---- PropertyAttributesEnum Values ----


Const adPropNotSupported = &H0000
Const adPropRequired = &H0001
Const adPropOptional = &H0002
Const adPropRead = &H0200
Const adPropWrite = &H0400

'---- ErrorValueEnum Values ----


Const adErrProviderFailed = &Hbb8
Const adErrInvalidArgument = &Hbb9
Const adErrOpeningFile = &Hbba
Const adErrReadFile = &Hbbb
Const adErrWriteFile = &Hbbc
Const adErrNoCurrentRecord = &Hbcd
Const adErrIllegalOperation = &Hc93
Const adErrCantChangeProvider = &Hc94
Const adErrInTransaction = &Hcae
Const adErrFeatureNotAvailable = &Hcb3
Const adErrItemNotFound = &Hcc1
Const adErrObjectInCollection = &Hd27
Const adErrObjectNotSet = &Hd5c
Const adErrDataConversion = &Hd5d
Const adErrObjectClosed = &He78
Const adErrObjectOpen = &He79
Const adErrProviderNotFound = &He7a
Const adErrBoundToCommand = &He7b
Const adErrInvalidParamInfo = &He7c
Const adErrInvalidConnection = &He7d
Const adErrNotReentrant = &He7e
Const adErrStillExecuting = &He7f
Const adErrOperationCancelled = &He80
Const adErrStillConnecting = &He81

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٤٧ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

Const adErrInvalidTransaction = &He82


Const adErrUnsafeOperation = &He84
Const adwrnSecurityDialog = &He85
Const adwrnSecurityDialogHeader = &He86
Const adErrIntegrityViolation = &He87
Const adErrPermissionDenied = &He88
Const adErrDataOverflow = &He89
Const adErrSchemaViolation = &He8a
Const adErrSignMismatch = &He8b
Const adErrCantConvertvalue = &He8c
Const adErrCantCreate = &He8d
Const adErrColumnNotOnThisRow = &He8e
Const adErrURLIntegrViolSetColumns = &He8f
Const adErrURLDoesNotExist = &He8f
Const adErrTreePermissionDenied = &He90
Const adErrInvalidURL = &He91
Const adErrResourceLocked = &He92
Const adErrResourceExists = &He93
Const adErrCannotComplete = &He94
Const adErrVolumeNotFound = &He95
Const adErrOutOfSpace = &He96
Const adErrResourceOutOfScope = &He97
Const adErrUnavailable = &He98
Const adErrURLNamedRowDoesNotExist = &He99
Const adErrDelResOutOfScope = &He9a
Const adErrPropInvalidColumn = &He9b
Const adErrPropInvalidOption = &He9c
Const adErrPropInvalidValue = &He9d
Const adErrPropConflicting = &He9e
Const adErrPropNotAllSettable = &He9f
Const adErrPropNotSet = &Hea0
Const adErrPropNotSettable = &Hea1
Const adErrPropNotSupported = &Hea2
Const adErrCatalogNotSet = &Hea3
Const adErrCantChangeConnection = &Hea4
Const adErrFieldsUpdateFailed = &Hea5
Const adErrDenyNotSupported = &Hea6
Const adErrDenyTypeNotSupported = &Hea7
Const adErrProviderNotSpecified = &Hea9

'---- ParameterAttributesEnum Values ----


Const adParamSigned = &H0010
Const adParamNullable = &H0040
Const adParamLong = &H0080

'---- ParameterDirectionEnum Values ----


Const adParamUnknown = &H0000
Const adParamInput = &H0001
Const adParamOutput = &H0002
Const adParamInputOutput = &H0003
Const adParamReturnValue = &H0004

'---- CommandTypeEnum Values ----


Const adCmdUnknown = &H0008
Const adCmdText = &H0001
Const adCmdTable = &H0002
Const adCmdStoredProc = &H0004
Const adCmdFile = &H0100
Const adCmdTableDirect = &H0200

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٤٨ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

'---- EventStatusEnum Values ----


Const adStatusOK = &H0000001
Const adStatusErrorsOccurred = &H0000002
Const adStatusCantDeny = &H0000003
Const adStatusCancel = &H0000004
Const adStatusUnwantedEvent = &H0000005

'---- EventReasonEnum Values ----


Const adRsnAddNew = 1
Const adRsnDelete = 2
Const adRsnUpdate = 3
Const adRsnUndoUpdate = 4
Const adRsnUndoAddNew = 5
Const adRsnUndoDelete = 6
Const adRsnRequery = 7
Const adRsnResynch = 8
Const adRsnClose = 9
Const adRsnMove = 10
Const adRsnFirstChange = 11
Const adRsnMoveFirst = 12
Const adRsnMoveNext = 13
Const adRsnMovePrevious = 14
Const adRsnMoveLast = 15

'---- SchemaEnum Values ----


Const adSchemaProviderSpecific = -1
Const adSchemaAsserts = 0
Const adSchemaCatalogs = 1
Const adSchemaCharacterSets = 2
Const adSchemaCollations = 3
Const adSchemaColumns = 4
Const adSchemaCheckConstraints = 5
Const adSchemaConstraintColumnUsage = 6
Const adSchemaConstraintTableUsage = 7
Const adSchemaKeyColumnUsage = 8
Const adSchemaReferentialConstraints = 9
Const adSchemaTableConstraints = 10
Const adSchemaColumnsDomainUsage = 11
Const adSchemaIndexes = 12
Const adSchemaColumnPrivileges = 13
Const adSchemaTablePrivileges = 14
Const adSchemaUsagePrivileges = 15
Const adSchemaProcedures = 16
Const adSchemaSchemata = 17
Const adSchemaSQLLanguages = 18
Const adSchemaStatistics = 19
Const adSchemaTables = 20
Const adSchemaTranslations = 21
Const adSchemaProviderTypes = 22
Const adSchemaViews = 23
Const adSchemaViewColumnUsage = 24
Const adSchemaViewTableUsage = 25
Const adSchemaProcedureParameters = 26
Const adSchemaForeignKeys = 27
Const adSchemaPrimaryKeys = 28
Const adSchemaProcedureColumns = 29
Const adSchemaDBInfoKeywords = 30
Const adSchemaDBInfoLiterals = 31
Const adSchemaCubes = 32
Const adSchemaDimensions = 33

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٤٩ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

Const adSchemaHierarchies = 34
Const adSchemaLevels = 35
Const adSchemaMeasures = 36
Const adSchemaProperties = 37
Const adSchemaMembers = 38
Const adSchemaTrustees = 39
Const adSchemaFunctions = 40
Const adSchemaActions = 41
Const adSchemaCommands = 42
Const adSchemaSets = 43

'---- FieldStatusEnum Values ----


Const adFieldOK = 0
Const adFieldCantConvertValue = 2
Const adFieldIsNull = 3
Const adFieldTruncated = 4
Const adFieldSignMismatch = 5
Const adFieldDataOverflow = 6
Const adFieldCantCreate = 7
Const adFieldUnavailable = 8
Const adFieldPermissionDenied = 9
Const adFieldIntegrityViolation = 10
Const adFieldSchemaViolation = 11
Const adFieldBadStatus = 12
Const adFieldDefault = 13
Const adFieldIgnore = 15
Const adFieldDoesNotExist = 16
Const adFieldInvalidURL = 17
Const adFieldResourceLocked = 18
Const adFieldResourceExists = 19
Const adFieldCannotComplete = 20
Const adFieldVolumeNotFound = 21
Const adFieldOutOfSpace = 22
Const adFieldCannotDeleteSource = 23
Const adFieldReadOnly = 24
Const adFieldResourceOutOfScope = 25
Const adFieldAlreadyExists = 26
Const adFieldPendingInsert = &H10000
Const adFieldPendingDelete = &H20000
Const adFieldPendingChange = &H40000
Const adFieldPendingUnknown = &H80000
Const adFieldPendingUnknownDelete = &H100000

'---- SeekEnum Values ----


Const adSeekFirstEQ = &H1
Const adSeekLastEQ = &H2
Const adSeekAfterEQ = &H4
Const adSeekAfter = &H8
Const adSeekBeforeEQ = &H10
Const adSeekBefore = &H20

'---- ADCPROP_UPDATECRITERIA_ENUM Values ----


Const adCriteriaKey = 0
Const adCriteriaAllCols = 1
Const adCriteriaUpdCols = 2
Const adCriteriaTimeStamp = 3

'---- ADCPROP_ASYNCTHREADPRIORITY_ENUM Values ----


Const adPriorityLowest = 1
Const adPriorityBelowNormal = 2

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٥٠ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

Const adPriorityNormal = 3
Const adPriorityAboveNormal = 4
Const adPriorityHighest = 5

'---- ADCPROP_AUTORECALC_ENUM Values ----


Const adRecalcUpFront = 0
Const adRecalcAlways = 1

'---- ADCPROP_UPDATERESYNC_ENUM Values ----


'---- MoveRecordOptionsEnum Values ----
Const adMoveUnspecified = -1
Const adMoveOverWrite = 1
Const adMoveDontUpdateLinks = 2
Const adMoveAllowEmulation = 4

'---- CopyRecordOptionsEnum Values ----


Const adCopyUnspecified = -1
Const adCopyOverWrite = 1
Const adCopyAllowEmulation = 4
Const adCopyNonRecursive = 2

'---- StreamTypeEnum Values ----


Const adTypeBinary = 1
Const adTypeText = 2

'---- LineSeparatorEnum Values ----


Const adLF = 10
Const adCR = 13
Const adCRLF = -1

'---- StreamOpenOptionsEnum Values ----


Const adOpenStreamUnspecified = -1
Const adOpenStreamAsync = 1
Const adOpenStreamFromRecord = 4

'---- StreamWriteEnum Values ----


Const adWriteChar = 0
Const adWriteLine = 1

'---- SaveOptionsEnum Values ----


Const adSaveCreateNotExist = 1
Const adSaveCreateOverWrite = 2

'---- FieldEnum Values ----


Const adDefaultStream = -1
Const adRecordURL = -2

'---- StreamReadEnum Values ----


Const adReadAll = -1
Const adReadLine = -2

'---- RecordTypeEnum Values ----


Const adSimpleRecord = 0
Const adCollectionRecord = 1
Const adStructDoc = 2
%>

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


‫ﺻﻔﺤﺔ ‪١٥١‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫اﻵن ﺱﻮف ﻥﻘﻮم ﺑﻌﻤﻞ ﺗﻘﺴﻴﻢ ﻟﻠﻨﺘﺎﺋﺞ ﻋﻠﻰ ﺹﻔﺤﺔ ﻋﺮض اﻟﺘﻮﻗﻴﻌﺎت ) ﺱﺠﻞ اﻟﺰوار ( )‪(guest.asp‬‬
‫** اﻟﺸﻜﻞ اﻟﻤﻘﺘﺮح ﻟﺘﻘﺴﻢ اﻟﻨﺘﺎﺉﺞ وﺳﻮف یﻜﻮن آﻞ ﺥﻤﺲ ﺳﺠﻼت ﻓﻲ ﺻﻔﺤﺔ ﻣﺴﺘﻘﻠﺔ‬
‫أوﻻ‪ :‬ﻓﻲ ﺣﺎﻟﺔ اﻟﺴﺠﻼت اﻟﻤﻌﺮوﺽﺔ اﻗﻞ أو ﺗﺴﺎوي ﺧﻤﺲ ﺱﺠﻼت‬

‫ﺙﺎﻥﻴﺎ ﻓﻲ ﺣﺎﻟﺔ آﻮن اﻟﺴﺠﻼت اﻟﻤﻌﺮوﺽﺔ أآﺜﺮ ﻡﻦ ﺧﻤﺲ ﺱﺠﻼت‬


‫اﻟﺠﺰء اﻷول ﻣﻦ اﻟﺼﻔﺤﺔ اﻷوﻟﻰ اﻟﻤﻌﺮوﺽﺔ ) ﺻﻔﺤﺔ رﻗﻢ ‪ ١ :‬ﻣﻦ ‪( ٢‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪١٥٢‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫اﻟﺠﺰء اﻟﺜﺎﻥﻲ ﻣﻦ اﻟﺼﻔﺤﺔ اﻷوﻟﻰ اﻟﻤﻌﺮوﺽﺔ ) ﺻﻔﺤﺔ رﻗﻢ ‪ ١ :‬ﻣﻦ ‪( ٢‬‬

‫اﻟﺠﺰء اﻟﺜﺎﻟﺚ اﻟﺼﻔﺤﺔ اﻟﺜﺎﻥﻴﺔ اﻟﻤﻌﺮوﺽﺔ ) ﺻﻔﺤﺔ رﻗﻢ ‪ ٢ :‬ﻣﻦ ‪] ( ٢‬وذﻟﻚ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺮاﺑﻂ اﻟﺼﻔﺤﺔ اﻟﺘﺎﻟﻴﺔ أو‬
‫اﻟﺮاﺑﻂ اﻟﺼﻔﺤﺔ اﻷﺧﻴﺮة[‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪١٥٣‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫واﻵن إﻟﻴﻜﻢ ﺹﻮرة اﻟﻜﻮد‬

‫اﻟﺠﺰء اﻷول‬

‫اﻟﺠﺰء اﻟﺜﺎﻥﻲ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪١٥٤‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫اﻟﺠﺰء اﻟﺜﺎﻟﺚ‬

‫اﻟﺠﺰء اﻟﺮاﺑﻊ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


١٥٥ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

‫اﻟﺠﺰء اﻟﺨﺎﻣﺲ‬

: ‫واﻟﻴﻜﻢ اﻟﻜﻮد‬

<html dir="rtl"><head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<ﻋﺮض اﻟﺘﻮﻗﻴﻌﺎت‬/title>
</head><body>
<!--#include file="pageheader.asp" -->
<p align="center"><font color="#009933">‫ وﻣﻼﺡﻈﺎﺗﻜﻢ‬... ‫ﻣﺮﺡﺒًﺎ ﺑﻜﻢ ﻓﻲ ﺳﺠﻞ اﻟﺰوار‬
‫<ﺗﺴﻌﺪﻥﺎ‬/font></p>
<p align="center"><font face="Simplified Arabic"><a href="sign_book.asp">‫ﻹﺽﺎﻓﺔ ﻣﻼﺡﻈﺎﺗﻚ‬
‫<ﻋﺰیﺰي اﻟﺰاﺉﺮ اﺽﻐﻂ هﻨﺎ‬/a></font></p>

<%
Const adOpenForwardOnly = 0
Const adOpenKeyset = 1
Const adOpenDynamic = 2
Const adOpenStatic = 3
'---- LockTypeEnum Values ----
Const adLockReadOnly = 1
Const adLockPessimistic = 2
Const adLockOptimistic = 3
Const adLockBatchOptimistic = 4

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٥٦ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

'---- CursorLocationEnum Values ----


Const adUseServer = 2
Const adUseClient = 3
'---- CommandTypeEnum Values ----
Const adCmdUnknown = &H0008
Const adCmdText = &H0001
Const adCmdTable = &H0002
Const adCmdStoredProc = &H0004
Const adCmdFile = &H0100
Const adCmdTableDirect = &H0200
%>
<%
dim CurrentPage
dim TotalPages
dim NumberOfRecords
dim SQL
dim RS
dim connectionToDatabase

Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
Set RS=Server.CreateObject("ADODB.Recordset")
connectionToDatabase.Open "DSN=my_data_base"

SQL="select * from guest_book order by add_dat desc"

CurrentPage=Request.QueryString("Page")
If CurrentPage="" Or Not IsNumeric(CurrentPage) then CurrentPage=1 Else
CurrentPage=CInt(CurrentPage)
if CurrentPage<1 then CurrentPage=1

RS.CursorLocation=adUseClient
RS.PageSize =5

'CursorLocation ‫ اﻟﻘﻴﻤﺔ اﻷﻓﺘﺮاﺽﻴﺔ هﻲ‬adUseServer


'‫ یﺠﺐ ﺗﻐﻴﺮهﺎ اﻟﻰ‬adUseClient ‫ﻟﻌﻤﻞ هﺬﻩ اﻟﻄﺮیﻘﺔ‬
RS.Open SQL,connectionToDatabase,adOpenStatic,adLockReadOnly,adCmdText

'or suse
'RS.Open SQL,connectionToDatabase,1,3

TotalPages=RS.PageCount
NumberOfRecords=RS.RecordCount
if CurrentPage>TotalPages then CurrentPage=1
RS.AbsolutePage =CurrentPage
Response.Write("<div align=left>")
Response.Write(" ‫ ﺻﻔﺤﺔ رﻗﻢ‬: " & CurrentPage & "</B>")
Response.Write(" ‫ & " ﻣﻦ‬TotalPages & "</B><BR>" & "</center>")
Response.Write("</div>")
%>

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٥٧ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse"


bordercolor="#111111" width="100%" id="AutoNumber1">
<%
do while not RS.EOF
if RS.AbsolutePage >CurrentPage then
exit do
end if%>

<tr>
<td width="30%" bgcolor="#00FFFF"><b>‫ اﻻﺳﻢ‬:</b></td>
<td width="70%" bgcolor="#00FFFF"><%response.write RS(("name"))%></td>
</tr>
<tr>
<td width="30%"><b>‫ اﻟﺒﺮیﺪ اﻻﻟﻜﺘﺮوﻥﻲ‬:</b></td>
<td width="70%"><a href="mailto:<%response.write RS("email")%>"><%response.write
RS(("email"))%></a></td>
</tr>
<tr>
<td width="30%"><b>‫ اﻟﻤﻮﻗﻊ اﻟﺸﺨﺼﻲ‬:</b></td>
<td width="70%"><a href="<%response.write RS("website")%>"><%response.write
RS(("website"))%></a></td>
</tr>
<tr>
<td width="30%"><b>‫ ﻃﺮیﻘﺔ اﻻﺳﺘﺪﻻل ﻋﻠﻰ ﻣﻮﻗﻌﻨﺎ‬:</b></td>
<td width="70%"><%response.write (RS("link"))%></td>
</tr>
<tr>
<td width="30%"><b>‫ اﻟﺘﻘﻴﻴﻢ‬:</b></td>
<td width="70%"><%response.write RS(("ranking"))%></td>
</tr>
<tr>
<td width="30%" style="border-bottom-style: solid; border-bottom-color: #008000"><b>‫اﻟﺘﻌﻠﻴﻖ‬
:</b></td>
<td width="70%" style="border-bottom-style: solid; border-bottom-color:
#008000"><%response.write RS(("comment"))%></td>
</tr>

<% RS.movenext
loop
%>
</table>

<p align="center"><font face="Simplified Arabic"><a href="sign_book.asp">‫ﻹﺽﺎﻓﺔ ﻣﻼﺡﻈﺎﺗﻚ‬


‫<ﻋﺰیﺰي اﻟﺰاﺉﺮ اﺽﻐﻂ هﻨﺎ‬/a></font></p>
<%
RS.Close
Set RS=Nothing
connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٥٨ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

<%
if TotalPages>1 then
dim Url
Const p_FirstPage="‫"اﻟﺼﻔﺤﺔ اﻷوﻟﻰ‬
Const p_PrevPage="‫"اﻟﺼﻔﺤﺔ اﻟﺴﺎﺑﻘﺔ‬
Const p_NextPage="‫"اﻟﺼﻔﺤﺔ اﻟﺘﺎﻟﻴﺔ‬
Const p_LastPage="‫"اﻟﺼﻔﺤﺔ اﻷﺥﻴﺮة‬
Url="guest.asp?page="
Response.Write("<div align=right>")
if CurrentPage >1 then
Response.Write("<A href='" & Url & "1'>" & p_FirstPage & " </A> &nbsp;&nbsp;" )
Response.Write("<A href='" & Url & CurrentPage-1 & "'>" & p_PrevPage & "</A>
&nbsp;&nbsp;" )
Else
Response.Write( p_FirstPage & "&nbsp;&nbsp;" )
Response.Write( p_PrevPage & "&nbsp;&nbsp;" )
End if

if CurrentPage<>TotalPages then
Response.Write("<A href='" & Url & CurrentPage+1 & "'>" & p_NextPage & "</A>
&nbsp;&nbsp;" )
Response.Write("<A href='" & Url & TotalPages & "'>" & p_LastPage & "</A>
&nbsp;&nbsp;" )
else
Response.Write(p_NextPage & " &nbsp;&nbsp;" )
Response.Write(p_LastPage & "&nbsp;&nbsp;" )
end if
Response.Write("</div>")
end if%>

<!--#include file="pagefooter.asp" -->


</body></html>

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٥٩ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

‫واﻵن إﻟﻴﻜﻢ اﻟﺸﺮح‬


‫ آﻤﺎ ذآﺮﻥﺎ ﻓﻲ ﺑﺪایﺔ هﺬا اﻟﻤﻮﺽﻮع‬RecordSet ‫ یﺘﻢ اﻹﻋﻼن ﻋﻦ اﻟﺜﻮاﺑﺖ اﻟﺨﺎﺻﺔ ﺑﺎﻟـ‬-١
Const adOpenForwardOnly = 0
Const adOpenKeyset = 1
Const adOpenDynamic = 2
Const adOpenStatic = 3
'---- LockTypeEnum Values ----
Const adLockReadOnly = 1
Const adLockPessimistic = 2
Const adLockOptimistic = 3
Const adLockBatchOptimistic = 4
'---- CursorLocationEnum Values ----
Const adUseServer = 2
Const adUseClient = 3
'---- CommandTypeEnum Values ----
Const adCmdUnknown = &H0008
Const adCmdText = &H0001
Const adCmdTable = &H0002
Const adCmdStoredProc = &H0004
Const adCmdFile = &H0100
Const adCmdTableDirect = &H0200

‫ یﺘﻢ اﻻﻋﻼن ﻋﻦ اﻟﻤﺘﻐﻴﺮات‬-٢


RecordSet ‫ یﺘﻢ اﻻﻋﻼن ﻋﻦ ارﺗﺒﺎط ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت وﻋﻦ‬-٣

Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
Set RS=Server.CreateObject("ADODB.Recordset")
connectionToDatabase.Open "DSN=my_data_base"

‫( ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت‬guest_book) ‫ اﻻﻋﻼن ﻋﻦ اﻣﺮ اﻻﺳﺘﺪﻋﺎء ﻣﻦ اﻟﺠﺪول‬-٤

SQL="select * from guest_book order by add_dat desc"

(١) ‫ أو ﺟﻌﻠﻬﺎ اﻓﺘﺮاﺽﻴﺎ ﺗﺴﺎوي‬Link ‫ ﻃﻠﺐ ﻋﺪد اﻟﺼﻔﺤﺎت اﻟﺤﺎﻟﻴﺔ ﻣﻦ اﻟـ‬-٥


‫( ﺗﺘﺤﻘﻖ إن آﺎﻥﺖ ﺳﻠﺴﻠﺔ اﻟﺤﺮوف ﺗﺤﺘﻮي ﻋﻠﻰ ﻗﻴﻤﺔ ﻋﺪدیﺔ أم ﻻ‬IsNumeric)
‫( داﻟﺔ ﻟﺘﺤﻮیﻞ اﻟﻨﻈﺎم اﻟﺴﺪاﺳﻲ ﻋﺸﺮ إﻟﻰ ﻋﺸﺮي‬CInt)
‫( وهﻲ أیﻀﺎ داﻟﺔ ﻟﺘﺤﻮیﻞ اﻟﻨﻈﺎم اﻟﺴﺪاﺳﻲ ﻋﺸﺮ إﻟﻰ ﻋﺸﺮي‬CLng) ‫أو اﺳﺘﺨﺪام‬

CurrentPage=Request.QueryString("Page")
If CurrentPage="" Or Not IsNumeric(CurrentPage) then CurrentPage=1 Else
CurrentPage=CInt(CurrentPage)
if CurrentPage<1 then CurrentPage=1

.. ‫ أﻣﺮ ﺡﻔﻆ اﻟﺒﻴﺎﻥﺎت ﻣﺆﻗﺘًﺎ وهﻲ ﺗﻌﺘﻤﺪ ﻋﻠﻰ ﺟﻬﺎز اﻟﺰﺑﻮن ﻟﺤﻔﻆ اﻟﺒﻴﺎﻥﺎت ﻣﺆﻗﺘﺎ‬-٦
RS.CursorLocation=adUseClient
adUseClient ‫هﺬﻩ هﻲ اﻟﺠﻤﻠﺔ اﻟﻤﻜﻠﻔﺔ و هﺬﻩ اﻟﻄﺮیﻘﺔ ﻻ ﺗﻌﻤﻞ ﺑﺪون اﺳﺘﺨﺪام ﻗﻴﻤﺔ‬
.adUseServer ‫ اﻟﻘﻴﻤﺔ اﻻﻓﺘﺮاﺽﻴﺔ هﻲ‬CursorLocation
. ‫ ﻣﻜﺎن ﺡﻔﻆ اﻟﺒﻴﺎﻥﺎت اﻟﻤﺆﻗﺖ‬: CursorLocation.

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٦٠ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

( ‫ اﺥﺘﻴﺎر ﻋﺪد اﻟﺴﺠﻼت ﻓﻲ ﺻﻔﺤﺔ اﻟﻌﺮض اﻟﻮاﺡﺪة ) وﻟﻴﻜﻦ ﺥﻤﺲ ﺳﺠﻼت ﻓﻲ اﻟﺼﻔﺤﺔ اﻟﻮاﺡﺪة‬-٧

RS.PageSize =5

‫ ووﺽﻊ اﻟﻤﺘﻐﻴﺮات آﻤﺎ ذآﺮ ﻓﻲ ﺑﺪایﺔ هﺬا اﻟﻤﻮﺽﻮع‬RecodSet ‫ ﻓﺘﺢ‬-٨

'CursorLocation ‫ اﻟﻘﻴﻤﺔ اﻷﻓﺘﺮاﺽﻴﺔ هﻲ‬adUseServer


'‫ یﺠﺐ ﺗﻐﻴﺮهﺎ اﻟﻰ‬adUseClient ‫ﻟﻌﻤﻞ هﺬﻩ اﻟﻄﺮیﻘﺔ‬
RS.Open SQL,connectionToDatabase,adOpenStatic,adLockReadOnly,adCmdText

'or suse
'RS.Open SQL,connectionToDatabase,1,3

‫ﻣﻌﺮﻓﺔ ﻣﺠﻤﻮع اﻟﺼﻔﺤﺎت اﻟﻜﻠﻴﺔ‬-٩

TotalPages=RS.PageCount
NumberOfRecords=RS.RecordCount
if CurrentPage>TotalPages then CurrentPage=1
RS.AbsolutePage =CurrentPage

( ٢ ‫ﻣﻦ‬١ : ‫ آﺘﺎﺑﺔ رﻗﻢ اﻟﺼﻔﺤﺔ اﻟﻤﻌﺮوﺽﺔ ﻣﻦ ﻣﺠﻤﻞ ﻋﺪد اﻟﺼﻔﺤﺎت ﻣﺜﻞ ) ﺻﻔﺤﺔ رﻗﻢ‬-١٠

Response.Write("<div align=left>")
Response.Write(" ‫ ﺻﻔﺤﺔ رﻗﻢ‬: " & CurrentPage & "</B>")
Response.Write(" ‫ & " ﻣﻦ‬TotalPages & "</B><BR>" & "</center>")
Response.Write("</div>")

do while ‫ ادرج اﻟﺴﺠﻼت ﻓﻲ ﺟﺪول ﺑﺎﺳﺘﺨﺪام ﺵﺮط‬-١١


‫ﻣﻊ ﻣﻼﺡﻈﺔ أﻥﻪ ﺗﻢ إﺽﺎﻓﺔ اﻟﻜﻮد‬

if RS.AbsolutePage >CurrentPage then


exit do
end if
RS.AbsolutePage >CurrentPage ‫ ﻓﻲ ﺡﺎﻟﺔ اذا آﺎن‬do ‫ﻟﻠﺨﺮوج ﻣﻦ‬

RecordSet ‫ إﻏﻼق اﻟﻜﺎﺉﻦ اﻻﺗﺼﺎل ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت و‬-١٢

RS.Close
Set RS=Nothing
connectionToDatabase.Close
Set connectionToDatabase=Nothing

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٦١ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

GET ‫ ﻟﻠﺼﻔﺤﺔ اﻷوﻟﻰ واﻟﺴﺎﺑﻘﺔ واﻟﺘﺎﻟﻴﺔ واﻷﺥﻴﺮة ویﺮﺳﻞ رﻗﻤﻬﺎ ﻋﻦ ﻃﺮیﻖ‬link ‫ اﻥﺸﺎء‬-١٣

<%
if TotalPages>1 then
dim Url
Const p_FirstPage="‫"اﻟﺼﻔﺤﺔ اﻷوﻟﻰ‬
Const p_PrevPage="‫"اﻟﺼﻔﺤﺔ اﻟﺴﺎﺑﻘﺔ‬
Const p_NextPage="‫"اﻟﺼﻔﺤﺔ اﻟﺘﺎﻟﻴﺔ‬
Const p_LastPage="‫"اﻟﺼﻔﺤﺔ اﻷﺥﻴﺮة‬
Url="guest.asp?page="
Response.Write("<div align=right>")
if CurrentPage >1 then
Response.Write("<A href='" & Url & "1'>" & p_FirstPage & " </A>
&nbsp;&nbsp;" )
Response.Write("<A href='" & Url & CurrentPage-1 & "'>" &
p_PrevPage & "</A> &nbsp;&nbsp;" )
Else
Response.Write( p_FirstPage & "&nbsp;&nbsp;" )
Response.Write( p_PrevPage & "&nbsp;&nbsp;" )
End if

if CurrentPage<>TotalPages then
Response.Write("<A href='" & Url & CurrentPage+1 & "'>" &
p_NextPage & "</A> &nbsp;&nbsp;" )
Response.Write("<A href='" & Url & TotalPages & "'>" &
p_LastPage & "</A> &nbsp;&nbsp;" )
else
Response.Write(p_NextPage & " &nbsp;&nbsp;" )
Response.Write(p_LastPage & "&nbsp;&nbsp;" )
end if
Response.Write("</div>")
end if%>

(guest.asp) ( ‫وﺑﺬﻟﻚ ﻥﻜﻮن اﻥﺘﻬﻴﻨﺎ ﻡﻦ ﺗﻘﺴﻴﻢ ﻟﻠﻨﺘﺎﺋﺞ ﻋﻠﻰ ﺹﻔﺤﺔ ﻋﺮض اﻟﺘﻮﻗﻴﻌﺎت ) ﺱﺠﻞ اﻟﺰوار‬

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٦٢ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

‫واﻵن یﻤﻜﻦ ﺗﻨﻔﻴﺬ ﻥﻔﺲ اﻟﺸﻴﺊ ﻋﻠﻰ ﺹﻔﺤﺎت‬


* (tech.asp) ‫ أﺥﺒﺎر اﻟﺘﻘﻨﻴﺔ‬-١
** (news.asp) ‫ أﺥﺒﺎر ﻣﻨﻮﻋﺔ‬-٢
*** (search_result.asp) ‫ ﻥﺘﺎﺉﺞ اﻟﺒﺤﺚ‬-٣

(tech.asp) ( ‫* اﻵن ﺱﻮف ﻥﻘﻮم ﺑﻌﻤﻞ ﺗﻘﺴﻴﻢ ﻟﻠﻨﺘﺎﺋﺞ ﻋﻠﻰ ﺹﻔﺤﺔ ) أﺧﺒﺎر اﻟﺘﻘﻨﻴﺔ‬
(‫)ﻋﺪد اﻟﺴﺠﻼت اﻟﻤﻌﺮوﺽﺔ ﻓﻲ اﻟﺼﻔﺤﺔ اﻟﻮاﺡﺪة ﻋﺸﺮ ﺳﺠﻼت‬

‫إﻟﻴﻜﻢ اﻟﻜﻮد‬

<html dir="rtl"><head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<اﺥﺒﺎر اﻟﺴﺎﺡﺔ‬/title>
</head><body>
<!--#include file="pageheader.asp" -->
<p align="center"><font color="#009933">‫<إﻟﻴﻜﻢ ﺁﺥﺮ اﻟﻤﺴﺘﺠﺪات ﻋﻠﻰ اﻟﺴﺎﺡﺔ‬/font></p>
<%
Const adOpenForwardOnly = 0
Const adOpenKeyset = 1
Const adOpenDynamic = 2
Const adOpenStatic = 3
'---- LockTypeEnum Values ----
Const adLockReadOnly = 1
Const adLockPessimistic = 2
Const adLockOptimistic = 3
Const adLockBatchOptimistic = 4
'---- CursorLocationEnum Values ----
Const adUseServer = 2
Const adUseClient = 3
'---- CommandTypeEnum Values ----
Const adCmdUnknown = &H0008
Const adCmdText = &H0001
Const adCmdTable = &H0002
Const adCmdStoredProc = &H0004
Const adCmdFile = &H0100
Const adCmdTableDirect = &H0200
%>

<%
dim CurrentPage
dim TotalPages
dim NumberOfRecords
dim SQL
dim RS
dim connectionToDatabase

Set connectionToDatabase=Server.CreateObject("ADODB.Connection")

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٦٣ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

connectionToDatabase.ConnectionTimeout=60
Set RS=Server.CreateObject("ADODB.Recordset")
connectionToDatabase.Open "DSN=my_data_base"

'‫أواﻣﺮ اﺥﺘﻴﺎر اﻟﺠﺪول واﺳﺘﺪﻋﺎء اﻟﺒﻴﺎﻥﺎت ﻣﻨﻪ‬


SQL="select * from tech_news order by add_dat desc"

CurrentPage=Request.QueryString("Page")
If CurrentPage="" Or Not IsNumeric(CurrentPage) then CurrentPage=1 Else
CurrentPage=CInt(CurrentPage)
if CurrentPage<1 then CurrentPage=1

RS.CursorLocation=adUseClient
RS.PageSize =10

'CursorLocation ‫ اﻟﻘﻴﻤﺔ اﻷﻓﺘﺮاﺽﻴﺔ هﻲ‬adUseServer


'‫ یﺠﺐ ﺗﻐﻴﺮهﺎ اﻟﻰ‬adUseClient ‫ﻟﻌﻤﻞ هﺬﻩ اﻟﻄﺮیﻘﺔ‬
RS.Open SQL,connectionToDatabase,adOpenStatic,adLockReadOnly,adCmdText

'or suse
'RS.Open SQL,connectionToDatabase,1,3

TotalPages=RS.PageCount
NumberOfRecords=RS.RecordCount
if CurrentPage>TotalPages then CurrentPage=1
RS.AbsolutePage =CurrentPage
Response.Write("<div align=left>")
Response.Write(" ‫ ﺻﻔﺤﺔ رﻗﻢ‬: " & CurrentPage & "</B>")
Response.Write(" ‫ & " ﻣﻦ‬TotalPages & "</B><BR>" & "</center>")
Response.Write("</div>")
%>

<% do while not rs.eof


if RS.AbsolutePage >CurrentPage then
exit do
end if
%>

<b><a href="body.asp?field=tech_news&id=<%=rs("id")%>"><%response.write
rs("subject")%></a></b>
<br>

<% rs.movenext
loop %>

<br></br>

<%
RS.Close

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٦٤ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

Set RS=Nothing
connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>
<%
if TotalPages>1 then
dim Url
Const p_FirstPage="‫"اﻟﺼﻔﺤﺔ اﻷوﻟﻰ‬
Const p_PrevPage="‫"اﻟﺼﻔﺤﺔ اﻟﺴﺎﺑﻘﺔ‬
Const p_NextPage="‫"اﻟﺼﻔﺤﺔ اﻟﺘﺎﻟﻴﺔ‬
Const p_LastPage="‫"اﻟﺼﻔﺤﺔ اﻷﺥﻴﺮة‬
Url="tech.asp?page="
Response.Write("<div align=right>")
if CurrentPage >1 then
Response.Write("<A href='" & Url & "1'>" & p_FirstPage & " </A> &nbsp;&nbsp;" )
Response.Write("<A href='" & Url & CurrentPage-1 & "'>" & p_PrevPage & "</A>
&nbsp;&nbsp;" )
Else
Response.Write( p_FirstPage & "&nbsp;&nbsp;" )
Response.Write( p_PrevPage & "&nbsp;&nbsp;" )
End if

if CurrentPage<>TotalPages then
Response.Write("<A href='" & Url & CurrentPage+1 & "'>" & p_NextPage & "</A>
&nbsp;&nbsp;" )
Response.Write("<A href='" & Url & TotalPages & "'>" & p_LastPage & "</A>
&nbsp;&nbsp;" )
else
Response.Write(p_NextPage & " &nbsp;&nbsp;" )
Response.Write(p_LastPage & "&nbsp;&nbsp;" )
end if
Response.Write("</div>")
end if%>
<!--#include file="pagefooter.asp" -->
</body></html>

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٦٥ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

(news.asp) ( ‫** اﻵن ﺱﻮف ﻥﻘﻮم ﺑﻌﻤﻞ ﺗﻘﺴﻴﻢ ﻟﻠﻨﺘﺎﺋﺞ ﻋﻠﻰ ﺹﻔﺤﺔ ) أﺧﺒﺎر ﻡﻨﻮﻋﺔ‬
(‫)ﻋﺪد اﻟﺴﺠﻼت اﻟﻤﻌﺮوﺽﺔ ﻓﻲ اﻟﺼﻔﺤﺔ اﻟﻮاﺡﺪة ﻋﺸﺮ ﺳﺠﻼت‬

‫إﻟﻴﻜﻢ اﻟﻜﻮد‬

<html dir="rtl"><head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<ﺻﻔﺤﺔ اﻟﻤﻘﺎﻻت‬/title>
</head><body>
<!--#include file="pageheader.asp" -->
<p align="center"><font color="#009933">‫<إﻟﻴﻜﻢ ﺁﺥﺮ اﻟﻤﻘﺎﻻت ﻋﻠﻰ اﻟﺴﺎﺡﺔ اﻟﻌﺎﻟﻤﻴﺔ ﻣﻦ اﻷﺥﺒﺎر‬/font></p>

<%
Const adOpenForwardOnly = 0
Const adOpenKeyset = 1
Const adOpenDynamic = 2
Const adOpenStatic = 3
'---- LockTypeEnum Values ----
Const adLockReadOnly = 1
Const adLockPessimistic = 2
Const adLockOptimistic = 3
Const adLockBatchOptimistic = 4
'---- CursorLocationEnum Values ----
Const adUseServer = 2
Const adUseClient = 3
'---- CommandTypeEnum Values ----
Const adCmdUnknown = &H0008
Const adCmdText = &H0001
Const adCmdTable = &H0002
Const adCmdStoredProc = &H0004
Const adCmdFile = &H0100
Const adCmdTableDirect = &H0200
%>

<%
dim CurrentPage
dim TotalPages
dim NumberOfRecords
dim SQL
dim RS
dim connectionToDatabase

Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
Set RS=Server.CreateObject("ADODB.Recordset")
connectionToDatabase.Open "DSN=my_data_base"

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٦٦ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

'‫أواﻣﺮ اﺥﺘﻴﺎر اﻟﺠﺪول واﺳﺘﺪﻋﺎء اﻟﺒﻴﺎﻥﺎت ﻣﻨﻪ‬


SQL="select * from general_news order by add_dat desc"

CurrentPage=Request.QueryString("Page")
If CurrentPage="" Or Not IsNumeric(CurrentPage) then CurrentPage=1 Else
CurrentPage=CInt(CurrentPage)
if CurrentPage<1 then CurrentPage=1

RS.CursorLocation=adUseClient
RS.PageSize =10

'CursorLocation ‫ اﻟﻘﻴﻤﺔ اﻷﻓﺘﺮاﺽﻴﺔ هﻲ‬adUseServer


'‫ یﺠﺐ ﺗﻐﻴﺮهﺎ اﻟﻰ‬adUseClient ‫ﻟﻌﻤﻞ هﺬﻩ اﻟﻄﺮیﻘﺔ‬
RS.Open SQL,connectionToDatabase,adOpenStatic,adLockReadOnly,adCmdText

'or suse
'RS.Open SQL,connectionToDatabase,1,3

TotalPages=RS.PageCount
NumberOfRecords=RS.RecordCount
if CurrentPage>TotalPages then CurrentPage=1
RS.AbsolutePage =CurrentPage
Response.Write("<div align=left>")
Response.Write(" ‫ ﺻﻔﺤﺔ رﻗﻢ‬: " & CurrentPage & "</B>")
Response.Write(" ‫ & " ﻣﻦ‬TotalPages & "</B><BR>" & "</center>")
Response.Write("</div>")
%>
<% do while not rs.eof
if RS.AbsolutePage >CurrentPage then
exit do
end if
%>

<b><a href="body.asp?field=general_news&id=<%=rs("id")%>"><%response.write
rs("subject")%></a></b>
<br>

<% rs.movenext
loop %>
<br></br>

<%
RS.Close
Set RS=Nothing
connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٦٧ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

<%
if TotalPages>1 then
dim Url
Const p_FirstPage="‫"اﻟﺼﻔﺤﺔ اﻷوﻟﻰ‬
Const p_PrevPage="‫"اﻟﺼﻔﺤﺔ اﻟﺴﺎﺑﻘﺔ‬
Const p_NextPage="‫"اﻟﺼﻔﺤﺔ اﻟﺘﺎﻟﻴﺔ‬
Const p_LastPage="‫"اﻟﺼﻔﺤﺔ اﻷﺥﻴﺮة‬
Url="news.asp?page="
Response.Write("<div align=right>")
if CurrentPage >1 then
Response.Write("<A href='" & Url & "1'>" & p_FirstPage & " </A> &nbsp;&nbsp;" )
Response.Write("<A href='" & Url & CurrentPage-1 & "'>" & p_PrevPage & "</A>
&nbsp;&nbsp;" )
Else
Response.Write( p_FirstPage & "&nbsp;&nbsp;" )
Response.Write( p_PrevPage & "&nbsp;&nbsp;" )
End if

if CurrentPage<>TotalPages then
Response.Write("<A href='" & Url & CurrentPage+1 & "'>" & p_NextPage & "</A>
&nbsp;&nbsp;" )
Response.Write("<A href='" & Url & TotalPages & "'>" & p_LastPage & "</A>
&nbsp;&nbsp;" )
else
Response.Write(p_NextPage & " &nbsp;&nbsp;" )
Response.Write(p_LastPage & "&nbsp;&nbsp;" )
end if
Response.Write("</div>")
end if%>

<!--#include file="pagefooter.asp" -->


</body></html>

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


‫ﺻﻔﺤﺔ ‪١٦٨‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫*** اﻵن ﺱﻮف ﻥﻘﻮم ﺑﻌﻤﻞ ﺗﻘﺴﻴﻢ ﻟﻠﻨﺘﺎﺋﺞ ﻋﻠﻰ ﺹﻔﺤﺔ ) ﻥﺘﺎﺋﺞ اﻟﺒﺤﺚ( )‪(search_result.asp‬‬
‫)ﻋﺪد اﻟﺴﺠﻼت اﻟﻤﻌﺮوﺽﺔ ﻓﻲ اﻟﺼﻔﺤﺔ اﻟﻮاﺡﺪة ﺳﺠﻼن(‬

‫ﻼ ﻻن آ ﻞ‬
‫ﺗﻘﺴﻴﻢ اﻟﻨﺘﺎﺉﺞ ﻓﻲ ﺻﻔﺤﺔ أﺥﺒﺎر اﻟﺘﻘﻨﻴﺔ )‪ (tech.asp‬وﺻﻔﺤﺔ أﺥﺒﺎر ﻣﻨﻮﻋ ﺔ )‪ (news.asp‬آ ﺎن أﻣ ﺮًا ﺳ ﻬ ً‬
‫ﺻ ﻔﺤﺔ ﺗﺤﺘ ﻮي ﻋﻠ ﻰ ﺟ ﺪول واﺡ ﺪ ﻓﻘ ﻂ وی ﺘﻢ اﻟﺘﻘﺴ ﻴﻢ ﻣ ﻦ ﺥﻼﻟ ﻪ أﻣ ﺎ ﻓ ﻲ ﺡﺎﻟ ﺔ ﺹ ﻔﺤﺔ ) ﻥﺘ ﺎﺋﺞ اﻟﺒﺤ ﺚ(‬
‫)‪ (search_result.asp‬ﻓﺎﻷﻣﺮ یﺨﺘﻠﻒ ﻟﻮﺟﻮد ﺟﺪوﻟﻴﻦ ﺑﺎﻟﺼ ﻔﺤﺔ وی ﺘﻢ ﻋﻤ ﻞ اﻟﺒﺤ ﺚ ﻣ ﻦ ﺥﻼﻟﻬﻤ ﺎ وﻟ ﺬاﻟﻚ ﺳ ﻮف‬
‫ﺗﻮاﺟﻬﻨﺎ ﻋﺪة إﺵﻜﺎﻟﻴﺎت ﺳﻮف ﻥﻘﻮم ﺑﺘﺬﻟﻴﻠﻬﺎ ﺑﺈذن اﷲ ﺗﻌﺎﻟﻰ وهﻮ ﻣﺎ یﻜﺴﺒﻨﺎ اﻟﺨﺒﺮة ﻓﻼ ﺥﺒﺮة ﺑﺪون ﻣﺸﺎآﻞ‪.‬‬

‫اﻟﻤﺸﻜﻠﺔ اﻷوﻟﻰ ‪:‬‬


‫ﺳﻮف ﻥﻀﻊ ﻥﺎﺗﺞ اﻟﺒﺤﺚ ﻓﻲ ﺟﺪول ﺟﺪیﺪ ﺳﻮف ﻥﺴﻤﻴﻪ ‪ temp‬وهﻮ یﺘﻜﻮن ﻣ ﻦ ﻥﻔ ﺲ ﺡﻘ ﻮل اﻟﺠ ﺪوﻟﻴﻦ ‪tech_news‬‬
‫و ‪ general_news‬آﺎﻟﺘﺎﻟﻲ‬

‫وﻗﺒﻞ ذﻟﻚ ﺳﻮف ﻥﻘﻮم ﺑﻌﻤﻠﻴﺔ ﺗﻔﺮیﻊ ﻟﻬﺬا اﻟﺠﺪول اﺳﺘﻌﺪادًا ﻟﻌﻤﻠﻴﺔ اﻹدراج اﻟﺘﻲ ﺳﻮف ﺗﺘﻢ ﻓﻴﻪ ﻓ ﻲ ﺡﺎﻟ ﺔ وﺟ ﻮد اﻟﻜﻠﻤ ﺔ‬
‫أو ﺟ ﺰء ﻣ ﻦ اﻟﻜﻠﻤ ﺔ اﻟﻤ ﺮاد اﻟﺒﺤ ﺚ ﻋﻨﻬ ﺎ ﻓ ﻲ اﻟﺠ ﺪوﻟﻴﻦ ‪ tech_news‬و ‪ general_news‬وﺑ ﺬﻟﻚ ی ﺘﻢ ﺗﻔﺮیﻐ ﻪ‬
‫اﺳﺘﻌﺪادًا ﻷي ﻋﻤﻠﻴﺔ ﺑﺤﺚ ﺟﺪیﺪة‬
‫إﻟﻴﻜﻢ ﺹﻮرة اﻟﻜﻮد ﻓﻲ ﺣﺎﻟﺔ اﻟﺒﺤﺚ ﻓﻲ اﻟﺠﺪول ‪tech_news‬‬
‫اﻟﺠﺰء اﻷول‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪١٦٩‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫اﻟﺠﺰء اﻟﺜﺎﻥﻲ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


١٧٠ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

‫واﻟﻴﻜﻢ اﻟﻜﻮد‬
<html dir="rtl"><head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<ﺻﻔﺤﺔ ﻥﺘﺎﺉﺞ اﻟﺒﺤﺚ‬/title>
</head><body>
<!--#include file="pageheader.asp" -->
<%
Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
Set CmaAddRecord=Server.CreateObject("ADODB.Recordset")
connectionToDatabase.Open "DSN=my_data_base"
%>
<p align="center"><b><font size="5" color="#008000">‫ ﻥﺘﺎﺉﺞ اﻟﺒﺤﺚ هﻰ‬:</font></b></p>

<% '‫ ﺡﺘﻰ یﺼﺒﺢ ﻣﻬﻴﺄ ﻟﻌﻤﻠﻴﺔ اﻻدراج اﻟﻘﺎدﻣﺔ‬temp ‫ﺡﺬف ﺟﻤﻴﻊ اﻟﺒﻴﺎﻥﺎت اﻟﻤﻮﺟﻮدة ﺑﺎﻟﺠﺪول‬
deleteSQL = "delete * from temp"
connectionToDatabase.execute(deleteSQl)
%>
<%
keyword=request.querystring("keyword")
%>
<%
' tech_news ‫أواﻣﺮ اﻟﺒﺤﺚ ﻓﻲ ﺟﺪول اﻷﺥﺒﺎر اﻟﺘﻘﻨﻴﺔ‬
SelectTechSQL="select * from tech_news where subject like '%"&keyword&"%' or body like
'%"&keyword&"%' "
set rsTech=connectionToDatabase.execute(SelectTechSQL)
%>
<% ' tech_news ‫ أواﻣﺮ اﺽﺎﻓﺔ ﻥﺎﺗﺞ ﺑﺤﺚ اﻟﻤﻮﺟﻮدة ﻓﻲ اﻟﺠﺪول‬%>
<% do while not rsTech.eof %>
<%
f_temp_add_dat = rsTech("add_dat")
f_temp_subject = rsTech("subject")
f_temp_body = rsTech("body")
MYSQL="Select temp.* from temp"
CmaAddRecord.Open MYSQL, connectionToDatabase, 1, 3
CmaAddRecord.AddNew
CmaAddRecord.Fields("add_dat") = f_temp_add_dat
CmaAddRecord.Fields("subject") = f_temp_subject
CmaAddRecord.Fields("body") = f_temp_body
CmaAddRecord.Update
CmaAddRecord.Close
Set CmaAddRecord= Nothing
rsTech.movenext
loop %>
<%
connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>
<!--#include file="pagefooter.asp" --> </body></html>

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


‫ﺻﻔﺤﺔ ‪١٧١‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﺑﻌﺪ ذﻟﻚ ﻥﻀﻴﻒ اﻟﺒﺤﺚ ﻓﻲ اﻟﺠﺪول اﻟﺜﺎﻥﻲ ‪general_news‬‬


‫إﻟﻴﻜﻢ ﺹﻮرة اﻟﻜﻮد‬

‫اﻟﺠﺰء اﻷول‬

‫اﻟﺠﺰء اﻟﺜﺎﻥﻲ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


١٧٢ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

‫واﻟﻴﻜﻢ اﻟﻜﻮد‬
<html dir="rtl"><head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<ﺻﻔﺤﺔ ﻥﺘﺎﺉﺞ اﻟﺒﺤﺚ‬/title>
</head><body>
<!--#include file="pageheader.asp" -->
<%
Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
Set CmaAddRecord=Server.CreateObject("ADODB.Recordset")
connectionToDatabase.Open "DSN=my_data_base"
%>
<p align="center"><b><font size="5" color="#008000">‫ ﻥﺘﺎﺉﺞ اﻟﺒﺤﺚ هﻰ‬:</font></b></p>
<% '‫ ﺡﺘﻰ یﺼﺒﺢ ﻣﻬﻴﺊ ﻟﻌﻤﻠﻴﺔ اﻻدراج اﻟﻘﺎدﻣﺔ‬temp ‫ﺡﺬف ﺟﻤﻴﻊ اﻟﺒﻴﺎﻥﺎت اﻟﻤﻮﺟﻮدة ﺑﺎﻟﺠﺪول‬
deleteSQL = "delete * from temp"
connectionToDatabase.execute(deleteSQl)
%>
<%
keyword=request.querystring("keyword")
%>
<%
' tech_news ‫أواﻣﺮ اﻟﺒﺤﺚ ﻓﻲ ﺟﺪول اﻷﺥﺒﺎر اﻟﺘﻘﻨﻴﺔ‬
SelectTechSQL="select * from tech_news where subject like '%"&keyword&"%' or body like
'%"&keyword&"%' "
set rsTech=connectionToDatabase.execute(SelectTechSQL)
%>
<% ' tech_news ‫ أواﻣﺮ اﺽﺎﻓﺔ ﻥﺎﺗﺞ ﺑﺤﺚ اﻟﻤﻮﺟﻮدة ﻓﻲ اﻟﺠﺪول‬%>
<% do while not rsTech.eof %>
<%
f_temp_add_dat = rsTech("add_dat")
f_temp_subject = rsTech("subject")
f_temp_body = rsTech("body")
MYSQL="Select temp.* from temp"
CmaAddRecord.Open MYSQL, connectionToDatabase, 1, 3
CmaAddRecord.AddNew
CmaAddRecord.Fields("add_dat") = f_temp_add_dat
CmaAddRecord.Fields("subject") = f_temp_subject
CmaAddRecord.Fields("body") = f_temp_body
CmaAddRecord.Update
CmaAddRecord.Close
rsTech.movenext
Set CmaAddRecord= Nothing
loop
%>
<%
connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>
<!--#include file="pagefooter.asp" --> </body></html>

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


‫ﺻﻔﺤﺔ ‪١٧٣‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﻼ )اﻟﺒﺮادﻋﻲ( وهﻰ ﺗﺘﻜﺮر ﻣﺮة واﺡﺪة ﻓﻲ‬


‫وﻋﻨﺪ ﺗﺸﻐﻞ ﺻﻔﺤﺔ ‪ search_result.asp‬ﺑﺎﻟﺒﺤﺚ ﻋﻦ اﻟﻜﻠﻤﺔ ﻣﺜ ً‬
‫اﻟﺠﺪوﻟﻴﻦ ‪ tech_news‬و ‪general_news‬‬
‫ﻥﺠﺪ أن اﻟﻨﺘﻴﺠﺔ ﺳﻠﻴﻤﺔ ویﺘﻢ إﺽﺎﻓﺔ اﻟﺴﺠﻞ إﻟﻰ اﻟﺠﺪول ‪temp‬‬
‫أﻣﺎ ﻋﻨﺪ اﻟﺒﺤﺚ ﻋﻦ اﻟﻜﻠﻤﺔ )آﻞ( وهﻲ ﺗﺘﻜﺮر أرﺑﻌﺔ ﻣﺮات ﻓﻲ اﻟﺠﺪوﻟﻴﻦ ‪ tech_news‬و ‪general_news‬‬
‫ﻥﺠﺪ أﻥﻪ ﺗﻈﻬﺮ رﺳﺎﻟﺔ اﻟﺨﻄﺄ اﻟﺘﺎﻟﻴﺔ‬

‫وﻋﻨﺪ رؤیﺔ اﻟﺠﺪول ‪ temp‬ﻥﺠﺪ أﻥﻪ ﺑﻪ ﺳﺠﻞ واﺡﺪ ﻓﻘﻂ ﻣﻦ اﻟﺴﺠﻼت اﻷرﺑﻊ‬

‫وهﻨﺎ ﺗﻜﻤﻦ اﻟﻤﺸﻜﻠﺔ اﻟﺜﺎﻥﻴﺔ ‪:‬‬

‫ﻟﻮ ﻻﺣﻈﺖ ﻓﻲ اﻟﺼﻔﺤﺔ اﻟﺴﺎﺑﻘﺔ ﺗﻢ ﺗﻈﻠﻴﻞ اﻟﺠﻤﻠﺔ ‪Set CmaAddRecord= Nothing‬‬


‫اﻟﺴﺒﺐ ﻓﻲ هﺬﻩ اﻟﻤﺸﻜﻠﺔ أن اﻟﺠﻤﻠﺔ ‪ Set CmaAddRecord= Nothing‬ﺗﻘﻮم ﺑﺘﻔﺮﻳﻎ هﺬا اﻟﻜﺎﺋﻦ داﺧﻞ ﺟﻤﻠﺔ‬
‫ال ‪ do while‬ﻓﻌﻨﺪﻡﺎ ﻳﻌﻮد ﻓﻲ اﻟﺤﻠﻘﻪ اﻟﺜﺎﻧﻴﻪ وﻳﺘﻢ اﺳﺘﺪﻋﺎﺋﻪ ﻡﺮة اﺧﺮى ﺳﻮف ﻳﺠﺪﻩ ﻓﺎرغ ﻓﻠﻦ‬
‫ﻳﻜﻮن آﺎﺋﻦ ﻡﻌﺮف ﻋﻠﻰ أﻧﻪ آﺎﺋﻦ ﻡﻦ ﻡﺠﻤﻮﻋﺔ اﻟﺴﺠﻼت‪ ،‬ﻓﻬﺬﻩ هﻲ اﻟﻤﺸﻜﻠﺔ اﻟﺘﻲ آﺎﻧﺖ ﻟﺪﻳﻚ‪.‬‬

‫واﻟﺤﻞ ﻟﺬﻟﻚ وﺽﻊ هﺬﻩ اﻟﺠﻤﻠﺔ ﺑﻌﺪ ﺟﻤﻠﺔ ‪loop‬‬


‫آﻤﺎ ﺳﻮف یﺄﺗﻲ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪١٧٤‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﺱﻮف ﻥﻘﻮم اﻵن ﺑﺘﺼﻤﻴﻢ ﺹﻔﺤﺔ ‪ search_result_div.asp‬ﻟﺘﻘﺴﻢ ﻥﺘﺎﺋﺞ اﻟﺒﺤﺚ‬


‫إﻟﻴﻜﻢ ﺹﻮرة اﻟﻜﻮد‬

‫اﻟﺠﺰء اﻷول‬

‫اﻟﺠﺰء اﻟﺜﺎﻥﻲ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪١٧٥‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫اﻟﺠﺰء اﻟﺜﺎﻟﺚ‬

‫اﻟﺠﺰء اﻟﺮاﺑﻊ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


١٧٦ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

‫واﻟﻴﻜﻢ اﻵن اﻟﻜﻮد‬

<html dir="rtl"><head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<ﻥﺘﻴﺠﺔ اﻟﺒﺤﺚ ﻣﻘﺴﻤﺔ‬/title>
</head><body>
<!--#include file="pageheader.asp" -->
<p align="center"><b><font size="5" color="#008000">‫ ﻥﺘﺎﺉﺞ اﻟﺒﺤﺚ هﻰ‬:</font></b></p>
<%
Const adOpenForwardOnly = 0
Const adOpenKeyset = 1
Const adOpenDynamic = 2
Const adOpenStatic = 3
'---- LockTypeEnum Values ----
Const adLockReadOnly = 1
Const adLockPessimistic = 2
Const adLockOptimistic = 3
Const adLockBatchOptimistic = 4
'---- CursorLocationEnum Values ----
Const adUseServer = 2
Const adUseClient = 3
'---- CommandTypeEnum Values ----
Const adCmdUnknown = &H0008
Const adCmdText = &H0001
Const adCmdTable = &H0002
Const adCmdStoredProc = &H0004
Const adCmdFile = &H0100
Const adCmdTableDirect = &H0200
%>
<%
dim CurrentPage
dim TotalPages
dim NumberOfRecords
dim SQL
dim RS
dim connectionToDatabase

Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
Set RS=Server.CreateObject("ADODB.Recordset")
connectionToDatabase.Open "DSN=my_data_base"

'‫أواﻣﺮ اﺥﺘﻴﺎر اﻟﺠﺪول واﺳﺘﺪﻋﺎء اﻟﺒﻴﺎﻥﺎت ﻣﻨﻪ‬


SQL="select * from temp order by add_dat desc"

CurrentPage=Request.QueryString("Page")

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٧٧ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

If CurrentPage="" Or Not IsNumeric(CurrentPage) then CurrentPage=1 Else


CurrentPage=CInt(CurrentPage)
if CurrentPage<1 then CurrentPage=1

RS.CursorLocation=adUseClient
RS.PageSize =2

'CursorLocation ‫ اﻟﻘﻴﻤﺔ اﻷﻓﺘﺮاﺽﻴﺔ هﻲ‬adUseServer


'‫ یﺠﺐ ﺗﻐﻴﺮهﺎ اﻟﻰ‬adUseClient ‫ﻟﻌﻤﻞ هﺬﻩ اﻟﻄﺮیﻘﺔ‬
RS.Open SQL,connectionToDatabase,adOpenStatic,adLockReadOnly,adCmdText

'or suse
'RS.Open SQL,connectionToDatabase,1,3

TotalPages=RS.PageCount
NumberOfRecords=RS.RecordCount
if CurrentPage>TotalPages then CurrentPage=1
RS.AbsolutePage =CurrentPage
Response.Write("<div align=left>")
Response.Write(" ‫ ﺻﻔﺤﺔ رﻗﻢ‬: " & CurrentPage & "</B>")
Response.Write(" ‫ & " ﻣﻦ‬TotalPages & "</B><BR>" & "</center>")
Response.Write("</div>")
%>
<% do while not rs.eof
if RS.AbsolutePage >CurrentPage then
exit do
end if
%>
<b><a href="body.asp?field=temp&id=<%=rs("id")%>"><%response.write
rs("subject")%></a></b>
<br>
<% rs.movenext
loop %>
<br></br>
<%
RS.Close
Set RS=Nothing
connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>
<%
if TotalPages>1 then
dim Url
Const p_FirstPage="‫"اﻟﺼﻔﺤﺔ اﻷوﻟﻰ‬
Const p_PrevPage="‫"اﻟﺼﻔﺤﺔ اﻟﺴﺎﺑﻘﺔ‬
Const p_NextPage="‫"اﻟﺼﻔﺤﺔ اﻟﺘﺎﻟﻴﺔ‬
Const p_LastPage="‫"اﻟﺼﻔﺤﺔ اﻷﺥﻴﺮة‬
Url="search_result_div.asp?page="
Response.Write("<div align=right>")
if CurrentPage >1 then

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٧٨ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

Response.Write("<A href='" & Url & "1'>" & p_FirstPage & " </A> &nbsp;&nbsp;" )
Response.Write("<A href='" & Url & CurrentPage-1 & "'>" & p_PrevPage & "</A>
&nbsp;&nbsp;" )
Else
Response.Write( p_FirstPage & "&nbsp;&nbsp;" )
Response.Write( p_PrevPage & "&nbsp;&nbsp;" )
End if

if CurrentPage<>TotalPages then
Response.Write("<A href='" & Url & CurrentPage+1 & "'>" & p_NextPage & "</A>
&nbsp;&nbsp;" )
Response.Write("<A href='" & Url & TotalPages & "'>" & p_LastPage & "</A>
&nbsp;&nbsp;" )
else
Response.Write(p_NextPage & " &nbsp;&nbsp;" )
Response.Write(p_LastPage & "&nbsp;&nbsp;" )
end if
Response.Write("</div>")
end if%>
<!--#include file="pagefooter.asp" -->
</body></html>
: ‫ﻡﻠﺤﻮﻇﺔ ﻡﻬﻤﺔ‬

‫ﺗﻢ إﺽﺎﻓﺔ اﻟﺠﻤﻠﺔ‬


response.redirect"search_result_div.asp"
search_result_div.asp ‫ وﻓﺎﺉﺪﺗﻬﺎ اﻻﻥﺘﻘﺎل اﻟﻰ ﺻﻔﺤﺔ ﺗﻘﺴﻴﻢ اﻟﻨﺘﺎﺉﺞ‬search_result.asp ‫ﻓﻲ ﺻﻔﺤﺔ‬

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


‫ﺻﻔﺤﺔ ‪١٧٩‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﻋﻨﺪ اﻟﺒﺤﺚ ﻋﻦ اﻟﻜﻠﻤﺔ )آﻞ( وهﻲ ﺗﺘﻜﺮر أرﺑﻌﺔ ﻣﺮات ﻓﻲ اﻟﺠﺪوﻟﻴﻦ ‪ tech_news‬و ‪general_news‬‬

‫ﻥﺠﺪ أﻥﻪ ﺗﻈﻬﺮ اﻟﻨﺘﻴﺠﺔ اﻟﺘﺎﻟﻲ‬


‫اﻟﺼﻔﺤﺔ اﻷوﻟﻰ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪١٨٠‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫اﻟﺼﻔﺔ اﻟﺜﺎﻥﻴﺔ‬

‫أﻣﺎ ﻓﻲ ﺡﺎﻟﺔ اﻟﺒﺤﺚ ﻋﻦ آﻠﻤﺔ ﻏﻴﺮ ﻣﻮﺟﻮدة ﺑﺎﻟﺠﺪوﻟﻴﻦ ‪ tech_news‬و ‪ general_news‬وﻟﻴﻜﻦ اﻟﺒﺤﺚ ﻋﻦ آﻠﻤﺔ ) اﺳﻤﺎﻋﻴﻞ (‬

‫ﺗﻈﻬﺮ رﺳﺎﻟﺔ اﻟﺨﻄﺄ اﻟﺘﺎﻟﻴﺔ وهﻨﺎ ﺗﻜﻤﻦ اﻟﻤﺸﻜﻠﺔ اﻟﺜﺎﻟﺜﺔ‪:‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


١٨١ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

‫اﻟﻤﺸﻜﻠﺔ اﻟﺜﺎﻟﺜﺔ‬
‫ یﻜ ﻮن‬temp ‫وهﻰ ﺗﺘﻠﺨﺺ ﻓﻲ ﻇﻬﻮر رﺳﺎﻟﺔ اﻟﺨﻄﺄ اﻟﺴ ﺎﺑﻘﺔ ﻓ ﻲ ﺡﺎﻟ ﺔ ﻋ ﺪم وﺟ ﻮد ﻥﺘ ﺎﺉﺞ ﻟﻠﺒﺤ ﺚ ﺑﻤﻌﻨ ﻰ أن اﻟﺠ ﺪول‬
‫ﻓﺎرغ وﻟﺤﻞ هﺬﻩ اﻟﻤﺸﻜﻠﺔ یﻮﺟﺪ ﻃﺮیﻘﺘﻴﻦ‬

* ‫* اﻟﻄﺮیﻘﺔ اﻷوﻟﻰ‬
‫ﺳﻮف أﺽﻊ ﻣﺜﺎل ﻟﻠﺤﻞ‬

set rs=conn.execute("select * from temp order by id asc")

if not rs.eof then


'#‫اﻟﺠﺪول ﻓﻲ ﺡﺎﻟﺔ وﺟﻮد ﺳﺠﻼت اﺳﺘﻌﺮض اﻟﺒﻴﺎﻥﺎت ﻣﻦ‬#'
do while not rs.eof

rs.movenext
loop

else
'#‫ﺡﺎﻟﺔ ﻋﺪم وﺟﻮد ﺳﺠﻼت ﺗﻈﻬﺮ اﻟﺮﺳﺎﻟﺔ اﻟﺘﺎﻟﻴﺔ ﻓﻲ‬#'
response.write("‫)"ﺳﺠﻼت ﻻ یﻮﺟﺪ‬

end if

not rs.eof :‫ اﻟﺸﺮﻃﻴﺔ اﻟﻜﻮد اﻟﺘﺎﻟﻲ‬if ‫ﻓﻲ ﺟﻤﻠﺔ ال‬


‫ واذا آﺎن ﻓﺎرغ ﺳﻮف یﺨﺮج رﺳﺎﻟﺔ‬،‫ ﻟﻴﺲ ﻓﺎرغ ﺳﻮف یﻘﻮم ﺑﻌﻤﻠﻴﺔ ﻋﺮض اﻟﺒﻴﺎﻥﺎت‬rs ‫هﻨﺎ ﻓﻲ ﺡﺎﻟﺔ أﻥﻪ آﺎﺉﻦ ال‬
.‫ﺑﻌﺪم وﺟﻮد ﺳﺠﻼت‬
(ascent) ‫ ﺗﺴﺘﺨﺪم ﻟﺘﺮﺗﻴﺐ اﻟﻨﺘﺎﺉﺞ ﺗﺼﺎﻋﺪیًﺎ‬asc ‫ﻣﻌﻨﻰ‬
(descend) ‫ ﻓﺘﺴﺘﺨﺪم ﻟﺘﺮﺗﻴﺐ اﻟﻨﺘﺎﺉﺞ ﺗﻨﺎزﻟﻴًﺎ‬desc ‫أﻣﺎ‬

‫ وهﻮ‬search_result.asp ‫واﻻن اﻟﻴﻜﻢ اﻟﺠﺰء اﻟﻤﻀﺎف ﻓﻲ ﺻﻔﺤﺔ‬

<%
SelectTempSQL= "select * from temp order by id asc"
set rsTemp=connectionToDatabase.execute(SelectTempSQL)
if not rsTemp.eof then
response.redirect"search_result_div.asp"
else %>
<p align="center"><b><font size="5" color="#008000">‫ﻋﻔﻮًا ﻟﻢ یﺘﻢ اﻟﻌﺜﻮر ﻋﻠﻰ اﻟﻜﻠﻤﺔ اﻟﻤﻄﻠﻮب اﻟﺒﺤﺚ ﻋﻨﻬﺎ‬
</font></b></p>
<%
end if
%>

‫ آﺎﻣﻠﺔ‬search_result.asp ‫وأﻻن إﻟﻴﻜﻢ آﻮد اﻟﺼﻔﺤﺔ‬


<html dir="rtl"><head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<ﺻﻔﺤﺔ ﻥﺘﺎﺉﺞ اﻟﺒﺤﺚ‬/title>
</head><body>

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٨٢ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

<!--#include file="pageheader.asp" -->

<%
Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
Set CmaAddRecord=Server.CreateObject("ADODB.Recordset")
connectionToDatabase.Open "DSN=my_data_base"
%>

<% '‫ ﺡﺘﻰ یﺼﺒﺢ ﻣﻬﻴﺄ ﻟﻌﻤﻠﻴﺔ اﻻدراج اﻟﻘﺎدﻣﺔ‬temp ‫ﺡﺬف ﺟﻤﻴﻊ اﻟﺒﻴﺎﻥﺎت اﻟﻤﻮﺟﻮدة ﺑﺎﻟﺠﺪول‬
deleteSQL = "delete * from temp"
connectionToDatabase.execute(deleteSQl)
%>

<%
keyword=request.querystring("keyword")
%>
<%
' tech_news ‫أواﻣﺮ اﻟﺒﺤﺚ ﻓﻲ ﺟﺪول اﻷﺥﺒﺎر اﻟﺘﻘﻨﻴﺔ‬
SelectTechSQL="select * from tech_news where subject like '%"&keyword&"%' or body like
'%"&keyword&"%' "
set rsTech=connectionToDatabase.execute(SelectTechSQL)

' general_news ‫أواﻣﺮ اﻟﺒﺤﺚ ﻓﻲ ﺟﺪول اﻷﺥﺒﺎر اﻟﻌﺎﻣﺔ‬


SelectGeneralSQL="select * from general_news where subject like '%"&keyword&"%' or body like
'%"&keyword&"%'"
set rsGeneral=connectionToDatabase.execute(SelectGeneralSQL)
%>

<% ' tech_news ‫أواﻣﺮ اﺽﺎﻓﺔ ﻥﺎﺗﺞ ﺑﺤﺚ اﻟﻤﻮﺟﻮدة ﻓﻲ اﻟﺠﺪول‬

do while not rsTech.eof

f_temp_add_dat = rsTech("add_dat")
f_temp_subject = rsTech("subject")
f_temp_body = rsTech("body")
MYSQL="Select temp.* from temp"
CmaAddRecord.Open MYSQL, connectionToDatabase, 1, 3
CmaAddRecord.AddNew
CmaAddRecord.Fields("add_dat") = f_temp_add_dat
CmaAddRecord.Fields("subject") = f_temp_subject
CmaAddRecord.Fields("body") = f_temp_body
CmaAddRecord.Update
CmaAddRecord.Close
rsTech.movenext
loop
%>

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٨٣ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

<% ' general_news ‫أواﻣﺮ اﺽﺎﻓﺔ ﻥﺎﺗﺞ ﺑﺤﺚ اﻟﻤﻮﺟﻮدة ﻓﻲ اﻟﺠﺪول‬

do while not rsGeneral.eof

f_temp_add_dat = rsGeneral("add_dat")
f_temp_subject = rsGeneral("subject")
f_temp_body = rsGeneral("body")
MYSQL="Select temp.* from temp"
CmaAddRecord.Open MYSQL, connectionToDatabase, 1, 3
CmaAddRecord.AddNew
CmaAddRecord.Fields("add_dat") = f_temp_add_dat
CmaAddRecord.Fields("subject") = f_temp_subject
CmaAddRecord.Fields("body") = f_temp_body
CmaAddRecord.Update
CmaAddRecord.Close
rsGeneral.movenext
loop
%>
<%
SelectTempSQL= "select * from temp order by id asc"
set rsTemp=connectionToDatabase.execute(SelectTempSQL)
if not rsTemp.eof then
response.redirect"search_result_div.asp"
else %>
<p align="center"><b><font size="5" color="#008000">‫ﻋﻔﻮًا ﻟﻢ یﺘﻢ اﻟﻌﺜﻮر ﻋﻠﻰ اﻟﻜﻠﻤﺔ اﻟﻤﻄﻠﻮب اﻟﺒﺤﺚ ﻋﻨﻬﺎ‬
</font></b></p>
<%
end if
%>

<%
'loop ‫یﺠﺐ وﺽﻊ اﻟﺠﻤﻠﺔ اﻟﺘﺎﻟﻴﺔ ﺑﻌﺪ ﺟﻤﻠﺔ‬
Set CmaAddRecord= Nothing
connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>

<!--#include file="pagefooter.asp" -->


</body></html>

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


‫ﺻﻔﺤﺔ ‪١٨٤‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫وﺑ ﺬﻟﻚ ﺗﻜ ﻮن اﻟﻨﺘﻴﺠ ﺔ ﻋﻨ ﺪ اﻟﺒﺤ ﺚ ﻋ ﻦ آﻠﻤ ﺔ ) اﺳ ﻤﺎﻋﻴﻞ ( اﻟﻐﻴ ﺮ ﻣﻮﺟ ﻮدة ﺑﺎﻟﺠ ﺪوﻟﻴﻦ ‪ tech_news‬و‬
‫‪general_news‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


١٨٥ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

** ‫** اﻟﻄﺮیﻘﺔ اﻟﺜﺎﻥﻴﺔ‬


‫ﺡﺴﺎب ﻋﺪد اﻟﺴﺠﻼت اﻟﻤﻮﺟﻮدة ﻓﻲ اﻟﺠﺪول‬
‫ﺳﻮف أﺽﻊ ﻣﺜﺎل‬
‫هﺬﻩ اﻟﻄﺮﻳﻘﺔ اﻟﺘﻲ ﺗﻌﻤﻞ ﻋﻠﻰ آﻞ ﻗﻮاﻋﺪ اﻟﺒﻴﺎﻧﺎت‬: ‫ﻡﻠﺤﻮﻇﺔ‬

sql = "select count(*) from table_name"


set rs = con.execute(sql)
response.write rs(0)

‫ واﻟﺨﺎص ﺑﺤﺴﺎب ﻋﺪد اﻟﺴﺠﻼت اﻟﻤﻮﺟﻮدة ﺑﺎﻟﺠﺪول‬search_result.asp ‫واﻻن اﻟﻴﻜﻢ اﻟﺠﺰء اﻟﻤﻀﺎف ﻓﻲ ﺻﻔﺤﺔ‬
‫ ﻻیﺴ ﺎوي )ﺻ ﻔﺮ( ی ﺘﻢ اﻻﻥﺘﻘ ﺎل إﻟ ﻰ اﻟﺼ ﻔﺤﺔ‬temp ‫ ووﻇﻴﻔ ﺔ ﻓ ﻲ ﺡﺎﻟ ﺔ آ ﺎن ﻋ ﺪد اﻟﺴ ﺠﻼت ﺑﺎﻟﺠ ﺪول‬temp
‫ واﻟﺨﺎﺻ ﺔ ﺑﺘﻘﺴ ﻴﻢ اﻟﻨﺘ ﺎﺉﺞ أﻣ ﺎ ﻓ ﻲ ﺡﺎﻟ ﺔ اذا آ ﺎن ﻋ ﺪد اﻟﺴ ﺠﻼت یﺴ ﺎوي )ﺻ ﻔﺮ( ی ﺘﻢ‬search_result_div.asp
‫ﻇﻬﻮر اﻟﺮﺳﺎﻟﺔ اﻟﻤﺮادة‬

<% '‫اﻟﻄﺮیﻘﺔ اﻟﺜﺎﻥﻴﺔ‬


SelectTempSQL= "select count(*) from temp "
set rsTemp=connectionToDatabase.execute(SelectTempSQL)
if rsTemp(0) <> 0 then
response.redirect"search_result_div.asp"
else %>
<p align="center"><b><font size="5" color="#008000">‫ﻋﻔﻮًا ﻟﻢ یﺘﻢ اﻟﻌﺜﻮر ﻋﻠﻰ اﻟﻜﻠﻤﺔ اﻟﻤﻄﻠﻮب اﻟﺒﺤﺚ ﻋﻨﻬﺎ‬
</font></b></p>
<%
end if
%>

‫ آﺎﻣﻠﺔ‬search_result.asp ‫وأﻻن إﻟﻴﻜﻢ آﻮد اﻟﺼﻔﺤﺔ‬

<html dir="rtl"><head>
<meta http-equiv="Content-Language" content="ar-sa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1256">
<title>‫<ﺻﻔﺤﺔ ﻥﺘﺎﺉﺞ اﻟﺒﺤﺚ‬/title>
</head><body>
<!--#include file="pageheader.asp" -->

<%
Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
Set CmaAddRecord=Server.CreateObject("ADODB.Recordset")
connectionToDatabase.Open "DSN=my_data_base"
%>

<% '‫ ﺡﺘﻰ یﺼﺒﺢ ﻣﻬﻴﺄ ﻟﻌﻤﻠﻴﺔ اﻻدراج اﻟﻘﺎدﻣﺔ‬temp ‫ﺡﺬف ﺟﻤﻴﻊ اﻟﺒﻴﺎﻥﺎت اﻟﻤﻮﺟﻮدة ﺑﺎﻟﺠﺪول‬
deleteSQL = "delete * from temp"
connectionToDatabase.execute(deleteSQl)
%>

<%

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٨٦ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

keyword=request.querystring("keyword")
%>
<%
' tech_news ‫أواﻣﺮ اﻟﺒﺤﺚ ﻓﻲ ﺟﺪول اﻷﺥﺒﺎر اﻟﺘﻘﻨﻴﺔ‬
SelectTechSQL="select * from tech_news where subject like '%"&keyword&"%' or body like
'%"&keyword&"%' "
set rsTech=connectionToDatabase.execute(SelectTechSQL)

' general_news ‫أواﻣﺮ اﻟﺒﺤﺚ ﻓﻲ ﺟﺪول اﻷﺥﺒﺎر اﻟﻌﺎﻣﺔ‬


SelectGeneralSQL="select * from general_news where subject like '%"&keyword&"%' or body like
'%"&keyword&"%'"
set rsGeneral=connectionToDatabase.execute(SelectGeneralSQL)
%>

<% ' tech_news ‫أواﻣﺮ اﺽﺎﻓﺔ ﻥﺎﺗﺞ ﺑﺤﺚ اﻟﻤﻮﺟﻮدة ﻓﻲ اﻟﺠﺪول‬

do while not rsTech.eof

f_temp_add_dat = rsTech("add_dat")
f_temp_subject = rsTech("subject")
f_temp_body = rsTech("body")
MYSQL="Select temp.* from temp"
CmaAddRecord.Open MYSQL, connectionToDatabase, 1, 3
CmaAddRecord.AddNew
CmaAddRecord.Fields("add_dat") = f_temp_add_dat
CmaAddRecord.Fields("subject") = f_temp_subject
CmaAddRecord.Fields("body") = f_temp_body
CmaAddRecord.Update
CmaAddRecord.Close
rsTech.movenext
loop
%>

<% ' general_news ‫أواﻣﺮ اﺽﺎﻓﺔ ﻥﺎﺗﺞ ﺑﺤﺚ اﻟﻤﻮﺟﻮدة ﻓﻲ اﻟﺠﺪول‬

do while not rsGeneral.eof

f_temp_add_dat = rsGeneral("add_dat")
f_temp_subject = rsGeneral("subject")
f_temp_body = rsGeneral("body")
MYSQL="Select temp.* from temp"
CmaAddRecord.Open MYSQL, connectionToDatabase, 1, 3
CmaAddRecord.AddNew
CmaAddRecord.Fields("add_dat") = f_temp_add_dat
CmaAddRecord.Fields("subject") = f_temp_subject
CmaAddRecord.Fields("body") = f_temp_body
CmaAddRecord.Update
CmaAddRecord.Close

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٨٧ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

rsGeneral.movenext
loop
%>

<% '‫اﻟﻄﺮیﻘﺔ اﻟﺜﺎﻥﻴﺔ‬


SelectTempSQL= "select count(*) from temp "
set rsTemp=connectionToDatabase.execute(SelectTempSQL)
if rsTemp(0) <> 0 then
response.redirect"search_result_div.asp"
else %>
<p align="center"><b><font size="5" color="#008000">‫ﻋﻔﻮًا ﻟﻢ یﺘﻢ اﻟﻌﺜﻮر ﻋﻠﻰ اﻟﻜﻠﻤﺔ اﻟﻤﻄﻠﻮب اﻟﺒﺤﺚ ﻋﻨﻬﺎ‬
</font></b></p>
<%
end if
%>
<%
'loop ‫یﺠﺐ وﺽﻊ اﻟﺠﻤﻠﺔ اﻟﺘﺎﻟﻴﺔ ﺑﻌﺪ ﺟﻤﻠﺔ‬
Set CmaAddRecord= Nothing
connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>

<!--#include file="pagefooter.asp" -->


</body></html>

general_news ‫ و‬tech_news ‫وﺑﺬﻟﻚ ﺗﻜﻮن اﻟﻨﺘﻴﺠﺔ ﻋﻨﺪ اﻟﺒﺤﺚ ﻋﻦ آﻠﻤﺔ )اﻟﻔﺠﺮ ( اﻟﻐﻴﺮ ﻣﻮﺟﻮدة ﺑﺎﻟﺠﺪوﻟﻴﻦ‬

‫وﺑﺬﻟﻚ ﻗﺪ اﻥﺘﻬﻴﻨﺎ ﻣﻦ ﺗﻘﺴﻴﻢ اﻟﻨﺘﺎﺉﺞ اﻟﻨﺎﺗﺠﺔ ﻋﻦ اﻟﺒﺤﺚ‬

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


‫ﺻﻔﺤﺔ ‪١٨٨‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫رﻓﻊ اﻟﻤﻮﻗﻊ ﻋﻠﻰ اﻟﺸﺒﻜﺔ اﻟﻌﺎﻟﻤﻴﺔ‬


‫اﻵن یﻤﻜﻦ ﺑﻌﺪ ﺗﺼﻤﻴﻢ ﻣﻮﻗﻌﻨﺎ اﻹﺥﺒﺎري اﻟﺘﻌﻠﻴﻤﻲ رﻓﻌﻪ ﻋﻠﻰ اﻟﺸﺒﻜﺔ اﻟﻌﺎﻟﻤﻴﺔ‬
‫وهﻨﺎك ﻃﺮیﻘﺘﻴﻦ‬
‫اﻟﻄﺮیﻖ اﻷوﻟﻰ أن ﺗﻘﻮم ﺑﺎﻻﺵﺘﺮاك اﻟﺸﻬﺮي أو اﻟﺴﻨﻮي )ﺑﻤﻘﺎﺑﻞ ﻣﺎدي( ﻓﻲ أﺡﺪ ﻣﻮاﻗﻊ اﻻﺳﺘﻀﺎﻓﺔ‬
‫اﻟﻄﺮیﻘﺔ اﻟﺜﺎﻥﻴﺔ أن ﺗﻘﻮم ﺑﺎﻻﺵﺘﺮاك ﻓﻲ أﺡﺪ ﻣﻮاﻗﻊ اﻻﺳﺘﻀﺎﻓﺔ اﻟﻤﺠﺎﻥﻴﺔ ﻣﺜﻞ‬
‫‪www.domaindlx.com‬‬
‫)یﺸﺘﺮط ﻓﻲ ﻣﻮﻗﻊ اﻻﺳﺘﻀﺎﻓﺔ اﻟﻤﺨﺘﺎر أﻥﻪ یﺪﻋﻢ ﻟﻐﺔ ‪ ASP‬و‪ (MS Access database‬وهﺎ هﻲ ﻣﻮاﺻﻔﺎﺗﻪ‬
‫اﻟﻤﻮﻗﻊ اﻟﻤﺠﺎﻥﻲ اﻟﻤﻘﺘﺮح‬

‫ﻟﻼﺵﺘﺮاك ﺑﻬﺎ اﻟﻤﻮﻗﻊ ﻻﺑﺪ ﻣﻦ ﺗﺴﺠﻴﻠﻚ ﺑﻪ‬

‫ﻗﻢ ﺑﺘﻌﺒﺌﺔ اﻟﺨﺎﻥﺎت اﻟﻤﻄﻠﻮﺑﺔ ﻣﻨﻚ وﻣﻦ ﺙﻢ اﺽﻐﻂ ﻋﻠﻰ‪Submit Registration‬‬


‫ﻡﻠﺤﻮﻇﺔ‪ :‬ﺥﺎﻥﺔ ‪ Username‬ﺗﺤﺘﻮى ﻋﻠﻰ اﺳﻢ ﻣﻮﻗﻌﻚ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪١٨٩‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫وﻣﻦ ﺙﻢ یﺘﻢ ارﺳﺎل رﺳﺎﻟﺔ ﺗﺄآﻴﺪ اﻻﺵﺘﺮاك اﻟﻰ اﻟـ ‪ E-mail‬اﻟﺬي آﺘﺒﺔ ﻟﺬﻟﻚ یﺠﺐ ذهﺎﺑﻚ اﻟﻰ اﻟـ ‪ E-mail‬اﻟﺨﺎص‬
‫ﺑﻚ ﻟﺘﻔﻌﻴﻞ اﺵﺘﺮاآﻚ‬
‫وأﻥﺼﺤﻚ ﺑﺎﻻﺡﺘﻔﺎظ ﺑﻬﺬﻩ اﻟﺮﺳﺎﻟﺔ ﻷﻥﻬﺎ ﺗﺤﺘﻮي ﻋﻠﻰ ﻣﻌﻠﻮﻣﺎت ﻣﻬﻤﺔ‬

‫ﺑﻌﺪ ﺗﻔﻌﻴﻞ اﺵﺘﺮاك ﻗﻢ ﺑﺎﻟﺬهﺎب اﻟﻰ ‪ www.domaindlx.com‬وﻣﻦ ﺙﻢ ادﺥﻞ ﺑﺎﺵﺘﺮاآﻚ آﺎﻟﺘﺎﻟﻲ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪١٩٠‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫هﺎ أﻥﺖ ﺑﺪاﺥﻞ ﻣﻮﻗﻌﻚ ﺳﻮف ﺗﺠﺪ ﻟﻮﺡﺔ ﺗﺤﻜﻢ ﺳﻬﻠﺔ ﺟﺪًا‬

‫ﻗﻢ ﺑﺎﺥﺘﻴﺎر ‪ ZIP Extraction‬ﻋﻠﻰ اﻥﻪ ﻗﺪ ﺗﻢ ﺗﺤﻮیﻞ ﻣﺠﻠﺪ اﻟﻤﻮﻗﻊ ﺑﺎﻣﺘﺪاد ‪ zip‬آﺎﻟﺘﺎﻟﻲ ‪news.zip‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪١٩١‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫اﺥﺘﺮ اﻟﻤﺴﺎر اﻟﻤﻮﺟﻮد ﺑﻪ ﻣﺠﻠﺪ ﻣﻮﻗﻌﻚ اﻟﻤﻀﻐﻮط ﺑﺎﻣﺘﺪاد ‪ zip‬ﺙﻢ اﺽﻐﻂ ﻋﻠﻰ ‪Upload‬‬

‫اﺽﻐﻂ ﻋﻠﻰ ‪Download File‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪١٩٢‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﺳﻮف ﺗﺠ ﺪ اﻟﻤﺠﻠ ﺪ ﻗ ﺪ ﻇﻬ ﺮ اﺽ ﻐﻂ ﻋﻠ ﻰ راﺑ ﻂ اﻟﻤﺠﻠ ﺪ ‪ news‬ﻟﺘﻈﻬ ﺮ ﺟﻤﻴ ﻊ اﻟﻤﻠﻔ ﺎت واﻟﻤﺠﻠ ﺪات اﻟﻤﻮﺟ ﻮدة ﺗﺤ ﺖ‬
‫اﻟﻤﺠﻠﺪ ‪news‬‬

‫ﺑﺬﻟﻚ ﻗﺪ ﺗﻢ ﺗﺤﻤﻴﻞ ﻣﻮﻗﻌﻚ‬


‫اﺽﻐﻂ ﻋﻠﻰ راﺑﻂ ﻣﻮﻗﻌﻚ ﻟﻠﺬهﺎب إﻟﻴﻪ ‪http://e.domaindlx.com/ismailweb/news‬‬
‫ﻟﺘﻈﻬﺮ اﻟﺼﻔﺤﺔ اﻟﺮﺉﻴﺴﻴﺔ ‪ default.asp‬آﺎﻟﺘﺎﻟﻲ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


١٩٣ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

‫ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺮاﺑﻂ )أﺥﺒﺎر ﺗﻘﻨﻴﺔ( ﺗﻈﻬﺮ رﺳﺎﻟﺔ اﻟﺨﻄﺄ اﻟﺘﺎﻟﻴﺔ‬

Microsoft OLE DB Provider for ODBC Drivers error '80004005 '


]Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
/ismailweb/news/tech.asp ،line 13

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٩٤ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

‫هﺬﻩ اﻟﺮﺳﺎﻟﺔ ﻣﻔﺎدهﺎ أﻥﻪ ﻻ ﺗﺴﺘﻄﻴﻊ اﻟﻮﺻﻮل إﻟﻰ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت ]هﺬﻩ اﻟﺮﺳﺎﻟﺔ یﺠ ﺐ اﻟﻮﻗ ﻮف ﻋﻨﻬ ﺎ ﻗﻠ ﻴﻼ ﻻن اﻟﻤﻮﻗ ﻊ‬
[ ‫ ﻗﺒﻞ اﻟﺮﻓﻊ اذا ﺗﻮﺻﻴﻒ اﺗﺼﺎل ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت ﻏﻴﺮ ﻣﻘﺒﻮل ﻟﻤﻮﻗﻊ اﻻﺳﺘﻀﺎﻓﺔ‬localhost ‫آﺎن یﻌﻤﻞ ﻋﻠﻰ ﺟﻬﺎزك‬

DSN-Less ‫ﺑﺎﻟﺒﺤﺚ ﻓﻲ ﻣﻮﻗﻊ اﻻﺳﺘﻀﺎﻓﺔ ﻋﻦ هﺬﻩ اﻟﻤﺸﻜﻠﺔ وﺟﻮد اﻥﻪ یﺠﺐ ان ﺗﻜﻮن اﺗﺼﺎل ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت ﻋﻦ ﻃﺮیﻖ‬

Making a DSN-Less connection can be very tricky for newbies to ASP. This is done by telling the server to use
a file instead of a DSN name

To setup a DSN-Less connection on DomainDLX, use the following code:

<%Dim Conn, RS

Set Conn = Server.CreateObject("ADODB.Connection")


Set RS = Server.CreateObject("ADODB.Recordset")

DSNName = "DRIVER=Microsoft Access Driver (*.mdb);DBQ="


DSNName = DSNName & Server.MapPath("/USERNAME/database/mydatabase.mdb")
Conn.Open DSNName

sql = "SELECT * FROM [TableName] WHERE (((TableName.FieldName)='Value'))"


RS.Open sql, Conn, 3, 3%>

The first line tells the server to set aside memory for new objects called Conn and RS

The next two lines tells the server to create a ADODB Connection and RecordSet object under the names Conn
and RS.

The next three tell the server to make a connection to a Microsoft Access database in the file named
/USERNAME/database/mydatabase.mdb. The Server.MapPath is so that the filename as the server knows it
on it's hard drive can be given to this script. You must refer to it this way.

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


١٩٥ ‫ﺻﻔﺤﺔ‬ ASP ‫ﻣﺸﺮوع‬

The SQL line selects the table to get records from, by the SELECT * FROM [TableName]. The WHERE will tell
the server to only show records matching a special rule. There are more complex rules than the ones I show
here. This rule tells the server to show only records where the field FieldName equals the string
"Value". Remove WHERE and all text after it to use the entire table.

And, the last line opens and queries the SQL statement. The two parameters with the value of 3 will set the
table-locking, so you can write to the database but not keep people from viewing it while you do so

Dim Conn

Set Conn = Server.CreateObject("ADODB.Connection")


Conn.Open "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" &
Server.MapPath("/USERNAME/database/yourdatabase.mdb")

DSN ‫ﻟﺬﻟﻚ ﺳﻮف یﺘﻢ ﺗﻐﻴﻴﺮ آﻮد اﻻﺗﺼﺎل ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت ﻓﻲ ﺟﻤﻴﻊ ﺻﻔﺤﺎت اﻟﻤﻮﻗﻊ ﻣﻦ‬

connectionToDatabase.Open "DSN=my_data_base"

DSN-Less ‫اﻟﻰ‬

DSNName="DRIVER=Microsoft Access Driver (*.mdb);DBQ="


DSNName=DSNName&Server.MapPath("database/project.mdb")
connectionToDatabase.Open DSNName

‫وﺑﺬﻟﻚ ﻥﻜﻮن ﻗﺪ ﺗﺨﻠﺼﻨﺎ ﻡﻦ هﺬﻩ اﻟﻤﺸﻜﻠﺔ‬

‫ إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬.‫ م‬: ‫ﺗﻨﻔﻴﺬ‬


‫ﺻﻔﺤﺔ ‪١٩٦‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫اﻻن ﻗﻢ ﺑﺮﻓﻊ اﻟﻤﻮﻗﻊ ﻣﺮة أﺥﺮى ﺑﻌﺪ ﺡﺬف ﻣﺠﻠﺪ اﻟﻤﻮﻗﻊ اﻟﻘﺪیﻢ‬

‫اﺽﻐﻂ ﻋﻠﻰ اﻟﺮاﺑﻂ )ﺳﺠﻞ اﻟﺰوار( ﺳﻮف ﺗﺠﺪ اﻟﺼﻔﺤﺔ اﻟﺘﺎﻟﻴﺔ ﻗﺪ ﺗﻢ اﺻﻼح اﻻﺗﺼﺎل ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت ﺑﺎﺳﺘﺨﺪام ‪DSL-‬‬
‫‪Less‬‬
‫وﻟﻜﻦ ﺗﻮﺟﺪ ﻣﺸﻜﻠﺔ أﺥﺮى اﻟﻜﻠﻤﺎت اﻟﻌﺮﺑﻴﺔ اﻟﻤﻮﺟﻮدة ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت وﺗﻈﻬﺮ ﻋﻠﻰ ﺵﻜﻞ ؟؟؟؟؟؟؟‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪١٩٧‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫وﻟﺤﻞ هﺬﻩ اﻟﻤﺸﻜﻠﺔ ﻻ یﺼﺢ وﺽﻊ آﻠﻤﺎت ﻋﺮﺑﻴﺔ ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت وﻟﻜﻦ یﺼﺢ ان ﺗﻀﻊ اﻟﻜﻠﻤﺎت اﻟﻌﺮﺑﻴﺔ ﻣﻦ ﺥﻼل‬
‫اﻟﻤﻮﻗﻊ ﻥﻔﺴﻪ‬
‫اﻵن ﻗﻢ ﺑﺠﻤﻴﻊ ﻣﻬﺎﻣﻚ ﻓﻲ ﻣﻮﻗﻌﻚ اﻟﺠﺪیﺪ‬
‫اﺡﺬف وأﺽﻒ آﻤﺎ ﺗﺸﺎء‬

‫اﻟﻒ ﻡﺒﺮوك ﻋﻠﻰ ﻡﻮﻗﻌﻚ اﻟﺠﺪیﺪ‬


‫ﻡﻠﺤﻮﻇﺔ ﻡﻬﻤﺔ ‪:‬‬
‫ﻟﻢ یﺘﻢ وﺽﻊ ﺗﺼﺎﻣﻴﻢ وﺥﻠﻔﻴﺎت ﻟﻠﻤﻮﻗﻊ ﺡﺘﻰ ﻻ یﻜﻮن اﻟﻜﻮد آﺒﻴﺮ وﻟﻜﻦ آﺎن اﻟﻬﺪف اﻷﺳﺎﺳﻲ ﻣﻦ اﻟﻤﻮﻗﻊ ﺗﻌﻠﻢ اﻷﺵﻴﺎء‬
‫اﻷﺳﺎﺳﻴﺔ ﻓﻲ ﻟﻐﺔ ‪ ASP‬أﻣﺎ ﻣﻮﺽﻮع اﻟﺘﻨﺴﻴﻖ واﻟﺨﻠﻔﻴﺎت أﻣﺮ ﺳﻬﻞ‬
‫ﻣﻦ اﻟﻤﻤﻜﻦ وﺽﻊ ﺻﻮر وزﺥﺎرف وﻓﻼﺵﺎت وﻣﺎ إﻟﻰ ذﻟﻚ‬

‫ﻭﺑﺬﻟﻚ ﻧﻜﻮﻥ ﻗﺪ ﺍﻧﺘﻬﻴﻨﺎ ﻣﻦ ﺗﺼﻤﻴﻢ ﻣﻮﻗﻌﻨﺎ ﺍﻹﺧﺒﺎﺭﻱ ﺍﻟﺘﻌﻠﻴﻤﻲ‬


‫ﻭﻻ ﺗﻨﺴﻮﻧﺎ ﺑﺪﻋﻮﺓ ﺑﻈﻬﺮ ﺍﻟﻐﻴﺐ‬
‫ﺃﻥ ﻳﻐﻔﺮ ﱄ ﺭﺑﻲ ﻭﻟﻮﺍﻟﺪﻱ ﻭﻟﻜﻞ ﻣﻦ ﻓﻀﻞ ﻋﻠﻲ ﺑﻌﺪ ﺍﷲ ﺳﺒﺤﺎﻧﻪ ﻭﺗﻌﺎﱃ‬
‫ﺃﺧﻮﻛﻢ ﻭﳏﺒﻜﻢ‬
‫ﻡ‪ .‬ﺇﲰﺎﻋﻴﻞ ﺩﻣﺮﺍﻥ ﺃﺑﻮ ﻳﺪ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪١٩٨‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪١٩٩‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﻡﻘﺪﻡﺔ ‪ -‬ﺗﻨﺼﻴﺐ وﺵﺮح ﺑﺮاﻡﺞ ﺧﺎدم اﻟﻮیﺐ‬


‫‪ASP‬هﻲ اﺥﺘﺼﺎر ﻟﻼﺳﻢ ‪ Active Server Pages‬أو آﻤ ﺎ یﺴ ﻤﻴﻬﺎ اﻟ ﺒﻌﺾ "ﺻ ﻔﺤﺎت اﻟﻤ ﺰود‬
‫اﻟﻨﺸﻂ"‪،‬‬

‫‪ ASP‬هﻲ ﺗﻘﻨﻴﺔ ﻃﻮرﺗﻬﺎ ﺵﺮآﺔ ﻣﺎیﻜﺮوﺳﻮﻓﺖ ﻹﻥﺸﺎء ﺻﻔﺤﺎت وﺗﻄﺒﻴﻘﺎت وی ﺐ ﻗﻮی ﺔ و دیﻨﺎﻣﻴﻜﻴ ﺔ‪.‬‬
‫ﻹﻥﺸﺎء هﺬﻩ اﻟﺼﻔﺤﺎت یﻤﻜﻨﻚ إﺽﺎﻓﺔ أواﻣﺮ ‪ HTML‬أو أﺡﺪ ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ اﻟﻨﺼﻴﺔ ‪Scripting‬‬
‫‪ Language‬ﻣﺜﻞ ‪ VBScript‬أو ‪ ، JScript‬ویﻤﻜﻨﻚ أیﻀًﺎ رﺑﻂ هﺬﻩ اﻟﺼ ﻔﺤﺎت ﺑﻘﺎﻋ ﺪة ﺑﻴﺎﻥ ﺎت‬
‫ﻣﺜﻞ ‪ Access‬أو‪SQL Server.‬‬

‫~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~‬

‫ﻡﻌﺎﻟﺠﺔ ﺹﻔﺤﺎت‪ASP:‬‬

‫ﺗﺨﺘﻠﻒ ﺻ ﻔﺤﺎت ‪ ASP‬ﻋ ﻦ ﺻ ﻔﺤﺎت ‪ HTML‬ﻓ ﻲ أن ﻣﻌﺎﻟﺠ ﺔ ه ﺬﻩ اﻟﺼ ﻔﺤﺎت ﺗﻜ ﻮن ﻣ ﻦ ﺟﺎﻥ ﺐ‬


‫اﻟﺠﻬﺎز اﻟﻤﺰود ﻟﻠﺨﺪﻣﺔ ﻻ ﺟﻬﺎز اﻟﻤﺴﺘﺨﺪم! ﺡﻴﺚ یﻜﻮن ﻣﺜﺒﺖ ﻓﻲ اﻟﺠﻬﺎز اﻟﻤﺰود ﻟﻠﺨﺪﻣﺔ ﺑ ﺮاﻣﺞ ﺑﻬ ﺎ‬
‫ﻣﻜﺘﺒﺔ رﺑﻂ دیﻨﺎﻣﻴﻜﻴﺔ ﺗﺪﻋﻰ‪ ، ASP.DLL‬ﻓﻌﻨﺪﻣﺎ یﻄﻠ ﺐ اﻟﻤﺴ ﺘﺨﺪم ﺻ ﻔﺤﺔ ﺑﺎﻻﻣﺘ ﺪاد ‪ *.asp‬ﻓ ﺈن‬
‫ﻣﺰود اﻟﺨﺪﻣﺔ یﻘﻮم ﺑﻤﻌﺎﻟﺠﺔ أواﻣﺮ ‪ ASP‬اﻟﻤﻮﺟﻮدة ﻓﻲ هﺬﻩ اﻟﺼﻔﺤﺔ ویﺮﺳﻞ اﻟﻨﺘﻴﺠﺔ‪ ،‬وه ﺬﻩ اﻟﻨﺘﻴﺠ ﺔ‬
‫ﻋﺒﺎرة ﻋﻦ أواﻣ ﺮ ‪ HTML‬ﻟﻌﺮﺽ ﻬﺎ ﻓ ﻲ ﻣﺴ ﺘﻌﺮض اﻟﻮی ﺐ ﻋﻠ ﻰ ﺟﻬ ﺎز اﻟﻤﺴ ﺘﺨﺪم‪ .‬ه ﺬا اﻷﺳ ﻠﻮب‬
‫ی ﻮﻓﺮ درﺟ ﺔ ﻣ ﻦ اﻷﻣ ﺎن ﻟﻬ ﺬﻩ اﻟﺼ ﻔﺤﺎت آﻤ ﺎ أﻥﻬ ﺎ ﺗﺤﻔ ﻆ ﺡﻘ ﻮق اﻟﻤﺒ ﺮﻣﺞ ﻣ ﻦ اﻟﻨﺴ ﺦ ‪ .‬ﺡﻴ ﺚ أن‬
‫اﻟﻤﺴﺘﺨﺪم ﻻ یﻤﻜﻨﻪ رؤیﺔ أواﻣﺮ ‪ ASP‬ﻋﻨﺪ ﻋﺮض ﻣﺼ ﺪر اﻟﺼ ﻔﺤﺔ‪ ،‬وإﻥﻤ ﺎ ی ﺮى أواﻣ ﺮ ‪HTML‬‬
‫وهﻲ ﻥﺎﺗﺞ اﻟﻤﻌﺎﻟﺠﺔ‪.‬‬

‫واﻟﺼﻮرة اﻟﺘﺎﻟﻴﺔ ﺗﻮﺽﺢ ﻋﻤﻠﻴﺔ اﻟﻤﻌﺎﻟﺠﺔ ‪:‬‬

‫واﻵن ﺑﻌﺪ أن ﺗﻌﺮﻓﺖ ﻋﻠﻰ ﻃﺮیﻘﺔ ﻣﻌﺎﻟﺠﺔ ﺻ ﻔﺤﺎت ‪ ASP‬وأن ﻣﻌﺎﻟﺠ ﺔ ه ﺬﻩ اﻟﺼ ﻔﺤﺎت ﻻ ﺗ ﺘﻢ‬
‫ﻓﻲ ﺟﻬﺎز اﻟﻤﺴﺘﺨﺪم وإﻥﻤﺎ ﻓﻲ اﻟﺠﻬﺎز اﻟﺨ ﺎدم ﻓﺈﻥ ﻚ ﻗ ﺪ أدرآ ﺖ أﻥ ﻚ ﺑﺤﺎﺟ ﺔ ﻹرﺳ ﺎل اﻟﺼ ﻔﺤﺎت اﻟﺘ ﻲ‬
‫ﺗﻨﺸﺌﻬﺎ ﻟﻠﺠﻬﺎز اﻟﺨﺎدم ﺡﺘﻰ ﺗﺘﻢ ﻣﻌﺎﻟﺠﺘﻬﺎ ﺑﻮاﺳﻄﺔ ﺑﺮاﻣﺞ ﻣﻌﻴﻨﺔ !!‬

‫ﻓﺎﻟﺴﺆال اﻟﺬي یﻄﺮح ﻥﻔﺴﻪ‪ ،‬هﻞ ﻥﺤﺘﺎج ﻟﺠﻬﺎز ﺥﺎدم آﻲ ﻥﻌﺎﻟﺞ ﺻﻔﺤﺎت ‪ ASP‬اﻟﺘﻲ ﻥﻨﺸﺌﻬﺎ ؟ !!‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٢٠٠‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﺑﺎﻟﻄﺒﻊ‪ ،‬ﻻ ! ﻓﻜﻞ ﻣﺎ ﻥﺤﺘﺎﺟﻪ هﻮ ﺑﺮاﻣﺞ ﺥﺎدم اﻟﻮیﺐ اﻟﺘﻲ ﺗﻌ ﺎﻟﺞ ه ﺬﻩ اﻟﺼ ﻔﺤﺎت‪ ،‬وﺑﺘﻨﺼ ﻴﺐ ه ﺬﻩ‬
‫اﻟﺒﺮاﻣﺞ ﻥﻜﻮن ﻗﺪ ﺟﻌﻠﻨﺎ ﻣﻦ أﺟﻬﺰﺗﻨﺎ ﺥﺎدم وﻣﺴﺘﺨﺪم ﻓﻲ ﻥﻔﺲ اﻟﻮﻗﺖ‪.‬‬

‫~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~‬

‫ﺑﺮاﻡﺞ ﺧﺎدم اﻟﻮیﺐ ‪:‬‬

‫وهﻨﺎك ﺑﺮﻥﺎﻣﺠﻴﻦ ﻣﻨﺎﺳﺒﻴﻦ ﻟﻬﺬﻩ اﻟﻌﻤﻴﻠﺔ وهﻤﺎ‪:‬‬

‫ﺑﺮﻥﺎﻣﺞ‪ PWS‬وهﻲ اﺥﺘﺼﺎر ﻟـ ‪Personal Web Server‬‬

‫أو ﺑﺮﻥﺎﻣﺞ ‪ IIS‬وهﻮ اﺥﺘﺼﺎر ﻟـ‪ Internet Information Server.‬ﻣﻌﻠﻮﻣﺎت ﺥﺪﻣﺎت اﻻﻥﺘﺮﻥﺖ‬

‫یﻌﺘﻤﺪ اﺥﺘﻴﺎر أﺡﺪ هﺬیﻦ اﻟﺒﺮﻥﺎﻣﺠﻴﻦ ﻋﻠﻰ ﻥﻈﺎم اﻟﺘﺸﻐﻴﻞ ﻟﺪیﻚ آﻤﺎ هﻮ ﻣﻮﺽﺢ ﻓﻲ اﻟﺠﺪول اﻟﺘﺎﻟﻲ ‪:‬‬

‫ﺑﺮﻥﺎﻡﺞ ﺧﺎدم اﻟﻮیﺐ‬ ‫ﻥﻈﺎم اﻟﺘﺸﻐﻴﻞ‬


‫‪IIS‬‬ ‫‪Win NT Server‬‬
‫‪Win 2000‬‬
‫‪IIS‬‬
‫‪workstation/Server‬‬
‫‪IIS‬‬ ‫‪Win XP‬‬
‫‪PWS‬‬ ‫)‪Win 9X (98/95‬‬

‫‪Windows NT Server :‬‬

‫ﻥﺴﺨﺔ ‪ IIS‬اﻟﻤﻨﺎﺳ ﺒﺔ ﻟ ـ‪ Win NT‬ه ﻲ ‪ IIS 4.0‬واﻟﻤﻮﺟ ﻮدة ﺽ ﻤﻦ ‪Windows NT Option‬‬


‫‪pack‬ﻓﻲ اﻟﻮﺻﻠﺔ اﻟﺘﺎﻟﻴﺔ ‪:‬‬

‫‪Win 2000 Server or Workstation and Win XP :‬‬

‫‪ IIS 5.0‬هﻲ اﻟﻨﺴﺨﺔ اﻟﻤﻨﺎﺳﺒﺔ ﻟـ ‪ Win 2000‬واﻟﺘﻲ ﺗﻜﻮن ﺟ ﺰء ﻣ ﻦ ﻥﻈ ﺎم اﻟﺘﺸ ﻐﻴﻞ‪ ،‬ﻓ ﻼ ﺡﺎﺟ ﺔ‬
‫ﻟﺘﺤﻤﻴﻠﻬﺎ‪ ،‬وﻟﻜﻦ إن ﻟﻢ ﺗﻜﻮن ﻣﻮﺟ ﻮدة ﻓ ﻴﻤﻜﻦ ﺗﺜﺒﻴﺘﻬ ﺎ ﻣ ﻦ‪ Windows 2000 CD-ROM.‬وآ ﺬﻟﻚ‬
‫‪Win XP‬‬

‫أدﺥﻞ اﻟﻘﺮص ﻓﻲ ﻣﺤﺮك اﻷﻗﺮاص واﺗﺒﻊ اﻟﺨﻄﻮات اﻟﺘﺎﻟﻴﺔ ‪:‬‬

‫ﻣﻦ ﻟﻮﺡﺔ اﻟ ﺘﺤﻜﻢ >‪ (control panel) ----‬إﺽ ﺎﻓﺔ وإزاﻟ ﺔ ﺑ ﺮاﻣﺞ )‪(Add or Remove Programs‬‬
‫آﻤﺎ هﻮ ﻣﻮﺽﺢ ﺑﺎﻟﺸﻜﻞ‪:‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٢٠١‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٢٠٢‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﺗﺄآ ﺪ ﻣ ﻦ وﺟ ﻮد إﺵ ﺎرة ﺑﺠﺎﻥ ﺐ ‪ Internet Information Server‬آﻤ ﺎ ه ﻮ ﻣﻮﺽ ﺢ ﻓ ﻲ‬


‫اﻟﺼ ﻮرة اﻟﺴ ﺎﺑﻘﺔ ‪ ،‬إن وﺟ ﺪت ﻓﻬ ﺬا یﻌﻨ ﻲ أن اﻟﺒﺮﻥ ﺎﻣﺞ ﻣﺜﺒ ﺖ ﻟ ﺪیﻚ وإن ﻟ ﻢ ﺗﻜ ﻦ ﻣﻮﺟ ﻮدة ﻓﺎﺥﺘﺎره ﺎ‬
‫واﺽﻐﻂ ﻋﻠﻰ ‪ Next‬وﺗﺘﺒﻊ اﻟﺨﻄﻮات اﻟﺘﺎﻟﻴﺔ ‪:‬‬

‫هﺎم ﻗﺒﻞ اﻟﺘﺜﺒﻴﺖ‬


‫• یﺠﺐ أن ﺗﻐﻠﻖ ﺟﻤﻴﻊ اﻟﺘﻄﺒﻴﻘﺎت ﻗﺒﻞ ﺗﺜﺒﻴﺖ أ اﻟﺒﺮﻥﺎﻣﺞ‬
‫• اﺡﺮص ﻋﻠﻰ أن ﺗﻜﻮن ﻥﺴﺨﺔ ﺑﺮﻥﺎﻣﺞ ‪ IE‬هﻲ اﻟﺤﺪیﺜﺔ ﻟﺪیﻚ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٢٠٣‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﺑﺮﻥﺎﻡﺞ ‪ IIS:‬اﻟﺘﻌﺮف ﻋﻠﻰ اﻟﺨﺼﺎﺋﺺ‬


‫ﻣﻦ اﺑﺪأ >‪ ---‬ﻟﻮﺡﺔ اﻟﺘﺤﻜﻢ آﻤﺎ یﻠﻲ ‪:‬‬

‫ﺑﺎﻟﻨﻘﺮ ﻋﻠﻰ أیﻘﻮﻥﺔ ‪ Internet Information Service‬ﺳﻴﻔﺘﺢ ﻣﻌﻚ ﺑﺮﻥﺎﻣﺞ ‪ IIS‬آﻤﺎ یﺒﺪو ﻓﻲ‬
‫اﻟﺼﻮرة ‪:‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٢٠٤‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﺧﻄﺄ!‬

‫ﺧﻄﺄ!‬

‫ﻟﺘﻐﻴﻴﺮ ﻡﺠﻠﺪ اﻟﺒﺪایﺔ ﻟﻤﻮﻗﻌﻚ ‪:‬‬


‫ﻣﺠﻠﺪ اﻟﺒﺪایﺔ هﻮ اﻟﻤﺠﻠﺪ اﻟﺠﺬري أو اﻟﻤﺠﻠﺪ اﻷم اﻟﺬي یﺤﺘﻮي ﻋﻠﻰ ﺟﻤﻴﻊ ﺻﻔﺤﺎت اﻟﻮیﺐ واﻟﻤﺠﻠ ﺪات‬
‫اﻟﻔﺮﻋﻴﺔ‪ ،‬آﻞ ﻣﻮﻗ ﻊ وی ﺐ یﺠ ﺐ أن یﻜ ﻮن ﻟ ﻪ ﻣﺠﻠ ﺪ ﺑﺪای ﺔ ﻟﻜ ﻲ یﻨﻄﻠ ﻖ ﻣﻨ ﻪ اﻟﻤﺴ ﺘﺨﺪﻣﻮن ﻓ ﻲ ﺗﺼ ﻔﺢ‬
‫اﻟﻤﻮﻗﻊ ! ﻓﻲ ﺑﺮﻥﺎﻣﺞ ‪ IIS‬یﻮﺟﺪ ﻣﺠﻠﺪ اﻓﺘﺮاﺽﻲ یﻨﺸﺄ ﻋﻨﺪ ﺗﺜﺒﻴﺖ اﻟﺒﺮﻥﺎﻣﺞ ﻷول ﻣﺮة‪ ،‬وﻟﻜﻦ ﺑﺈﻣﻜﺎﻥ ﻚ‬
‫ﺗﻐﻴﻴﺮ هﺬا اﻟﻤﺠﻠﺪ إﻟﻰ ﻣﺠﻠﺪ ﺁﺥﺮ إذا أردت‪.‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٢٠٥‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﺧﻄﺄ!‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٢٠٦‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﻹﻥﺸﺎء ﻡﺠﻠﺪ وهﻤﻲ ﻟﻤﻮﻗﻊ اﻟﻮیﺐ ﻋﻠﻰ ﺟﻬﺎزك ‪:‬‬


‫ﺑﻤﺎ أن اﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﻻ یﺴﺘﻄﻴﻌﻮن اﻟﻮﺻ ﻮل إﻻ ﻟﻠﺼ ﻔﺤﺎت اﻟﻤﻮﺟ ﻮدة ﻓ ﻲ ﻣﺠﻠ ﺪ اﻟﺒﺪای ﺔ أو أي ﻣﺠﻠ ﺪ‬
‫ﻓﺮﻋﻲ ﺗﺤﺘﻪ ‪ ،‬ﻓﺈن اﻟﻤﺠﻠﺪ اﻟﻮهﻤﻲ ُی َﻤﻜّﻦ اﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﻣﻦ اﻟﻮﺻﻮل إﻟﻰ ﻣﺠﻠﺪ ﻏﻴﺮ ﻣﻮﺟﻮد ﻓﻲ ﻣﺠﻠﺪ‬
‫ﻼ ﻟ ﻮ آ ﺎن‬‫اﻟﺒﺪایﺔ أو أي ﻣﺠﻠﺪ ﻓﺮﻋﻲ ﺗﺤﺘﻪ ! وﺑﻐﺾ اﻟﻨﻈﺮ ﻋﻦ ﻣﻮﻗﻌﻪ اﻷﺳﺎﺳ ﻲ ﻋﻠ ﻰ ﺟﻬ ﺎزك‪ .‬ﻓﻤ ﺜ ً‬
‫ﻟﺪیﻚ ﻣﺠﻠﺪ ﺑﻪ ﺻﻔﺤﺎت ویﺐ وﻻ ﺗﺮی ﺪ ﻥﺴ ﺨﻬﺎ ﻓ ﻲ ﻣﺠﻠ ﺪ اﻟﺒﺪای ﺔ أو ﻓ ﻲ أي ﻣﺠﻠ ﺪ ﻓﺮﻋ ﻲ ﺗﺤﺘ ﻪ ﻓﺈﻥ ﻪ‬
‫ﺑﺈﻣﻜﺎﻥ ﻚ أن ﺗﺠﻌ ﻞ ه ﺬا اﻟﻤﺠﻠ ﺪ آﻤﺠﻠ ﺪ وهﻤ ﻲ وآﺄﻥ ﻪ ﻣﺠﻠ ﺪ ﻓﺮﻋ ﻲ ﺗﺤ ﺖ ﻣﺠﻠ ﺪ اﻟﺒﺪای ﺔ ﺑ ﺪون ﺗﻐﻴﻴ ﺮ‬
‫ﻣﻮﻗﻌﻪ ﺑﺎﻟﻔﻌﻞ ! ﻣﻊ ﻣﻼﺡﻈﺔ أن اﻟﻤﺴﺘﺨﺪﻣﻮن ﻟﻦ یﻌﺮﻓﻮا اﻟﻤﻮﻗﻊ اﻟﻔﻌﻠﻲ ﻟﻠﻤﺠﻠﺪ ﻋﻠﻰ اﻟﺠﻬﺎز!‬

‫ﺧﻄﺄ!‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٢٠٧‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٢٠٨‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫اﻟﺨﻴﺎران ‪ Read and Run scripts‬ﺗﻜﻮن ﻥﺸﻄﺔ ﻓﻲ اﻟﻮﺽﻊ اﻻﻓﺘﺮاﺽﻲ‪ ،‬ﻓﺎﻟﺨﻴﺎر ‪ Read‬یﻤﻜ ﻦ‬
‫اﻟﻤﺴ ﺘﺨﺪﻣﻴﻦ ﻣ ﻦ ﻋ ﺮض اﻟﺼ ﻔﺤﺔ‪ ،‬و ‪Run script‬یﻤﻜ ﻨﻬﻢ ﻣ ﻦ ﺗﺸ ﻐﻴﻞ ﻣﻠﻔ ﺎت اﻷواﻣ ﺮ اﻟﻨﺼ ﻴﺔ‬
‫اﻟﻤﻮﺟ ﻮدة ﺑﺎﻟﺼ ﻔﺤﺔ ﻣﺜ ﻞ أواﻣ ﺮ‪ ، ASP‬أﻣ ﺎ اﻟﺨﻴ ﺎر ‪ Execute‬ﻓﺈﻥ ﻪ یﺸ ﻐﻞ اﻟﺒ ﺮاﻣﺞ اﻟﻤﻮﺟ ﻮدة ﻓ ﻲ‬
‫اﻟﻤﺠﻠ ﺪ ﻗ ﺪ یﺴ ﺒﺐ ﺗﻨﺸ ﻴﻄﻪ ﻣﺸ ﺎآﻞ أﻣﻨﻴ ﺔ ﻟ ﺬا ﻻ یﻨﺸ ﻂ ﻋ ﺎدة !أﻣ ﺎ اﻟﺨﻴ ﺎر ‪ write‬ﻹﻥﺸ ﺎء ﻣﻠﻔ ﺎت ﻓ ﻲ‬
‫اﻟﻤﺠﻠﺪ‪ ،‬واﻟﺨﻴﺎر اﻷﺥﻴﺮ ‪ Browse‬ﻋﻨﺪﻣﺎ یﺤﺪد اﻟﻤﺴﺘﺨﺪم اﺳ ﻢ اﻟﻤﺠﻠ ﺪ وﻻ یﺤ ﺪد اﺳ ﻢ اﻟﺼ ﻔﺤﺔ اﻟﺘ ﻲ‬
‫یﺮیﺪهﺎ یﻤﻜﻨﻪ هﺬا اﻟﺨﻴﺎر ﻣﻦ ﻋﺮض ﺟﻤﻴﻊ اﻟﺼﻔﺤﺎت اﻟﻤﻮﺟﻮدة ﺗﺤ ﺖ ه ﺬا اﻟﻤﺠﻠ ﺪ ! أیﻀ ًﺎ ﻻ یﺠ ﺐ‬
‫ﺗﻨﺸﻴﻂ هﺬا اﻟﺨﻴﺎر ! ﻷﻥﻪ رﺑﻤﺎ ﺗﻮﺟﺪ ﺻﻔﺤﺎت ﻻ ﺗﺮیﺪ اﻟﻤﺴﺘﺨﺪم أن یﺼﻞ إﻟﻴﻬﺎ أو یﻌﻠﻢ ﺑﻮﺟﻮدهﺎ‬

‫ﻡﻠﺤﻮﻇ ﺔ ‪ :‬ﻟ ﻴﺲ ﻣ ﻦ اﻟﻀ ﺮوري أن یﻜ ﻮن اﻻﺥﺘﺼ ﺎر ﻣﺨﺘﻠﻔ ًﺎ ﻋ ﻦ اﻻﺳ ﻢ اﻷﺳﺎﺳ ﻲ ﻟﻠﻤﺠﻠ ﺪ‪ ،‬ﻣ ﻦ‬
‫اﻟﻤﻤﻜﻦ أن یﻜﻮن ﻥﻔ ﺲ اﻻﺳ ﻢ ‪ ،‬ﻣ ﻊ اﻟﺘﻨﺒﻴ ﻪ ﻋﻠ ﻰ أن اﻟﺘﻌﺎﻣ ﻞ ﻣ ﻊ ه ﺬا اﻟﻤﺠﻠ ﺪ ﺳ ﻴﻜﻮن ﺑﺎﻻﺥﺘﺼ ﺎر ﻻ‬
‫ﺑﺎﻻﺳﻢ اﻟﺤﻘﻴﻘﻲ ﻟﻠﻤﺠﻠﺪ‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٢٠٩‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫ﺧﻄﺄ!‬

‫ﻡﺎ اﻟﻤﻄﻠﻮب اﻵن ؟ !!‬


‫واﻟ ﺬي ﺗﺠ ﺪﻩ ﻓ ﻲ‬ ‫اﻻﻓﺘﺮاﺽ ﻲ‬ ‫ﻋﻠﻴﻨ ﺎ أن ﻥﻨﺸ ﺊ ﻣﺠﻠ ﺪ ﻓﺮﻋ ﻲ ﺗﺤ ﺖ ﻣﺠﻠ ﺪ اﻟﺒﺪای ﺔ‬
‫اﻟﻤﺴﺎر‪:C:\Inetpub\wwwroot‬‬

‫ﻼ !! ﻟﻨﺤﻔﻆ ﻓﻴﻪ ﺻ ﻔﺤﺎت ‪ ASP‬اﻟﺘ ﻲ ﺳﻨﻨﺸ ﺌﻬﺎ ﻣﻌ ًﺎ ﻓ ﻲ‬


‫وﻟﻴﻜﻦ هﺬا اﻟﻤﺠﻠﺪ ﺑﺎﻻﺳﻢ ‪ ASPTEST‬ﻣﺜ ً‬
‫اﻟﺪروس اﻟﻘﺎدﻣﺔ ﺑﺈذن اﷲ‪.‬‬

‫ﻟﺴ ﺖ ﺑﺤﺎﺟ ﺔ ﻟﺠﻌ ﻞ ه ﺬا اﻟﻤﺠﻠ ﺪ آﻤﺠﻠ ﺪ وهﻤ ﻲ ﻥﻈ ﺮًا ﻷﻥ ﻪ یﻌﺘﺒ ﺮ ﻣﺠﻠ ﺪ ﻓﺮﻋ ﻲ ﺗﺤ ﺖ ﻣﺠﻠ ﺪ اﻟﺒﺪای ﺔ‬
‫اﻻﻓﺘﺮاﺽﻲ‬
‫~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~‬

‫ﺑﻌﺪ أن أﻥﺸﺌﻨﺎ اﻟﻤﺠﻠﺪ ‪ ASPTEST‬ﻓﺈﻥﻨﺎ ﺳﻨﺨﺘﺒﺮ ﻋﻤﻞ اﻟﺒﺮﻥﺎﻣﺞ اﻟﺬي ﺙﺒﺘﻨﺎﻩ ﻋﻠﻰ أﺟﻬﺰﺗﻨﺎ وذﻟﻚ‬
‫ﺑﻜﺘﺎﺑﺔ آﻮد ‪ ASP‬ﻟﻼﺥﺘﺒﺎر ﻓﻘﻂ‪ ،‬ﻓﻼ ﺗﻘﻠﻖ إذا ﻟﻢ ﺗﻔﻬﻢ هﺬا اﻟﻜﻮد !‬

‫ﻓﻜﻞ ﻣﺎ ﻋﻠﻴﻚ هﻮ أن ﺗﻔﺘﺢ ﺑﺮﻥﺎﻣﺞ اﻟﻤﻔﻜﺮة وﺗﻜﺘﺐ ﻓﻴﻪ اﻟﻜﻮد اﻟﺘﺎﻟﻲ‪:‬‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬


‫ﺻﻔﺤﺔ ‪٢١٠‬‬ ‫ﻣﺸﺮوع ‪ASP‬‬

‫‪<%‬‬

‫)"ﻣﺠﺮد اﺥﺘﺒﺎر ﻟﻌﻤﻞ ﺑﺮﻥﺎﻣﺞ ﺥﺎدم اﻟﻮیﺐ ﻋﻠﻰ ﺟﻬﺎزي هﺬا "(‪Response.Write‬‬

‫>‪%‬‬

‫اﺡﻔﻆ اﻟﺼﻔﺤﺔ ﺑﺎﻻﺳﻢ ‪ test.asp‬ﻓﻲ اﻟﻤﺠﻠﺪ ‪ ASPTEST‬اﻟﺬي ﻗﻤﻨﺎ ﺑﺈﻥﺸﺎﺉﻪ ﻗﺒﻞ ﻗﻠﻴﻞ‪.‬‬

‫ﺙﻢ اﻓﺘﺢ اﻟﻤﺘﺼﻔﺢ واآﺘﺐ اﻟﻌﻨﻮان اﻟﺘﺎﻟﻲ ‪:‬‬

‫‪http://localhost/ASPTEST/test.asp‬‬

‫ﺡﻴﺚ أن آﻠﻤﺔ ‪ localhost‬ﺗﺸﻴﺮ إﻟﻰ ﺥﺎدم اﻟﻮیﺐ ﻋﻠﻰ ﺟﻬﺎزك یﻤﻜﻨﻚ اﺳﺘﺒﺪاﻟﻬﺎ ﺑﺎﺳ ﻢ اﻟﻜﻤﺒﻴ ﻮﺗﺮ‬
‫أو ﺑ ﺮﻗﻢ اﻵي ﺑ ﻲ اﻟﺘ ﺎﻟﻲ ‪ : 127.0.0.1‬وه ﻮ رﻗ ﻢ أﺟﻬ ﺰة اﻟﻜﻤﺒﻴ ﻮﺗﺮ اﻟﺘ ﻲ ﺗﻌﻤ ﻞ ﺑﺒﺮوﺗﻮآ ﻮل‬
‫‪TCP/IP‬ﻟﻺﺵﺎرة إﻟﻰ ﻥﻔﺴﻬﺎ ‪.‬‬

‫‪:‬‬ ‫ﺳﺘﻈﻬﺮ اﻟﻨﺘﻴﺠﺔ آﻤﺎ ﺑﺎﻟﺼﻮرة‬

‫ﻡﻼﺣﻈﺔ ‪ :‬إذا آﺎن اﻟﻤﺴﺘﻌﺮض ﻻ یﻨﻘﻠﻚ ﻟﺼﻔﺤﺔ ‪ ASP‬اﻟﺘﻲ ﻃﻠﺒﺘﻬﺎ ﻓﻐﻴﺮ ﻣﻦ اﻋﺪادات اﻟﻤﺘﺼﻔﺢ‬
‫وأﺟﻌﻞ ﻃﻠﺐ اﻻﺗﺼﺎل ﻋﻠﻰ اﻟﺨﻴﺎر ‪Never dial a connection .‬‬

‫أو اآﺘﺐ اﻟﻤﺴﺎر اﻟﺘﺎﻟﻲ ﻓﻲ اﻟﻤﺴﺘﻌﺮض ﻟﻼﺥﺘﺒﺎر اﻟﺴﺮیﻊ‪ http://localhost/iishelp‬ﺳﻮف ﺗﻈﻬﺮ ﻟﻚ هﺬﻩ اﻟﻨﺎﻓﺬة‬

‫ﺗﻨﻔﻴﺬ ‪ :‬م‪ .‬إﺳﻤﺎﻋﻴﻞ دﻣﺮان أﺑﻮ زیﺪ‬

You might also like