Professional Documents
Culture Documents
Project ASP
Project ASP
Project 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
ﻟﻨﺒﺪأ ﻣﻌﻨﺎ
إﻥﻨﻲ ﻣﺆﻣﻦ ﺑﺄن أﻓﻀﻞ ﻃﺮیﻘﺔ ﻟﺘﻌﻠﻢ هﺬﻩ اﻟﻠﻐﺔ هﻮ اﻟﻘﻴﺎم ﺑﺄﻣﺜﻠﺔ ﻋﻤﻠﻴﺔ ..ﻟﺬا ﻟ ﻦ أﺗﺤ ﺪث ﻋ ﻦ اﻟﻤﺘﻐﻴ ﺮات أو اﻷواﻣ ﺮ أو
اﻟﻘﻴﻢ إﻻ ﻋﻨﺪﻣﺎ ﻥﺤﺘﺎﺟﻬﺎ ﻟﺘﺼﻤﻴﻢ إﺡﺪى اﻟﺼﻔﺤﺎت.
وﻟﻨﺘﺄآﺪ ﻣﻦ ﺗﻄﺒﻴﻘﻨﺎ اﻟﺴﻠﻴﻢ ﻟﻠﻐﺔ ..ﺳﻨﺒﺪأ ﺑﻤﺸﺮوع ﻣﻦ اﻟﺼﻔﺮ ،ﺥﻄﻮة ﺑﺨﻄﻮة ..وﻋﻨﺪ ﻥﻬﺎیﺔ هﺬﻩ اﻟﺪروس ﺳﺘﻜﻮن ﻗﺎدرا
ﻋﻠﻰ ﺗﺼﻤﻴﻢ ﻣﺸﺮوﻋﺎ ﻣﺸﺎﺑﻬﺎ ،وﻣﻦ ﺙﻢ ﺗﻄﻮیﺮﻩ إن ﺵﺎء اﷲ.
ﻣﺸﺮوﻋﻨﺎ ﺳﻴﻜﻮن ،ﺗﺼﻤﻴﻢ ﻣﻮﻗﻊ إﺥﺒﺎري ﺑﺴﻴﻂ.
أوﻻ :اﻟﻤﺤﺘﻮى:
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ﻟﺘﺨﺰیﻦ ﻣﻠﻔﺎت ﻣﺸﺮوﻋﻨﺎ هﺬا ﻓﻴﻪ.
<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>
<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> 1425-1426 إﺳﻤﺎﻋﻴﻞ دﻣﺮان.<م/font></p>
</body></html>
<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>
آﻤﺎ ذآﺮﻥﺎ ﻣﻦ ﻗﺒﻞ ،ﺳﻨﺼﻤﻢ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت ﺑﺎﺳﺘﺨﺪام ﺑﺮﻥﺎﻣﺞMicrosoft Access XP..
اﺥﺘ ﺮ ﺑﻴﺎﻥ ﺎت ﻓﺎرﻏ ﺔ ﺟﺪی ﺪة واﺡﻔ ﻆ ﻗﺎﻋ ﺪة اﻟﺒﻴﺎﻥ ﺎت ،ﻓ ﻲ C:\Inetpub\wwwrootأو اﻟﻤﺠﻠ ﺪ اﻟﻔﺮﻋ ﻲ اﻟ ﺬي
ﺥﺼﺼﺘﻪ ﻟﻬﺬﻩ اﻟﺼﻔﺤﺔ ﺑﺪاﺥﻞ هﺬا اﻟﻤﺠﻠﺪ.
ویﻔﻀﻞ أن ﺗﺤﻔﻆ ﺑﺪاﺥﻞ ﻣﺠﻠﺪ ﻓﺮﻋﻲ ﺑﺎﺳﻢ databaseﺑﺪاﺥﻞ اﻟﻤﺠﻠﺪ اﻟﻔﺮﻋﻲ newsﺳﻴﺘﻢ إآﻤﺎل اﻟﺪروس اﻋﺘﻤﺎدا
ﻋﻠﻰ هﺬا اﻻﻓﺘﺮاض .وﺳﻨﺴﻤﻲ اﻟﻘﺎﻋﺪة هﻨﺎ ﺑﺎﺳﻢproject.mdb
ﺑﻌﺪ اﻟﻀﻐﻂ ﻋﻠﻰ ) إﻥﺸﺎء ( اﺥﺘﺮ ) إﻥﺸﺎء ﺟﺪول ﻓﻲ ﻃﺮیﻘﺔ ﻋﺮض اﻟﺘﺼﻤﻴﻢ (
أﻏﻠﻖ اﻟﺠﺪول ،وﺳﺘﺮى اﺳﻤﻪ ﻣﻮﺟﻮد ﻓﻲ )اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ( .اﺽﻐﻂ ﻋﻠﻰ اﺳﻤﻪ ﻣﺮﺗﻴﻦ ﻟﻔﺘﺤﻪ .ﺳﻴﻈﻬﺮ ﻟﻚ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ
><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
ﻣﻦ ﻗﺎﺉﻤﺔ Control Panelاﺥﺘﺮ Administrative Toolsوﻣﻦ ﺙﻢ اﺥﺘﺮ ) Data Source (ODBCﺙﻢ
اﺥﺘﺮ اﻟﺘﺒﻮیﺐ System DSNآﻤﺎ هﻮ ﻣﻮﺽﺢ ﻓﻲ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ
وﻣﻦ ﺙﻢ اﺥﺘﺮ اﻟﺒﺮﻥﺎﻣﺞ اﻟﺬي ﻗﻤﺖ ﻣﻦ ﺥﻼﻟﻪ ﺑﻜﺘﺎﺑﺔ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت اﻟﺴﺎﺑﻘﺔ ﻟﺬﻟﻚ ﺳﻮف ﻥﺨﺘﺎر Driver do Microsoft Access
ﺙﻢ اﺽﻐﻂ ﻋﻠﻰ زر Finishﻟﻴﻈﻬﺮ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ واآﺘﺐ ﻓﻴﻪ اﺳﻢ ﻣﺼﺪر اﻟﺒﻴﺎﻥﺎت اﻟﺬي ﺳﻮف ﺗﻘﻮم ﺑﻨﺪاء ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت ﻣﻦ ﺥﻼﻟﻪ
وهﻮ my_data_base
Data Source Name (DSN)( وﺑﺬﻟﻚ ﻥﻜﻮن ﻗﺪ اﻥﺘﻬﻴﻨﺎ ﻣﻦ إﻥﺸﺎء ) اﺱﻢ ﻡﺼﺪر اﻟﺒﻴﺎﻥﺎت
<%
' أواﻣﺮ اﻻﺗﺼﺎل ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت
Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
connectionToDatabase.Open "DSN=my_data_base"
connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>
اﻵن ﺳﻮف ﻥﻘﻮم ﺑﺈﺽﺎﻓﺔ أواﻣﺮ اﺥﺘﻴﺎر اﻟﺠﺪول واﺳﺘﺪﻋﺎء اﻟﺒﻴﺎﻥﺎت ﻣﻨ ﻪ وﻟﻜ ﻦ ﻻﺡ ﻆ أن ه ﺬﻩ اﻷواﻣ ﺮ آﺘ ﺒﻦ ﺑﻌ ﺪ أﻣ ﺮ
وﻗﺒ ﻞ إﻏ ﻼق ﻗﺎﻋ ﺪة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"
connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>
<!--#include file="pagefooter.asp" -->
</body></html>
واﻟﻨﺘﻴﺠﺔ هﻲ
ﺘﻬﺎﻨﻴﻨﺎ .ﻟﻘﺩ ﻗﺎﻡ ﺍﻟـ Codeﺍﻟﺫﻱ ﻜﺘﺒﺘﻪ ﺒﻘﺭﺍﺀﺓ ﻤﺤﺘﻭﻴﺎﺕ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻭﻋﺭﻀﻬﺎ .ﺒﺎﻟﻁﺒﻊ ﺘﻭﺠﺩ ﺇﺸﻜﺎﻟﻴﺎﺕ ﺒﺴﻴﻁﺔ
ﻓﻲ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﻤﻌﺭﻭﻀﺔ ،ﻭﺴﻨﺸﺭﺡ ﻁﺭﻴﻘﺔ ﺍﻟﺘﻐﻠﺏ ﻋﻠﻴﻬﺎ ﻓﻲ ﺍﻟﺨﻁﻭﺍﺕ ﺍﻟﺘﺎﻟﻴﺔ.
اﻹﺵﻜﺎﻟﻴﺔ اﻷوﻟﻰ :اﻟﻤﻈﻬﺮ ﻥﻼﺡﻆ أن اﻟﺒﻴﺎﻥﺎت ﻣﺘﺘﺎﻟﻴﺔ ﻟﺬﻟﻚ ﺳﻮف ﻥﻘﻮم ﺑﺘﺤﺴﻴﻦ اﻟﻤﻈﻬﺮ ﻋﻦ ﻃﺮیﻖ اﺳﺘﺨﺪام
اﻟﺠﺪاول آﺎﻟﺘﺎﻟﻲ :
ﻻﺡﻆ ﺗﻢ وﺽﻊ أواﻣﺮ ASPﺑﺎﺥﻞ اﻟﺠﺪول
وذﻟﻚ ﻋﻦ ﻃﺮیﻖ ﺗﺼﻤﻴﻢ اﻟﺠﺪول ﻓﻲ اﻟﻨﻤﻂ اﻟﻌﺎدي ﺑﺒﺮﻥﺎﻣﺞ اﻟﻔﺮوﻥﺖ ﺑﻴﺞ ﺙﻢ ﺗﻢ إدﺥﺎل أواﻣﺮ ASPﻋﻦ ﻃﺮیﻖ
اﻟﻨﻤﻂ HTMLﺑﺒﺮﻥﺎﻣﺞ اﻟﻔﺮوﻥﺖ ﺑﻴﺞ ﻟﻴﻈﻬﺮ آﺎﻟﺘﺎﻟﻲ
</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
%>
( اﻟﺬي آﺘﺒﻨﺎﻩ ﻗﺎم ﺑﻌﺮض وﻃﺒﺎﻋﺔ أول ﺡﻘﻞ ﻓﻘﻂ ﻣﻦ اﻟﻘﺎﻋﺪة )أول ﺥﺒﺮ ﻓﻘﻂ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 ﻟﻠﺴﻄﺮ اﻟﺬي یﻠﻲ
واﻟﻨﺘﻴﺠﺔ هﻲ
اﻵن ﺳﻮف ﻥﻘﻮم ﺑﺘﺤﺪیﺚ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت ﺑﺈﺽﺎﻓﺔ ﺥﺒﺮ ﺟﺪیﺪ وهﻮ
ﻻ ﻇﻬﺮ ﻓﻲ ﺁﺥﺮ
ﻥﻼﺡﻆ أن اﻟﺒﻴﺎﻥﺎت ﺗﻈﻬﺮ وﻓﻖ ﺗﺮﺗﻴﺐ اﻟﺴﺠﻼت ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت ﺑﻤﻌﻨﻰ أن اﻟﺨﺒﺮ اﻟﺬي أﺽﻔﺘﺎﻩ ﺡﺎ ً
ﺵﻲء ﺡﻴﺚ أﻥﻪ ﻓﻲ اﻟﺴﺠﻞ رﻗﻢ ٣
اﻵن ﺗﺮیﺪ ﻇﻬﻮر هﺬﻩ اﻷﺥﺒﺎر ﺡﺴﺐ ﺡﺪاﺙﺘﻬﺎ ﺑﻤﻌﻨﻰ أن اﻟﺨﺒﺮ اﻷﺡﺪث یﻈﻬﺮ ﻓﻲ اﻟﺒﺪایﺔ وأﻗﺪم ﺥﺒﺮ یﻈﻬﺮ ﻓﻲ اﻟﻨﻬﺎیﺔ
) ﻣﻠﺤﻮﻇﺔ ﻥﻔﺲ ﺗﺮﺗﻴﺐ اﻟﺴﺠﻼت آﻤﺎ هﻮ (
وﻟﻌﻤﻞ ﺳﻮف ﻥﻘﻮم ﺑﺘﻐﻴﻴﺮ ﻓﻲ اﻟﻤﻠﻒ tech.aspآﺎﻟﺘﺎﻟﻲ
اﻟﻌﺒﺎرة اﻟﻘﺪیﻤﺔ :
"selectSQL="select * from tech_news
اﻟﻌﺒﺎرة اﻟﺠﺪیﺪة :
"selectSQL="select * from tech_news order by add_dat desc
اﻟﻤﻘﺼﻮد ﻣﻨﻬﺎ ﺗﺮﺗﻴﺐ اﻟﺠﺪول ﺡﺴﺐ ﺡﻘﻞ اﻟﺘﺎریﺦ add_datﺗﻨﺎزﻟﻴ ًﺎ (descend) descأﻣ ﺎ ascﺗﺴ ﺘﺨﺪم ﻟﺘﺮﺗﻴ ﺐ
اﻟﻨﺘﺎﺉﺞ ﺗﺼﺎﻋﺪیًﺎ )(ascent
واﻟﻨﺘﻴﺠﺔ هﻲ
ﻓﻲ اﻟﺴﺎﺑﻖ ﺻﻤﻤﻨﺎ ﻇﻬﻮر اﻷﺥﺒﺎر ﻋﻠﻰ ﺵﻜﻞ ﺟﺪول ) آﻤﺎ هﻮ ﻓﻲ اﻟﺼﻔﺤﺔ اﻟﺴﺎﺑﻘﺔ ( وﻟﻜﻦ هﺬا اﻟﺸﻜﻞ ﻣﻘﺒﻮل إن
ﻓﻠﻦ یﻜﻮن هﺬا، أو أﺥﺒﺎر ﻃﻮیﻠﺔ، أﻣﺎ إن آﺎن اﻟﻤﻄﻠﻮب ﻋﺮض ﻣﻘﺎﻻت.آﺎﻥﺖ اﻷﺥﺒﺎر ﻋﺒﺎرة ﻋﻦ أﺥﺒﺎر ﻗﺼﻴﺮة
وهﺬا اﻟﻌﻨﻮان یﻜﻮن ﻋﻠﻰ ﺵﻜﻞ )راﺑﻂ( ﺗﻔﺘﺢ ﺑﻪ ﺻﻔﺤﺔ ﺟﺪیﺪة،واﻷﻓﻀﻞ هﻮ ﻋﺮض اﻟﻌﻨﻮان ﻓﻘﻂ. اﻟﺸﻜﻞ ﻣﻨﺎﺳﺒﺎ
وهﺬا ﻣﺎ ﺳﻮف ﻥﺘﺤﺪث ﻋﻨﻪ اﻵن.ﺗﺤﺘﻮي ﻋﻠﻰ اﻟﻤﻮﺽﻮع
( QueryString )وﺽﻊ رواﺑﻂ ﻟﻤﻮاﺽﻴﻊ ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت اﺱﺘﺨﺪام
ﻟﺘﺼﻤﻴﻢ ذﻟﻚ اﺗﺒﻊ اﻟﺨﻄﻮات اﻟﺘﺎﻟﻴﺔ
وه ﻲ اﻷﺳ ﻄﺮ اﻟﺘ ﻲ ﺗﻘ ﻮم ﺑﻌ ﺮض ﺗ ﺎریﺦ اﻟﺨﺒ ﺮ، وﻗﻢ ﺑﺤﺬف اﻟﺴ ﻄﻮر اﻟﺨﺎﺻ ﺔ ﺑﺎﻟﺠ ﺪولteach.aspاﻓﺘﺢ اﻟﻤﻠﻒ
: وﺳﻨﻀﻊ ﻣﻜﺎﻥﻬﺎ اﻟﺴﻄﺮ اﻟﺘﺎﻟﻲ.وﻋﻨﻮاﻥﻪ وﻥﺼﻪ
ه ﺬﻩ اﻟ ﺮواﺑﻂ ﺗﺘﻤﻴ ﺰ. وﺳ ﺘﻜﻮن ه ﺬﻩ اﻟﻌﻨ ﺎویﻦ ﻋﻠ ﻰ ﺵ ﻜﻞ رواﺑ ﻂ،هﺬا اﻟﺴﻄﺮ ﺳ ﻴﻘﻮم ﺑﻌ ﺮض ﻋﻨ ﺎویﻦ اﻷﺥﺒ ﺎر ﻓﻘ ﻂ
.ﺑﺈرﺳﺎﻟﻬﺎ ) ﻗﻴﻤﺔ ( ﻟﻠﺼﻔﺤﺔ اﻟﻤﺮاد إﻇﻬﺎرهﺎ
< ﻓﻔﺎﺉﺪﺗﻪ اﻟﺤﺼﻮل ﻋﻠﻰ ﺳﻄﺮ ﺟﺪیﺪ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)%>
<%
connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>
<!--#include file="pagefooter.asp" -->
</body></html>
: ﻭﻜﺎﻥ ﺍﻟﺭﺍﺒﻁ ﻋﻠﻰ ﺍﻟﺸﻜل ﺍﻟﺘﺎﻟﻲ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"
ﻣﻦ اﻷﻣﻮر اﻟﺠﺪیﺪة اﻟﺘﻄﻮیﺮ اﻟﺬي ﺡﺪث ﻷﻣﺮ selectSQL .ﺡﻴﺚ ﺗ ﻢ اﺳ ﺘﺒﺪال اﺳ ﻢ اﻟﺠ ﺪول ﺑﻌ ﺪ آﻠﻤ ﺔ ) (Fromﺑﺎﺳ ﻢ ﻣﺘﻐﻴ ﺮ
ﻓ ﻲ ﺡﺎﻟﺘﻨ ﺎ ه ﺬﻩ ) (Fieldوه ﺬا یﻌﻄ ﻲ ﻣﺮوﻥ ﺔ أآﺒ ﺮ .ﺡﻴ ﺚ أن SelectSQLﺳ ﺘﺘﻐﻴﺮ ﺑﺘﻐﻴ ﺮ ﻗﻴﻤ ﺔ Field ..أي أﻥ ﻪ یﻤﻜﻨﻨ ﺎ
اﺳﺘﺨﺪام هﺬﻩ اﻟﺼﻔﺤﺔ ﻟﻌﺮض ﺟﻤﻴﻊ أﻗﺴﺎم اﻷﺥﺒﺎر ﻓﻲ اﻟﻤﻮﻗﻊ وﻟﻴﺲ ﻓﻘﻂ ﻟﻸﺥﺒﺎر اﻟﺘﻘﻨﻴﺔ.
أیﻀﺎ ﺗﻢ إﺽ ﺎﻓﺔ ﺵ ﺮط Whereﻟ ـ SelectSQLوﺑﺈﻣﻜﺎﻥﻨ ﺎ وﺽ ﻊ اﻟﺸ ﺮط اﻟ ﺬي یﻨﺎﺳ ﺒﻨﺎ ..وﻓ ﻲ درﺳ ﻨﺎ اﻟﺤ ﺎﻟﻲ آ ﺎن اﻟﺸ ﺮط :
id="&idأي :ﻋﻨﺪﻣﺎ ﺗﻜﻮن ﻗﻴﻤﺔ idﻓﻲ اﻟﺠﺪول اﻟﻤﻄﻠﻮب ﻓﻲ اﻟﻘﺎﻋﺪة ﺗﺴﺎوي ﻗﻴﻤﺔ اﻟﻤﺘﻐﻴﺮ idﻓﻲ هﺬﻩ اﻟﺼﻔﺤﺔ
ﻋﻨﺪ اﻟﻀﻐﻂ ﻋﻠﻰ اﻻرﺗﺒﺎط اﻟﺘﺸﻌﺒﻲ )دﻟﻔﻲ ٧ﺗﺪﻋﻢ ﺗﻘﻨﻴﺔ (Microsoft.NETﺳﻮف ﺗﻈﻬﺮ ﻟﻨﺎ اﻟﺼﻔﺤﺔ اﻟﺘﺎﻟﻴﺔ
-١اﻓﺘﺢ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت وﺻﻤﻢ ﺟﺪوﻻ ﺑﺎﺳﻢ general_newsﺑﻨﻔﺲ ﻣﻮاﺻﻔﺎت ﺟﺪول . tech_news
ﻣﻊ ﻣﻼﺡﻈﺔ أن اﻟﺤﻘﻞ bodyآﺎن ﻥﻮع اﻟﺒﻴﺎﻥﺎت ) ﻥ ﺺ( أي أن أﻗﺼ ﻰ ﺡ ﺪ ﻟﺤﺠ ﻢ ﻟﻸﺡ ﺮف ٢٥٥ﺡ ﺮف اذا ﺳ ﻮف
ﻥﻐﻴﺮ ﻥﻮع اﻟﺒﻴﺎﻥﺎت ﻟﺘﻜﻮن ) ﻡﺬآﺮة ( ﻟﺘﺴﺘﻮﻋﺐ ﻋﺪد أآﺒﺮ ﻣﻦ اﻷﺡﺮف
ﻡﻼﺣﻈﺔ :ﺑﺈﻣﻜﺎﻥﻚ ﺑﺪﻻ ﻣﻦ ﺗﺼﻤﻴﻢ اﻟﺠﺪول ﻣﻦ ﺟﺪیﺪ .ﻥﺴﺦ اﻟﺠﺪول اﻟﺤﺎﻟﻲ ،وذﻟﻚ ﺑﻌﻤﻞ اﻟﺨﻄﻮات اﻟﺘﺎﻟﻴﺔ.
ﺗﻈﻠﻴﻞ اﻟﺠﺪول.
ﺽﻊ ﻣﺆﺵﺮ اﻟﻔﺄرة ﻋﻠﻰ اﺳﻢ اﻟﺠﺪول واﺽﻐﻂ ﺑﺰر اﻟﻔﺄرة اﻷیﻤﻦ.
اﺥﺘﻴﺎر )ﻥﺴﺦ( ﻣﻦ اﻟﻘﺎﺉﻤﺔ اﻟﺘﻲ ﺳﺘﻈﻬﺮ.
ﻓﻲ اﻟﻤﺴﺎﺡﺔ اﻟﺒﻴﻀﺎء اﻟﻔﺎرﻏﺔ اﺽﻐﻂ ﻣﺮة أﺥﺮى زر اﻟﻔﺄرة اﻷیﻤﻦ واﺥﺘﺮ ﻣﻨﻪ )ﻟﺼﻖ(.
ﺳ ﻴﻈﻬﺮ ﻟ ﻚ ﺻ ﻨﺪوق ﺡ ﻮار یﺴ ﺄﻟﻚ ﻓﻴ ﻪ ﻋ ﻦ اﺳ ﻢ اﻟﺠ ﺪول ،ﻓﺎآﺘ ﺐ ﻓ ﻲ اﻟﺨﺎﻥ ﺔ اﻟﺒﻴﻀ ﺎء اﻟﻤﺨﺼﺼ ﺔ ﻻﺳ ﻢ اﻟﺠ ﺪول
.general_newsوﺗﺤﺖ ه ﺬﻩ اﻟﺨﺎﻥ ﺔ اﻟﺒﻴﻀ ﺎء ﺳ ﺘﺠﺪ ﺙﻼﺙ ﺔ ﺥﻴ ﺎرات ه ﻲ :اﻟﺒﻨﻴ ﺔ ﻓﻘ ﻂ واﻟﺒﻨﻴ ﺔ واﻟﺒﻴﺎﻥ ﺎت واﻟﺤ ﺎق
اﻟﺒﻴﺎﻥﺎت ﺑﺎﻟﺠﺪول اﻟﻤﻮﺟﻮد اﺥﺘﺮ اﻟﺨﻴﺎر اﻷول اﻟﺒﻨﻴﺔ ﻓﻘﻂ.
واﺽﻐﻂ ﻋﻠﻰ ﻣﻮاﻓﻖ.
وﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺮاﺑﻂ ) اﻟﺒﺮادﻋﻲ یﻌﺘﺒﺮ ﺗﻌﻠﻴﻖ ﻃﻬﺮان ﻟﻠﺘﺨﺼﻴﺐ ﻏﻴﺮ آﺎﻣﻞ ( ﺳﻮف ﺗﻈﻬﺮ اﻟﻨﺘﻴﺠﺔ اﻟﺘﺎﻟﻴﺔ ﻋﻠﻰ
ﺙﻼث ﺻﻔﺤﺎت ﻟﻴﺪل ﻋﻠﻰ آﺒﺮ اﻟﻤﻘﺎل
اﻟﺼﻔﺤﺔ اﻷوﻟﻰ
اﻟﺼﻔﺤﺔ اﻟﺜﺎﻥﻴﺔ
اﻟﺼﻔﺤﺔ اﻟﺜﺎﻟﺜﺔ
<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="pageheader.asp" -->
ﻓﻲ ﺥﺎﻥﺔ اﻹﺟﺮاء اآﺘﺐ اﺳﻢ اﻟﺼﻔﺤﺔ اﻟﺘﻲ ﺳﺘﺮﺳﻞ إﻟﻴﻬﺎ اﻟﻘﻴﻤﺔ اﻟﻤﺪﺥﻠﺔ ﻓﻲ هﺬا اﻟـ Form .ﻓﻲ ﻣﺜﺎﻟﻨﺎ هﺬا ،اﺳﺘﺨﺪﻣﻨﺎ
)ﻣﺮﺑﻊ ﻥﺺ ( Textboxآﻨﻮع ﻣ ﻦ أﻥ ﻮاع اﻟ ـ Formوﺳﻨﺮﺳ ﻞ اﻟﻘ ﻴﻢ إﻟ ﻰ ﺻ ﻔﺤﺔ ﺑﻌﻨ ﻮان search_result.asp
ﺳﻴﺘﻢ ﻓﻴﻬﺎ اﻟﺒﺤﺚ ﻋﻦ هﺬﻩ اﻟﻘﻴﻢ وﻋﺮض اﻟﻨﺘﺎﺉﺞ .وهﺬﻩ هﻲ اﻟﺼﻔﺤﺔ اﻟﺘﻲ ﺳﻨﻘﻮم ﺑﺘﺼﻤﻴﻤﻬﺎ ﻓﻴﻤﺎ ﺑﻌﺪ.
اﻟﻔﺮق ﺑﻴﻦ GETوPOST :
أﻣﺎ ﻓﻲ ﺥﺎﻥﺔ ) Methodاﻟﻄﺮیﻘﺔ ( ﻓﻘﻢ ﺑﺘﻐﻴﻴﺮ اﻻﺥﺘﻴﺎر Postواﺟﻌﻠﻪ Get.اﻻﺥﺘﻼف ﺑﻴﻨﻬﻤﺎ ﺑﺒﺴﺎﻃﺔ هﻮ:
Post :ﺳﻴﺨﻔﻲ اﻟﻘﻴﻢ اﻟﻤﺮﺳﻠﺔ.أي إن آﻨﺖ ﺗﻮد إرﺳﺎل ﻗﻴﻢ ﺳﺮیﺔ ﻣﻦ ﺻﻔﺤﺔ ﻷﺥﺮ )آﻜﻠﻤﺔ اﻟﻤﺮور ﻣﺜﻼ )ﻓﺒﺈﻣﻜﺎﻥﻚ
اﺥﺘﻴﺎر Post.
Get :ﺳ ﺘﻈﻬﺮ اﻟﻘﻴﻤ ﺔ اﻟﻤﺮﺳ ﻠﺔ ﻟﻠﺼ ﻔﺤﺔ اﻟﺜﺎﻥﻴ ﺔ) (search_result.asﻓ ﻲ ﺵ ﺮیﻂ اﻟﻌﻨ ﻮان .وه ﺬا ﻣﻔﻴ ﺪ ﻓ ﻲ ﺡﺎﻟ ﺔ
اﻟﺒﺤﺚ ،ﺡﻴﺚ ﺳﻴﺸﺎهﺪ اﻟﺒﺎﺡﺚ اﻟﻜﻠﻤﺔ اﻟﺘﻲ ﺑﺤﺚ ﻋﻨﻬﺎ ﻓﻲ ﺵﺮیﻂ اﻟﻌﻨﻮان ﻓﺴﻴﺘﺄآﺪ إن آﺎن ﻗ ﺪ آﺘﺒﻬ ﺎ ﺑﺸ ﻜﻞ ﺻ ﺤﻴﺢ أم
ﻻ.
اﺽﻐﻂ زر ﻣﻮاﻓﻖ وﻣﺮة أﺥﺮى ﻣﻮاﻓﻖ.
ﻣﺮة أﺥﺮى اﺽﻐﻂ ﺑﺰر اﻟﻔﺄرة اﻷیﻤﻦ ﻋﻠﻰ ﻣﺮﺑﻊ اﻟﻨﺺ .واﺥﺘﺮ هﺬﻩ اﻟﻤﺮة )ﺥﺼﺎﺉﺺ ﺡﻘﻞ اﻟﻨﻤﻮذج( ﻓﺴﺘﻈﻬﺮ ﻟﻚ
اﻟﺸﺎﺵﺔ اﻟﺘﺎﻟﻴﺔ:
ﻓﻲ ﺥﺎﻥﺔ )اﻻﺳﻢ( اآﺘﺐ اﺳﻢ اﻟﺤﻘﻞ وﻟﻴﻜﻦ ) .(keywordﺙﻢ اﺽﻐﻂ ﻣﻮاﻓﻖ.
اﺽﻐﻂ ﺑﺰر اﻟﻔﺄرة اﻷیﻤﻦ ﻋﻠﻰ زر )ارﺳﺎل( .واﺥﺘﺮ هﺬﻩ اﻟﻤﺮة )ﺥﺼﺎﺉﺺ ﺡﻘﻞ اﻟﻨﻤﻮذج( ﻓﺴﺘﻈﻬﺮ ﻟﻚ اﻟﺸﺎﺵﺔ
اﻟﺘﺎﻟﻴﺔ:
اآﺘﺐ ﻓﻲ ﺥﺎﻥﺔ اﻟﻘﻴﻤﺔ/اﻟﺘﺴﻤﻴﺔ اﻟﻜﻠﻤﺔ اﻟﺘﻲ ﺗﻮد أن ﺗﻈﻬﺮ ﺑﺪﻻ ﻣﻦ ارﺳﺎل .ﻓﻲ ﻣﺜﺎﻟﻨﺎ هﺬا .ﺳﻨﻜﺘﺐ :اﺑﺤﺚ.
اﺽﻐﻂ ﺑﺰر اﻟﻔﺄرة اﻷیﻤﻦ ﻋﻠﻰ زر )إﻋﺎدة ﺗﻌﻴﻴﻦ( .واﺥﺘﺮ هﺬﻩ اﻟﻤﺮة )ﺥﺼﺎﺉﺺ ﺡﻘﻞ اﻟﻨﻤﻮذج( ﻓﺴﺘﻈﻬﺮ ﻟﻚ
اﻟﺸﺎﺵﺔ اﻟﺘﺎﻟﻴﺔ:
<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" -->
وﻋﻨﺪ اﻟﻀﻐﻂ ﻋﻠﻰ راﺑﻂ )ﺑﺤﺚ( ﺳﻮف ﺗﻈﻬﺮ ﻟﻨﺎ ﺻﻔﺤﺔ اﻟﺒﺤﺚ آﺎﻟﺘﺎﻟﻲ
واﻵن ﺳﻨﻘﻮم ﺑﺎﻟﺒﺤﺚ ﻋﻦ اﻟﻜﻠﻤﺔ ﻓﻲ اﻟﺠﺪول وﻟﻴﻜﻦ ) (tech_newsﺑﻌﺪ اﺳﺘﻘﺒﺎﻟﻬﺎ ﻣﻦ ﺻﻔﺤﺔ اﻟﺒﺤﺚ ﺑﺎﺳﺘﺨﺪام أﻣﺮSelect:
" 'SelectTechSQL="select * from tech_news where subject like '%"&keyword&"%' or body like '%"&keyword&"%
)set rsTech=connectionToDatabase.execute(SelectTechSQL
اﻟﻤﻼﺡﻆ ﻓﻲ أﻣﺮ Selectهﻨﺎ أﻥﻨﺎ أﺽﻔﻨﺎ آﻠﻤ ﺔ . Likeآﻠﻤ ﺔ Likeﺗﻐﻨ ﻲ ﻋ ﻦ ﻋﻼﻣ ﺔ ) = ( .ویﻤﻜ ﻦ أن ﺗﻌﺒ ﺮ ﻋ ﻦ
ﻣﺴﺎواة آﻠﻴﺔ أو ﺟﺰﺉﻴﺔ .وﻟﺘﻮﺽﻴﺢ ذﻟﻚ ،ﻟﻨﻔﺘﺮض اﻟﻤﺜﺎل اﻟﺘﺎﻟﻲ :إن ﻗﻤﻨﺎ ﺑﺎﺳﺘﺨﺪام اﻟﻤﺴﺎواة اﻟﻜﻠﻴﺔ وﺑﺤﺜﻨﺎ ﻋﻦ "ﺥﺎﻟ ﺪ"
ﻓﺴ ﺘﻈﻬﺮ ﻟﻨ ﺎ اﻟﻨﺘ ﺎﺉﺞ اﻟﺘ ﻲ ﺗﺤﺘ ﻮي ﻋﻠ ﻰ آﻠﻤ ﺔ "ﺥﺎﻟ ﺪ" .أﻣ ﺎ إن اﺳ ﺘﺨﺪﻣﺎ اﻟﻤﺴ ﺎواة اﻟﺠﺰﺉﻴ ﺔ ﻓﺴ ﺘﻈﻬﺮ ﻟﻨ ﺎ اﻟﻨﺘ ﺎﺉﺞ اﻟﺘ ﻲ
ﺗﺤﺘﻮي ﻋﻠﻰ :ﺥﺎﻟﺪ ،ﺥﺎﻟﺪا ،اﻟﺨﺎﻟﺪ ،اﻟﺨﺎﻟﺪون ،ﺥﺎﻟﺪون ..اﻟﺦ
ﻟﻠﺘﻌﺒﻴﺮ ﻋﻦ اﻟﻤﺴﺎواة اﻟﻜﻠﻴﺔ ﻥﻜﺘﺐ Likeوﺑﻌﺪهﺎ اﺳﻢ اﻟﻤﺘﻐﻴﺮ ..ﻓﻲ ﻣﺜﺎﻟﻨﺎ هﻮ Keywordﻓﻨﻜﺘﺒﻪ ﺑﺎﻟﺼﻴﻐﺔ اﻟﺘﺎﻟﻴﺔ:
"&"&keyword
ﻟﻠﺘﻌﺒﻴﺮ ﻋﻦ اﻟﻤﺴﺎواة اﻟﺠﺰﺉﻴﺔ ﻥﻜﺘﺐ 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
>"><p><b><a href="body.asp?field=tech_news&id=<%=rsTech("id")%
><%response.write rsTech("subject")%></a></b></p
<% rsTech.movenext
>loop %
اﻟﻨﺘﻴﺠﺔ هﻲ
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>
اﻟﺼﻔﺤﺔ اﻷوﻟﻰ
اﻟﺼﻔﺤﺔ اﻟﺜﺎﻥﻴﺔ
اﻟﻨﺘﻴﺠﺔ هﻲ
ﻻﺡﻆ ﻋﻨﺪ آﺘﺎﺑﺔ اﺳﻢ اﻟﻤﻮﻗﻊ ﻻﺑﺪ ﻣﻦ آﺘﺎﺑﺔ اﻟﺒﺮوﺗﻮآﻮل http://www.damaran.comﺡﺘﻰیﺘﻤﻜﻦ اﻟﻤﺴﺘﻌﺮض
ﻣﻦ اﻻﻥﺘﻘﺎل اﻟﻰ اﻟﻤﻮﻗﻊ اﻟﻤﻄﻠﻮب – واذا ﻟﻢ یﺘﻢ آﺘﺎﺑﺔ اﻟﺒﺮوﺗﻮآﻮل ﻓﺴﻴﺤﺪث ﺥﻄﺄ ﻻن اﻟﻤﺴﺘﻌﺮض ﺳﻮف یﺘﻌﺎﻣﻞ
ﻣﻌﻪ ﻋﻠﻰ ان هﺬا اﻟﺮاﺑﻂ داﺥﻞ ﻥﻔﺲ اﻟﻤﻮﻗﻊ
اﻵن ،ﺳﻨﺴ ﺘﺨﺪم اﻟﻤﻬ ﺎرات اﻟﺘ ﻲ ﺗﻌﻠﻤﻨﺎه ﺎ ﺳ ﺎﺑﻘﺎ ،ﻟ ﺮﺑﻂ اﻟﺼ ﻔﺤﺔ guest.aspﺑﻘﺎﻋ ﺪة اﻟﺒﻴﺎﻥ ﺎت ،واﺳ ﺘﺨﺪام اﻷﻣ ﺮ Select
ﻻﺥﺘﻴﺎر اﻟﻤﻌﻠﻮﻣﺎت ﻣﻦ اﻟﻘﺎﻋﺪة ،واﻷﻣﺮ Response.Writeﻟﻄﺒﺎﻋﺔ )ﻋﺮض( اﻟﻤﻌﻠﻮﻣﺎت ﻓﻲ اﻟﺸﺎﺵﺔ .ﻋﻦ ﻃﺮیﻖ اﻟﺠﺪول
اﻓﺘﺢ ﺻﻔﺤﺔ tech.aspوﻗﻢ ﺑﺤﻔﻈﻬﺎ ﺑﺎﺳﻢ guest.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>
اﻟﺼﻔﺤﺔ اﻷوﻟﻰ
اﻟﺼﻔﺤﺔ اﻟﺜﺎﻥﻴﺔ
اﻟﻤﻄﻠﻮب اﻵن ﺟﻌﻞ اﻟﺒﺮیﺪ اﻻﻟﻜﺘﺮوﻥﻲ ذو راﺑﻂ ﺑﺤﻴﺚ ﻋﻦ اﻟﻀﻐﻂ ﻋﻠﻴﻪ یﻨﺘﻘﻞ اﻟﻤﺴﺘﻌﺮض اﻟﻰ ﺑﺮﻥﺎﻣﺞ اﻟﺒﺮیﺪ
اﻻﻟﻜﺘﺮوﻥﻲ اﻟﻤﺜﺒﺖ ﻟﺪى اﻟﻤﺴﺘﺨﺪم
وآﺬﻟﻚ اﻟﻤﺮاد اﻵن ﺟﻌﻞ اﻟﻤﻮﻗﻊ اﻟﺸﺨﺼﻲ ذو ارﺗﺒﺎط ﺗﺸﻌﺒﻲ ﺑﺤﻴﺚ ﻋﻨﺪ اﻟﻀﻐﻂ ﻋﻠﻴﻪ یﻨﺘﻘﻞ اﻟﻤﺴﺘﻌﺮض إﻟﻰ اﻟﻤﻮﻗﻊ
اﻟﻤﺴﺠﻞ
ﻟﺬﻟﻚ ﺳﻮف ﻥﻘﻮم ﺑﺒﻌﺾ اﻟﺘﻐﻴﺮات اﻵﺗﻴﺔ:
اﻟﻜﻮد اﻟﺘﺎﻟﻰ هﻮ ﻣﺎ ﺗﻢ ﺗﻐﻴﻴﺮﻩ ﻓﻘﻂ ) ﻓﻰ ﺥﻠﻴﺔ اﻟﺒﺮیﺪ اﻻﻟﻜﺘﺮوﻥﻲ وﺥﻠﻴﺔ اﻟﻤﻮﻗﻊ اﻟﺸﺨﺼﻲ (
><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
ﻋﻨﺪ اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺒﺮیﺪ اﻻﻟﻜﺘﺮوﻥﻲ ﻷﺡﺪ اﻟﺰوار وﻟﻴﻜﻦ is_damaran@yahoo.comﺳﻮف یﺘﻢ اﻻﻥﺘﻘﺎل ﺗﻠﻘﺎﺉﻴ ًﺎ
إﻟﻰ ﺑﺮﻥﺎﻣﺞ اﻟﺒﺮیﺪ اﻻﻟﻜﺘﺮوﻥﻲ اﻟﻤﺜﺒﺖ ﻟﺪى اﻟﻤﺴﺘﺨﺪم وﻟﻴﻜﻦ Outlook Express 6
اﻵن ﺳﻮف ﻥﻘﻮم ﺑﺈﺽﺎﻓﺔ راﺑﻂ ﻟﺘﻤﻜﻴﻦ اﻟﺰاﺉﺮ ﻣﻦ إﺽﺎﻓﺔ ﺗﻮﻗﻴﻌﻴﺔ ﻋﻠﻰ اﻟﻤﻮﻗﻊ ) وذﻟﻚ ﺑﺎﻟﺮﺑﻂ ﺑﺼﻔﺤﺔ إﺽﺎﻓﺔ ﺗﻮﻗﻴﻊ
( ﻻﺡﻆ ﻓﻲ ﻣﻮﺽﻌﻴﻦ ﻣﺨﺘﻠﻔﻴﻦ اﻷول ﺑﻌﺪ اﻟﺠﻤﻠﺔ اﻟﺘﺮﺡﻴﺒﻴﺔ واﻟﺜﺎﻥﻴﺔ ﺑﻌﺪ اﻹﻥﺘﻬﺎء ﻣﻦ ﻋﺮض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>
اﻟﺼﻔﺤﺔ اﻷوﻟﻰ
اﻟﺼﻔﺤﺔ اﻟﺜﺎﻥﻴﺔ
وإﻟﻴﻚ اﻟـ Codeﻟﻬﺬﻩ اﻟﺼﻔﺤﺔ ﻣﻊ ﻣﻼﺡﻈﺔ أن اﻟﻨﻤﻮذج ﺑﺪاﺥﻞ ﺟﺪول ﻟﻠﺘﻨﺴﻴﻖ ﻓﻘﻂ )) اﻥﻈﺮ اﻟﺼﻔﺤﺔ اﻟﺘﺎﻟﻲ ((
اﻟﺼﻔﺤﺔ اﻷوﻟﻰ
اﻟﺼﻔﺤﺔ اﻟﺜﺎﻥﻴﺔ
اآﺘﺐ اﺳﻢ اﻟﺼﻔﺤﺔ اﻟﺘﻲ ﺗﻮد إرﺳﺎل هﺬﻩ اﻟﻤﺪﺥﻼت إﻟﻴﻬﺎ ﻓﻲ ﺥﺎﻥﺔ ) Actionاآﺘﺐ هﺬا اﻻﺳﻢ (add_to_book.asp
واﺗﺮك اﻟﺤﻘﻞ )اﻟﻄﺮیﻘﺔ( آﻤﺎ هﻮ )ﻻ ﺗﻐﻴﺮ آﻠﻤﺔ .( POST
اﻷن ﺱﻨﺼ ﻤﻢ ﺹ ﻔﺤﺔ إﺽ ﺎﻓﺔ ه ﺬﻩ اﻟﻤ ﺪﺧﻼت إﻟ ﻰ ﻗﺎﻋ ﺪة اﻟﺒﻴﺎﻥ ﺎت ) ﻓ ﻲ اﻟﺠ ﺪول
(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"
connectionToDatabase.Close
set connectionToDatabase=nothing
%>
<!--#include file="pagefooter.asp" -->
</body></html>
اﻟﺪاﻟﺔ اﻟﻤﻌﻨﻰ
)(Now اﻟﻮﻗﺖ واﻟﺘﺎریﺦ اﻟﺤﺎﻟﻴﻴﻦ
)(Date اﻟﺘﺎریﺦ اﻟﺤﺎﻟﻲ
)(Year اﻟﺴﻨﺔ اﻟﺤﺎﻟﻴﺔ
)(Time اﻟﻮﻗﺖ اﻟﺤﺎﻟﻲ
)(Hour اﻟﺴﺎﻋﺔ اﻟﺤﺎﻟﻴﺔ
ﺑﻌﺪ ﺗﺤﺪیﺪ اﻟﻤﺘﻐﻴﺮات ﺗﻢ آﺘﺎﺑﺔ ﺟﻤﻠﺔ ﺗﺒﺪأ ﺑـ if .وهﺬﻩ ﺟﻤﻠﺔ ﺵﺮﻃﻴﺔ .ﺻﻴﻐﺘﻬﺎ:
ﺡﻴﺚ أن آﻠﻤﺔ 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وﻥﺮى آﻴﻒ ﺗﻢ اﺳﺘﺨﺪام اﻟﺪاﻟﺔ اﻟﺸﺮﻃﻴﺔ.
ﻓﻲ اﻟﺴﻄﺮ اﻟﺴﺎﺑﻖ ﺗﻢ ﺗﺤﺪیﺪ اﻟﺸﺮط ،وهﻮ :إن آﺎﻥﺖ Nameأو Commentﻻ ﺗﺴﺎوي ﺵﻴﺌﺎ )أي ﺡﻘﻮل ﻓﺎرﻏﺔ( ﻗ ﻢ
ﺑﺎﻟﺘﺎﻟﻲ...
ﻣﻦ اﻟﺴﻄﺮ اﻟﺴﺎﺑﻖ ﻥﻔﻬﻢ أﻣﺮان هﻤﺎ:
ﻋﻼﻣﺘﺎ "" اﻟﻤﺘﻼﺻﻘﺘﺎن ﺗﻌﻨﻴﺎن :ﻻ ﺵﻲء ..أو :ﻓﺮاغ.
یﻤﻜﻦ اﺳﺘﺨﺪام اﻷواﻣﺮ اﻟﻤﻨﻄﻘﻴﺔ Orو Andﻓﻲ اﻟﺪوال اﻟﺸﺮﻃﻴﺔ ﻟﺪﻣﺞ أآﺜﺮ ﻣﻦ ﺵﺮط ﻓﻲ ﺳﻄﺮ واﺡﺪ.
أﻣﺎ اﻹﺟﺮاء اﻟﻮاﺟﺐ اﻟﻘﻴﺎم ﺑﻪ ﻓﻲ ﺡﺎﻟﺔ ﺗﻨﻔﻴﺬ اﻟﺸﺮط ﻓﻬﻮ اﻵﺗﻲ:
اﻟﻤﻄﻠﻮﺑ ﺔ ..ﻣ ﻦ ﻓﻀ ﻠﻚ اﺽ ﻐﻂ زر ﻋ ﻮدة ﻓ ﻲ ﻟﻢ ﺗﻘﻢ ﺑﺈدﺥﺎل ﺟﻤﻴﻊ اﻟﺤﻘﻮل" & ">response.write "<center
"ﻣﺘﺼﻔﺤﺘﻚ وﻗﻢ ﺑﺈدﺥﺎل ﺟﻤﻴﻊ اﻟﺤﻘﻮل
أي :اﻃﺒﻊ اﻟﺠﻤﻠﺔ اﻟﺘﺎﻟﻴﺔ) :ﻟﻢ ﺗﻘﻢ ﺑﺈدﺥﺎل ﺟﻤﻴﻊ اﻟﺤﻘﻮل اﻟﻤﻄﻠﻮﺑﺔ ..ﻣ ﻦ ﻓﻀ ﻠﻚ اﺽ ﻐﻂ زر ﻋ ﻮدة ﻓ ﻲ ﻣﺘﺼ ﻔﺤﻚ وﻗ ﻢ
ﺑﺈدﺥﺎل ﺟﻤﻴﻊ اﻟﺤﻘﻮل(.
اﻷﻣﺮ اﻟﺠﺪیﺪ ﻓﻲ response.writeهﺬﻩ اﻟﻤﺮة هﻮ أﻥﻨﺎ ﻗﻤﻨﺎ ﺑﻜﺘﺎﺑﺔ أﻣ ﺮ HTMLﺽ ﻤﻦ أواﻣ ﺮ ASPوآﺄﻥ ﻪ واﺡ ﺪ
ﻣﻨﻬﺎ .هﺬا أﻣﺮ هﻮ > <centerأي :ﺗﻮﺳﻴﻂ .واﻟﺬي ﺳﻴﺠﻌﻞ اﻟﺠﻤﻠﺔ ﺗﻈﻬﺮ ﻓ ﻲ ﻣﻨﺘﺼ ﻒ اﻟﺴ ﻄﺮ .ﺗ ﻢ آﺘﺎﺑ ﺔ ه ﺬا اﻷﻣ ﺮ
ﻋﻠﻰ اﻟﻨﺤ ﻮ اﻟﺘ ﺎﻟﻲ :وﺽ ﻌﺖ ﻋﻼﻣ ﺎت اﻟﺘﻨﺼ ﻴﺺ "" ﺙ ﻢ آﺘ ﺐ اﻷﻣ ﺮ ﺑ ﺪاﺥﻠﻬﺎ ﺙ ﻢ وﺽ ﻌﺖ ﻋﻼﻣ ﺔ )و( & وﺗ ﻢ آﺘﺎﺑ ﺔ
اﻟﺠﻤﻠﺔ اﻟﺘﻲ ﻥﺮیﺪ ﻃﺒﺎﻋﺘﻬﺎ.
هﺬا هﻮ اﻟﺸﺮط .أﻣﺎ اﻹﺟﺮاء اﻟﺒﺪیﻞ ﻓﻲ ﺡﺎﻟﺔ ﻋﺪم ﺗﺤﻘﻖ اﻟﺸﺮﻃﺔ )أي ﻓﻲ ﺡﺎﻟﺔ وﺟﻮد ﺑﻴﺎﻥﺎت ﻓﻲ هﺬﻩ اﻟﺨﺎﻥﺎت( ﻓﻬﻮ:
وﻓ ﻲ ه ﺬا اﻟﺴ ﻄﺮ أﻣ ﺮ ﺟﺪی ﺪ ،ه ﻮ insertووﻇﻴﻔﺘ ﻪ :إﺽ ﺎﻓﺔ اﻟﻤ ﺪﺥﻼت ﻟﻘﺎﻋ ﺪة اﻟﺒﻴﺎﻥ ﺎت .وﺻ ﻴﻐﺘﻪ آﻤ ﺎ ه ﻮ واﺽ ﺢ
ﺑﺎﻷﻋﻠﻰ .یﻜﺘﺐ اﻷﻣﺮ insertﻣﺘﺒﻮﻋﺔ ﺑﺎﻟﻜﻠﻤﺔ intoﺙﻢ اﺳﻢ اﻟﺠﺪول اﻟﻤﺮاد إﺽﺎﻓﺔ اﻟﺒﻴﺎﻥﺎت إﻟﻴﻪ .وﺑ ﻴﻦ ﻗﻮﺳ ﻴﻦ ﺗﻜﺘ ﺐ
أﺳ ﻤﺎء اﻟﺨﺎﻥ ﺎت ﻓ ﻲ اﻟﺠ ﺪول اﻟﻤﻄﻠ ﻮب إﺽ ﺎﻓﺔ اﻟﻤ ﺪﺥﻼت إﻟﻴﻬ ﺎ .ﺙ ﻢ ﺗﻜﺘ ﺐ valuesوﺑﻌ ﺪهﺎ ﺑ ﻴﻦ ﻗﻮﺳ ﻴﻦ أیﻀ ﺎ اﻟﻘ ﻴﻢ
اﻟﻤﺮاد إﺽﺎﻓﺘﻬﺎ وهﻲ ﺑﻨﻔﺲ ﺗﺮﺗﻴﺐ اﻟﺤﻘﻮل.
ﺗﻜﺘﺐ اﻟﻘﻴﻢ هﻜﺬا'"&add_dat&"' :
ﺑﻌﺪ ﺳﻄﺮ insertیﺘﻢ آﺘﺎﺑﺔ ﺳﻄﺮ ﺗﻨﻔﻴﺬ اﻷﻣﺮ وهﻮ :
)Set MyRs=connectionToDatabase.Execute(addSQL
اﻻﺳﻢ addSQLﻥﺤﻦ ﻣﻦ ﻗﺎم ﺑﺘﺤﺪیﺪﻩ ،ویﻤﻜﻨﻨﺎ ﺗﻐﻴﻴﺮﻩ آﻴﻔﻤﺎ ﻥﺸﺎء.
ﻻزﻟﻨﺎ ﻓﻲ اﻟﺠﻤﻠﺔ اﻟﺸﺮﻃﻴﺔ ،ﺡﻴﺚ ﺗﻢ ﺗﺤﺪیﺪ ﻓﻌﻞ أو إﺟﺮاء إﺽﺎﻓﻲ هﻮ:
"response.redirect "guest.asp
وهﺬﻩ اﻟﺠﻤﻠﺔ ﺗﻌﻨﻲ :اﻥﺘﻘﻞ ﻟﻠﺼﻔﺤﺔ أو اﻟﻌﻨﻮان اﻟﻤﻮﺟﻮد ﺑﻴﻦ ﻋﻼﻣﺘﻲ اﻟﺘﻨﺼﻴﺺ .وﻓﻲ ﺡﺎﻟﺘﻨ ﺎ ه ﺬﻩ ﻃﻠﺒﻨ ﺎ ﻣﻨ ﻪ اﻻﻥﺘﻘ ﺎل
إﻟﻰ ﺻﻔﺤﺔ ﻋﺮﺽﺎﻟﺘﻮﻗﻴﻌﺎت.
ﺗﻢ أﻏﻠﻨﺎ اﻟﺸﺮط ﺑـ End if
ﻋﻨﺪ اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺮاﺑﻂ )ﻹﺽﺎﻓﺔ ﻣﻼﺡﻈﺎﺗﻚ ﻋﺰیﺰي اﻟﺰاﺉﺮ اﺽﻐﻂ هﻨﺎ(
ﻋﻨﺪ اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﻤﻔﺘﺎح )أﺽﻒ اﻟﺘﻮﻗﻴﻊ( وﻟﻜﻦ ﻻﺡﻆ ﻟﻢ یﺘﻢ إﺽﺎﻓﺔ أي ﺑﻴﺎﻥﺎت ﻓﻲ اﻟﻨﻤﻮذج – ﻓﻈﻬﺮت اﻟﺼﻔﺤﺔ اﻟﺘﺎﻟﻴﺔ
ﺑﺬﻟﻚ ﻥﻼﺡﻆ أن اﻟﺠﻤﻠﺔ اﻟﺸﺮﻃﺔ ﺗﻌﻤﻞ ﺑﺸﻜﻞ ﺟﻴﺪ ﻓﻲ ﺡﺎﻟﺔ ﻋﺪم آﺘﺎﺑﺔ أﺡﺪ اﻟﺤﻘﻠﻴﻦ اﻟﻤﻄﻠﻮﺑﻴﻦ ﺗﻌﺒﺌﺘﻬﻤﺎ وهﻤﺎ ) اﻻﺳﻢ
،اﻟﺘﻌﻠﻴﻖ(
ﺙﻢ اﻟﻀﻐﻂ ﻋﻠﻰ ﻣﻔﺘﺎح )أﺽﻒ اﻟﺘﻌﻠﻴﻖ( ﺗﻜﻮن اﻟﻨﺘﻴﺠﺔ هﻲ اﻟﺬهﺎب إﻟﻰ ﺻﻔﺤﺔ )ﻋﺮض اﻟﺘﻮﻗﻴﻌﺎت(
اﻵن ﺳﻮف ﻥﺴﺘﺤﺪث ﻋﻦ ﺑﻌﺾ رﺳﺎﺉﻞ اﻟﺨﻄﺄ اﻟﺘﻲ ﻗﺪ ﺗﻈﻬﺮ ﻟﻚ ﺑﻌﺪ ﺗﻌﺒﺌﺔ اﻟﺤﻘﻠﻴﻦ اﻟﻤﻄﻠﻮﺑﻴﻦ ﻓﻲ ﺻﻔﺤﺔ إﺽﺎﻓﺔ
ﺗﻮﻗﻴﻊ ﺟﺪیﺪ ﺙﻢ اﻟﻀﻐﻂ ﻋﻠﻰ ﻣﻔﺘﺎح )أﺽﻒ اﻟﺘﻮﻗﻴﻊ(
رﺱﺎﻟﺔ اﻟﺨﻄﺄ اﻷوﻟﻰ:
اﻟﺤﻞ ﻟﺘﻼﻓﻲ هﺬﻩ اﻟﺮﺳﺎﻟﺔ هﻮ اﻟﺘﺄآﺪ ﻣﻦ اﻟﺼﻼﺡﻴﺎت ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﻤﺴﺘﺨﺪﻣﻴﻦ أي یﺠﺐ إﻋﻄﺎء اﻟﺼﻼﺡﻴﺔ ﻟﻠﻜﺘﺎﺑﺔ وهﻲ
آﺎﻟﺘﺎﻟﻲ:
اﻟﺮﺳﺎﻟﺔ ﺗﺨﺒﺮك أﻥﻪ ﻻ یﺴﺘﻄﻴﻊ ﻋﻤﻞ ﺗﺤﺪیﺚ ﻟﻘﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت أو أن اﻟﻜﺎﺉﻦ ﻟﻠﻘﺮاءة ﻓﻘﻂ
اﻟﺤﻞ ﻟﺬﻟﻚ یﺠﺐ اﻟﺘﺄآﺪ ﻣﻦ أن ﻣﻠﻒ وﻣﺠﻠﺪ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت ﻟﻴﺲ ﻣﺤﻤﻲ ﺽﺪ اﻟﻜﺘﺎﺑﺔ
وﻟﻜﻦ ﻗﺒﻞ ﺵﺮح اﻟﻄﺮیﻘﺔ اﻟﺜﺎﻥﻴﺔ ﺳﻮف ﻥﻘﻮم ﺑﺸﺮح ﻣﺜﺎل ﺗﻮﺽﻴﺤﻲ
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>
ﺵﺮح اﻟﻄﺮیﻘﺔ
)"Set DataConn=Server.CreateObject("ADODB.Connection
)"Set CmaAddRecord=Server.CreateObject("ADODB.Recordset
"DataConn.Open "DSN=Sys_DSN_Name_Test
ﻓﺘﺢ اﻟﻜﺎﺉﻦ Recordsetویﺸﺮ إﻟﻰ اﻟﺠﺪول اﻟﻤﺮاد وﺽﻊ اﻟﺒﻴﺎﻥﺎت MYSQLﺙﻢ یﺸﻴﺮاﻟﻰ اﺗﺼﺎل اﻟﺒﻴﺎﻥﺎت
DataConnﺙﻢ یﺸﻴﺮ اﻟﻰ ﻥﻮع اﻟﻤﺆﺵﺮ ) (1ﺙﻢ یﺸﻴﺮ إﻟﻰ ﻥﻮع اﻟﺘﺄﻣﻴﻦ ) (3وﺑﻜﻮن اﻟﻔﺎﺻﻞ ﺑﻴﻦ آﻞ هﺬﻩ اﻷﺵﻴﺎء
ﻓﺎﺻﻠﺔ ) ( ,
CmaAddRecord.AddNew
اﻹﻋﻼن ﻋﻦ إﺽﺎﻓﺔ ﺳﺠﻞ ﺟﺪیﺪ
CmaAddRecord.Fields("name") = NAME
CmaAddRecord.Fields("message") = MESSAGE
إﺽﺎﻓﺔ اﻟﻘﻴﻢ اﻟﺠﺪیﺪة ﻓﻲ ﺡﻘﻮل اﻟﺴﺠﻞ اﻟﺠﺪیﺪ
CmaAddRecord.Update
اﻹﻋﻼن ﻋﻦ ﺗﺤﺪیﺚ اﻟﺒﻴﺎﻥﺎت
CmaAddRecord.Close
Set CmaAddRecord= Nothing
اﻹﻋﻼن ﻋﻦ إﻏﻼق اﻟﻜﺎﺉﻦ Recordset
DataConn.Close
Set DataConn= Nothing
اﻹﻋﻼن ﻋﻦ إﻏﻼق اﻟﻜﺎﺉﻦ Connection
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"
اﻟﺼﻔﺤﺔ اﻷوﻟﻰ
اﻟﺼﻔﺤﺔ اﻟﺜﺎﻥﻴﺔ
ﻡﻠﺤﻮﻇﺔ :ﻓﻲ ﺡﺎﻟﺔ ﺟﻌﻞ اﻟﻤﺘﻐﻴﺮ)( fadd_dat=nowوذﻟﻚ ﻟﻺﻋﻼن ﻋﻦ اﻟﻮﻗﺖ واﻟﺘﺎریﺦ اﻟﺤﺎﻟﻲ ﻓﻲ ﻃﺮیﻘﺔ Insert
ﺗﻈﻬﺮ رﺳﺎﻟﺔ اﻟﺨﻄﺄ اﻟﺘﺎﻟﻴﺔ
* ﻥﻤ ﻮذج إدﺥ ﺎل اﺳ ﻢ اﻟﻤﺴ ﺘﺨﺪم واﻟ ﺮﻗﻢ اﻟﺴ ﺮي ) :(admin.aspیﺤﺘ ﻮي ﻋﻠ ﻰ ﻥﻤ ﻮذج ) (Formﻹدﺥ ﺎل اﺳ ﻢ
اﻟﻤﺴﺘﺨﺪم واﻟﺮﻗﻢ اﻟﺴﺮي .ﺗﻘﻮم هﺬﻩ اﻟﺼﻔﺤﺔ ﺑﻌﺮض رﺳﺎﻟﺔ ﺥﻄﺄ ﻋﻨﺪ ﻋﺪم إدﺥ ﺎل اﺳ ﻢ اﻟﻤﺴ ﺘﺨﺪم أو اﻟ ﺮﻗﻢ اﻟﺴ ﺮي،
أو ﻋﻨﺪ إدﺥﺎل ﻣﻌﻠﻮﻣﺎت ﺥﺎﻃﺌﺔ.
** ﺻﻔﺤﺔ اﻟﺘﺤﻘﻖ ﻣ ﻦ اﻟﻤﻌﻠﻮﻣ ﺎت ) :(validentry.aspﺳ ﺘﻘﻮم ﺑ ﺎﻟﺘﺤﻘﻖ ﻣ ﻦ ﺻ ﺤﺔ إدﺥ ﺎل اﺳ ﻢ اﻟﻤﺴ ﺘﺨﺪم واﻟ ﺮﻗﻢ
اﻟﺴﺮي ،وﻣﻦ ﺗﺴﺠﻴﻠﻬﻤﺎ ﻓﻲ اﻟﻤﻮﻗﻊ.
*** اﻟﺼ ﻔﺤﺔ اﻹداری ﺔ ) :(adminsection.aspه ﻲ اﻟﺼ ﻔﺤﺔ اﻟﺘ ﻲ ﺳﻴﺴ ﻤﺢ ﺑﺎﻟ ﺪﺥﻮل إﻟﻴﻬ ﺎ ﻟﻠﻘﻴ ﺎم ﺑﻤﻬ ﺎم إدارة
اﻟﻤﻮﻗﻊ ،ﺑﻌﺪ إدﺥﺎل اﺳﻢ اﻟﻤﺴﺘﺨﺪم واﻟﺮﻗﻢ ﺳﺮي ﺑﺸﻜﻞ ﺻﺤﻴﺢ .
ﻗﺒﻞ أن ﻥﻘﻮم ﺑﺘﺼﻤﻴﻢ اﻟﺼ ﻔﺤﺎت ..یﺠ ﺐ أن ﻥﻘ ﻮم ﺑﺘﺼ ﻤﻴﻢ ﺟ ﺪول ﺟﺪی ﺪ ﻓ ﻲ ﻗﺎﻋ ﺪة اﻟﺒﻴﺎﻥ ﺎت ..ﺳ ﻴﻜﻮن اﺳ ﻢ اﻟﺠ ﺪول
adminوﺑﻪ ﺙﻼث ﺡﻘﻮل هﻲ
idﻣﻦ اﻟﻨﻮع )ﺗﺮﻗﻴﻢ ﺗﻠﻘﺎﺉﻲ (
nameﻣﻦ اﻟﻨﻮع )ﻥﺺ(
passﻣﻦ اﻟﻨﻮع )ﻥﺺ(
وﻗﻢ ﺑﺈدﺥﺎل أیﺔ ﻗﻴﻢ ﻓﻲ هﺬا اﻟﺠﺪول .أﻋﻨﻲ إدﺥﺎل اﺳﻢ ﻣﺴﺘﺨﺪم وآﻠﻤﺔ ﻣﺮور اﻓﺘﺮاﺽﻴﺘﻴﻦ وﻟﺘﻜﻦ.
ﻡﻼﺣﻈﺎت:
ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﺤﻘﻞ اﻟﺨﺎص ﺑﺎﻟﺮﻗﻢ اﻟﺴﺮي passﺗﻢ ﺗﺤﺪیﺪ ﻓﻴ ﻪ اﺥﺘﻴ ﺎر )ﻥﻌ ﻢ( أﻣ ﺎم ﺡﻘ ﻞ آﻠﻤ ﺔ اﻟﻤ ﺮور ﺡﺘ ﻰ ﺗﻈﻬ ﺮ ﻣﻜ ﺎن
ﺡﺮوف آﻠﻤﺔ اﻟﻤﺮور ﻥﺠﻮم ﺑﺪﻻ ﻣﻦ إﻇﻬﺎرﻩ ﻋﻠﻰ اﻟﺸﺎﺵﺔ
:آﻮد اﻟﻨﻤﻮذج
<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">
<input type="reset" value=" "إﻋﺎدة ﺗﻌﻴﻴﻦname="B2" style="font-weight: bold"></p>
</form>
<!--#include file="pagefooter.asp" -->
</body></html>
أو ﻋﻨ ﺪ إدﺥ ﺎل ﻣﻌﻠﻮﻣ ﺎت،یﻘﻮم ﺑﻌﺮض رﺳﺎﻟﺔ ﺥﻄﺄ ﻋﻨﺪ ﻋﺪم إدﺥﺎل اﺳﻢ اﻟﻤﺴﺘﺨﺪم أو اﻟ ﺮﻗﻢ اﻟﺴ ﺮي: :اﻟﺠﺰء اﻟﺜﺎﻥﻲ
</form> ( ﻣﺒﺎﺵﺮة أي ﺑﻌﺪForm) ﺑﻌﺪ اﻟﻨﻤﻮذجCode ویﺠﺐ آﺘﺎﺑﺔ اﻟـ،ﺥﺎﻃﺌﺔ
، ﻋﻨﺪ وﺟ ﻮد ﺥﻄ ﺄ ﻓ ﻲ إدﺥ ﺎل اﻟﻤﻌﻠﻮﻣ ﺎت ﻓ ﻲ اﻟﻨﻤ ﻮذجvalidentry.asp ﺳﻮف یﺴﺘﻘﺒﻞ هﺬا اﻟﺠﺰء ﻗﻴﻤﺔ ﻣﻦ ﻣﻠﻒ
. اﻟﻘﻴﻤﺔvalidentry.asp ﺳﻨﺮى ﻻﺡﻘﺎ آﻴﻒ ﺳﻴﺮﺳﻞ اﻟﻤﻠﻒ، error وﺳﻮف یﻀﻌﻬﺎ ﻓﻲ
<%
error=Request.querystring("error")
If error <> "" then
End If
%>
،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ﺙ ﻢ ﺳ ﻨﺘﺤﻘﻖ ﻣ ﻦ ﺻ ﺤﺔ إدﺥ ﺎل اﺳ ﻢ اﻟﻤﺴ ﺘﺨﺪم واﻟ ﺮﻗﻢ
اﻟﺴﺮي ،وﻣﻦ ﺗﺴﺠﻴﻠﻬﻤﺎ ﻓﻲ اﻟﻤﻮﻗﻊ.
إن ﻟ ﻢ ﺗﻜ ﻦ اﻟﻤﻌﻠﻮﻣ ﺎت اﻟﻤﺪﺥﻠ ﺔ ﺻ ﺤﻴﺤﺔ ﻓ ﻲ اﻟﻨﻤ ﻮذج ،ﺳ ﻮف ﺗﺮﺳ ﻞ ه ﺬﻩ اﻟﺼ ﻔﺤﺔ ) ، (validentry.aspﻣﺘﻐﻴ ﺮ
یﺴ ﻤﻰ errorإﻟ ﻰ ﻣﻠ ﻒ ، admin.aspﻟﻴﺨﺒ ﺮﻩ ﻋ ﻦ ﻥ ﻮع اﻟﺨﻄ ﺄ ﻓ ﻲ إدﺥ ﺎل اﻟﻤﻌﻠﻮﻣ ﺎت .ﻟﻴﻘ ﻮم اﻟﻨﻤ ﻮذج ﺑﻌ ﺮض
رﺳﺎﻟﺔ اﻟﺨﻄﺄ اﻟﻤﻨﺎﺳﺒﺔ ﻟﻠﻤﺴﺘﺨﺪم.
إذا هﺬﻩ اﻟﺼ ﻔﺤﺔ validentry.aspﻟ ﻦ ﺗﻘ ﻮم ﺑﻌ ﺮض أي ﺵ ﻲء ﻟﻠﻤﺴ ﺘﺨﺪم ،ﺳ ﺘﻘﻮم ﻓﻘ ﻂ ﺑ ﺎﻟﺘﺤﻘﻖ ﻣ ﻦ ﺻ ﺤﺔ إدﺥ ﺎل
اﻟﻤﻌﻠﻮﻣ ﺎت ،ﻓ ﺈن آﺎﻥ ﺖ ﻏﻴ ﺮ ﺻ ﺤﻴﺤﺔ ،ﺳﻴﺮﺳ ﻞ errorﻟ ـ admin.aspوﺳ ﻮف یﻌ ﺮض اﻟﺨﻄ ﺄ .إﻣ ﺎ إذا آﺎﻥ ﺖ
اﻟﻤﻌﻠﻮﻣﺎت اﻟﻤﺪﺥﻠﺔ ﺻﺤﻴﺤﺔ ﻟﻠﻤﺴﺘﺨﺪم ،ﺳ ﻮف یﻘ ﻮم ﺑﻌ ﺮض ﺻ ﻔﺤﺔ اﻟﺼ ﻔﺤﺔ اﻹداری ﺔ ): (adminsection.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")
Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
connectionToDatabase.Open "DSN=my_data_base"
ﻷﻥﻬ ﺎ ﻟ ﻦ ﺗﻌ ﺮض ﺵ ﻴﺌﺎ، html وﻻ ﺗﺤﺘﻮي ﻋﻠﻰ آ ﻮد ﻟﻐ ﺔ، ASP اﻟﺼﻔﺤﺔ ﺗﺤﺘﻮي ﻓﻘﻂ ﻋﻠﻰ آﻮد ﻟﻐﺔ،آﻤﺎ ﺗﺮون
. وﻟﺬﻟﻚ ﻟﻢ یﺘﻢ آﺘﺎﺑﺔ رایﻂ ﺻﻔﺤﺔ اﻟﺮأس واﻟﺘﺬیﻴﻞ
. وﺳﻮف ﺗﺮون آﻴﻒ أن اﻷﻣﺮ ﺳﻬﻞ، ﺟﺰﺉﺎ ﺟﺰﺉﺎ، Code ﺳﺄﻗﻮم اﻵن ﺑﺸﺮح اﻟـ
: admin.aspاﺳﺘﻘﺒﺎل اﻟﻘﻴﻢ ﻣﻦ ﻥﻤﻮذج إدﺥﺎل اﺳﻢ اﻟﻤﺴﺘﺨﺪم واﻟﺮﻗﻢ اﻟﺴﺮي
آﻤﺎ هﻮ واﺽﺢ ﺳﻴﺴﺘﻘﺒﻞ هﺬا اﻟﺠﺰء
Name=Request.form("Name")
Name وﺳﻴﻀﻊ اﻟﻘﻴﻤﺔ ﻓﻲ اﻟﻤﺘﻐﻴﺮ،اﺳﻢ اﻟﻤﺴﺘﺨﺪم ﻣﻦ ﻥﻤﻮذج اﻹدﺥﺎل
-١
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اﻻﺳﻢ ﻣﻦ اﻟﻨﻤﻮذج.
-٤
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ﺗﻠﻘﺎﺉﻴ ﺎ ،ﺑﻌ ﺪ اﻟﺘﺄآ ﺪ ﻣ ﻦ ﺻ ﺤﺔ اﻟﻤﻌﻠﻮﻣ ﺎت وﺗﻜ ﻮیﻦ
اﻟﻜﻮآﻲ.
ﺙﻢ ﺑﻌﺪ ذﻟﻚ ﻥﻘﻮم ﺑﺈﻏﻼق ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت
ﻋﻨﺪ اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺮاﺑﻂ )إدارة اﻟﻤﻮﻗﻊ( ﺙﻢ اﻟﻀﻐﻂ ﻋﻠﻰ ﻣﻔﺘﺎح )دﺥﻮل( وﻟﻜﻦ ﻟﻢ یﺘﻢ إدﺥﺎل ) اﺳﻢ اﻟﻤﺴﺘﺨﺪم(
ﻓﺴﺘﻜﻮن اﻟﻨﺘﻴﺠﺔ آﺎﻟﺘﺎﻟﻲ :
وﻋﻨﺪ إدﺥﺎل )اﺳﻢ اﻟﻤﺴﺘﺨﺪم( وﻟﻢ یﺘﻢ إدﺥﺎل )آﻠﻤﺔ اﻟﻤﺮور( ﻓﺴﺘﻜﻮن اﻟﻨﺘﻴﺠﺔ آﺎﻟﺘﺎﻟﻲ :
وﻋﻨﺪ إدﺥﺎل )اﺳﻢ اﻟﻤﺴﺘﺨﺪم( ﺥﻄﺄ وﺗﻢ إدﺥﺎل )آﻠﻤﺔ اﻟﻤﺮور( ﻓﺴﺘﻜﻮن اﻟﻨﺘﻴﺠﺔ آﺎﻟﺘﺎﻟﻲ :
وﻋﻨﺪ إدﺥﺎل )اﺳﻢ اﻟﻤﺴﺘﺨﺪم( ﺻﺤﻴﺢ و إدﺥﺎل )آﻠﻤﺔ اﻟﻤﺮور( ﺥﻄﺄ ﻓﺴﺘﻜﻮن اﻟﻨﺘﻴﺠﺔ آﺎﻟﺘﺎﻟﻲ :
وﻋﻨ ﺪ إدﺥ ﺎل )اﺳ ﻢ اﻟﻤﺴ ﺘﺨﺪم( ﺻ ﺤﻴﺢ و إدﺥ ﺎل )آﻠﻤ ﺔ اﻟﻤ ﺮور( ﺻ ﺤﻴﺤﺔ ﻓﺴ ﻴﻨﺘﻘﻞ إﻟ ﻰ ﺻ ﻔﺤﺔ إدارة اﻟﻤﻮﻗ ﻊ
adminsection.asp
وﺑ ﺬﻟﻚ ﻥﻜ ﻮن ﻗ ﺪ اﻥﺘﻬﻴﻨ ﺎ ﻣ ﻦ ﺗﺼ ﻤﻴﻢ ﺻ ﻔﺤﺔ اﻟﺘﺄآ ﺪ ﻣ ﻦ ﺻ ﺤﺔ اﻟﺒﻴﺎﻥ ﺎت ) اﺳ ﻢ اﻟﻤﺴ ﺘﺨﺪم وآﻠﻤ ﺔ اﻟﻤ ﺮور(
validentry.asp
وﻓ ﻲ ه ﺬﻩ اﻟﺼ ﻔﺤﺔ ﺳ ﻨﺤﺘﺎج آ ﺬﻟﻚ ﻟﻠﺘﺄآ ﺪ ﻣ ﻦ. وهﻲ اﻟﺼﻔﺤﺔ اﻟﺘﻲ ﺳﻴﺴﻤﺢ ﺑﺎﻟﺪﺥﻮل إﻟﻴﻬ ﺎ ﻟﻠﻘﻴ ﺎم ﺑﻤﻬ ﺎم إدارة اﻟﻤﻮﻗ ﻊ
اﻟ ﺬي أﻥﺸ ﺄﻥﺎﻩ ﻓ ﻲ ﺻ ﻔﺤﺔCooky ﻟ ﺬﻟﻚ ﺳ ﻨﺨﺘﺒﺮ.إدﺥ ﺎل اﻟﻤﺴ ﺘﺨﺪم اﻻﺳ ﻢ واﻟ ﺮﻗﻢ اﻟﺴ ﺮي ﺑﺸ ﻜﻞ ﺻ ﺤﻴﺢ
Code وهﺬا هﻮ اﻟـvalidentry.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" -->
ﺑﺬﻟﻚ ﻟﻦ یﺴﺘﻄﻴﻊ أي ﺵﺨﺺ اﻟﺪﺥﻮل ﻋﻠﻰ هﺬﻩ اﻟﺼﻔﺤﺔ إﻻ إذا دﺥﻞ ﻋﻠﻰ اﻟﻤﻮﻗﻊ ﺑﺎﻻﺳﻢ واﻟﺮﻗﻢ اﻟﺴﺮي ﺑﺸﻜﻞ
ﻟﻄﻠﺐ ﺗﻠﻚ اﻟﻤﻌﻠﻮﻣﺎتadmin.asp ﺻﺤﻴﺢ وإﻻ ﻓﺈن اﻟﺼﻔﺤﺔ ﺳﺘﻨﻘﻠﻪ إﻟﻰ ﺻﻔﺤﺔ
یﻤﻜﻨﻚ اﻵن إﺽﺎﻓﺔ ﻡﺎ ﺗﺸﺎء ﻓﻲ هﺬﻩ اﻟﺼﻔﺤﺔ .adminsection.aspوأﻗﺘﺮح إﺽﺎﻓﺔ اﻷﻗﺴﺎم اﻟﺘﺎﻟﻴﺔ:
واﻵن ﺳ ﻴﺘﻢ ﺗﺼ ﻤﻴﻢ ﺻ ﻔﺤﺔ إﺽ ﺎﻓﺔ اﻷﺥﺒ ﺎر (add_news.asp) .واﻟﺘ ﻲ ﻻ ﺗﺨﺘﻠ ﻒ آﺜﻴ ﺮا ﻋ ﻦ ﺻ ﻔﺤﺔ اﻟﺘﻮﻗﻴ ﻊ ﻓ ﻲ
ﺳﺠﻞ اﻟﺰوار.
ﺳﻨﺴﺘﺨﺪم ﻥﻔﺲ اﻟﻤﺒﺎدئ اﻟﺘﻲ ﺗﻌﻠﻤﻨﺎهﺎ ﻋﻨﺪ إﻥﺸﺎء ﺻﻔﺤﺔ إﺽﺎﻓﺔ ﺗﻮﻗﻴﻊ ﻓﻲ ﺳﺠﻞ اﻟﺰوار
ﻟﺘﺼﻤﻴﻢ هﺬﻩ اﻟﺼﻔﺤﺔ أﻥﺸﺊ ﺻﻔﺤﺔ ﺟﺪیﺪ ة ﺑﺎﺳﻢ (add_news.asp).واﻟﺸﻜﻞ اﻟﻌﺎم ﺳﻴﻜﻮن آﺎﻟﺘﺎﻟﻲ:
ﻥﻀﻊ إﺵﺎرة ﺻﺢ أﻣﺎم )ﺗﺤﺪیﺪ اﻟﻘﻴﻤﺔ( ﺙﻢ ﻥﻜﺘﺐ اﻟﻘﻴﻤ ﺔ) (general_newsاﻟﺘ ﻲ ﺳ ﻴﺘﻢ إرﺳ ﺎﻟﻬﺎ ﻣ ﻦ ﻃﺮی ﻖ اﻟﻨﻤ ﻮذج
وهﺬﻩ اﻟﻘﻴﻤﺔ ﺗﻤﺜّﻞ :اﺳﻢ اﻟﺠﺪول اﻟﺬي یﺤﺘﻮي ﻋﻠﻰ هﺬﻩ اﻟﻨﻮﻋﻴ ﺔ ﻣ ﻦ اﻷﺥﺒ ﺎر ﻓ ﻲ ﻗﺎﻋ ﺪة اﻟﺒﻴﺎﻥ ﺎت .وﻟﻔﻬ ﻢ ﺳ ﺒﺐ ﻗﻴﺎﻣﻨ ﺎ
ﺑﺬﻟﻚ ،یﺠﺐ ﻣﻌﺮﻓﺔ اﻟﻐﺮض ﻣﻦ اﺳﺘﺨﺪام اﻟﻘﺎﺉﻤﺔ اﻟﻤﻨﺴﺪﻟﺔ ﻓﻲ هﺬا اﻟﻤﻮﻗﻊ.
ﺗﻌﻠﻤﻨﺎ ﺳﺎﺑﻘﺎ أن أﻣﺮ Addﻟﻺﺽﺎﻓﺔ ﺑﻴﺎﻥﺎت ﻟﻠﻘﺎﻋﺪة ،یﺘﻄﻠﺐ ﺗﺤﺪیﺪ:
-١اﺳﻢ اﻟﺠﺪول اﻟﻤﻄﻠﻮب إﺽﺎﻓﺔ اﻟﺒﻴﺎﻥﺎت ﻓﻴﻪ.
-٢اﺳﻢ آﻞ ﺡﻘﻞ ﻓﻲ اﻟﺠﺪول.
-٣اﻟﻘﻴﻤﺔ اﻟﻤﻄﻠﻮب إدراﺟﻬﺎ ﻓﻲ آﻞ ﺡﻘﻞ.
ﻓﻲ ﺡﺎﻟﺘﻨﺎ ه ﺬﻩ ﻟ ﺪیﻨﺎ ﺟ ﺪوﻟﻴﻦ وﻟ ﻴﺲ ﺟ ﺪوﻻ واﺡ ﺪا ..ﺟ ﺪول یﻀ ﻢ اﻷﺥﺒ ﺎر اﻟﻌﺎﻣ ﺔ وه ﻮ ) ،(general_newsوﺁﺥ ﺮ
ﻟﻸﺥﺒ ﺎر اﻟﺘﻘﻨﻴ ﺔ وه ﻮ ) .(tech_newsﺑﺎﻹﻣﻜ ﺎن ﺗﺼ ﻤﻴﻢ ﺻ ﻔﺤﺔ ﻹﺽ ﺎﻓﺔ اﻷﺥﺒ ﺎر ﻋﺎﻣ ﺔ ،وﺻ ﻔﺤﺔ أﺥ ﺮى ﻹﺽ ﺎﻓﺔ
اﻷﺥﺒﺎر اﻟﺘﻘﻨﻴﺔ .ﻟﻜﻦ اﻷﻓﻀﻞ ﻣﻦ ذﻟﻚ ،هﻮ ﺗﺼﻤﻴﻢ ﺻﻔﺤﺔ واﺡﺪة )ﻣﺮﻥﺔ( یﻤﻜﻦ ﻣﻦ ﺥﻼﻟﻬﺎ ﺗﺤﺪیﺪ اﻟﺠﺪول اﻟ ﺬي ﻥﺮی ﺪ
إﺽﺎﻓﺔ اﻟﻤﻘﺎﻻت ﻓﻴﻪ .ویﺘﻢ ذﻟﻚ ﺑﺎﺳﺘﺨﺪام اﻟﻘﺎﺉﻤﺔ اﻟﻤﻨﺴﺪﻟﺔ.
ﻓﻲ اﻟﻨﻬﺎیﺔ ﺳﺘﻈﻬﺮ ﺥﺼﺎﺉﺺ اﻟﻘﺎﺉﻤﺔ اﻟﻤﻨﺴﺪﻟﺔ ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻲ:
وهﻲ ﻥﻔﺲ، ﻣﻦ ﺥﻼل )ﺥﺼﺎﺉﺺ اﻟﻨﻤﻮذج( یﺘﻢ ﺗﺤﺪیﺪ اﻟﺼﻔﺤﺔ اﻟﺘﻲ ﺳﻴﺘﻢ إرﺳﺎل اﻟﻘﻴﻢ إﻟﻴﻬﺎ ﻟﻠﻤﻌﺎﻟﺠﺔ،أﺥﻴﺮا
: 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">
</span><input type="reset" value=" "إﻋﺎدة ﺗﻌﻴﻴﻦname="B2"></p>
</form>
<!--#include file="pagefooter.asp" -->
</body></html>
. وﺳﻨﺸﺮح اﻷواﻣﺮ اﻟﺠﺪیﺪة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 "§ion&" (subject,body) values ('"&subject&"','"&body&"')"
connectionToDatabase.execute(addSQL)
%><p><b><font face="Simplified Arabic" size="3" color="#00FF00"> ﻟﻘﺪ ﺗﻢ إﺽﺎﻓﺔ اﻟﺨﺒﺮ..ﺵﻜﺮا ﻟﻚ
<ﺑﻨﺠﺎح/font></b></p><%
End Function
اﻟﺠﺰء اﻷول
اﻟﺠﺰء اﻟﺜﺎﻥﻲ
ﺃﻭﻻ :ﻫﻨﺎﻟﻙ ﺍﺨﺘﻼﻑ ﺒﺴﻴﻁ ﻓﻲ ﺠﻤﻠﺔ addSQLﻋﻤﺎ ﻜﺘﺒﻨﺎﻩ ﺴﺎﺒﻘﺎ ﻓﻲ ﺼﻔﺤﺔ ﺇﻀﺎﻓﺔ ﺍﻟﺘﻭﺍﻗﻴﻊ ﻟﺴﺠل ﺍﻟﺯﻭﺍﺭ ،ﻓﻔﻲ
ﺴﺠل ﺍﻟﺯﻭﺍﺭ ﺤﺩﺩﻨﺎ ﺍﺴﻡ ﺍﻟﺠﺩﻭل ﺍﻟﺫﻱ ﻨﻭﺩ ﺇﻀﺎﻓﺔ ﺍﻟﻤﺩﺨﻼﺕ ﻓﻴﻪ ،ﺃﻤﺎ ﻓﻲ ﻫﺫﻩ ﺍﻟﺼﻔﺤﺔ ﻓﺎﺴﺘﺒﺩﻟﻨﺎ ﺍﺴـﻡ ﺍﻟﺠـﺩﻭل
ﺒﺎﻟﻤﺘﻐﻴﺭ "& "§ionﻭﺍﻟﺫﻱ ﻴﺘﻡ ﺍﺴﺘﻘﺒﺎل ﻗﻴﻤﺘﻪ ﻤﻥ ﺨﻼل ﺍﻟﻘﺎﺌﻤﺔ ﺍﻟﻤﻨﺴﺩﻟﺔ ﻓﻲ ﺍﻟﻨﻤﻭﺫﺝ .ﻭﺒﺎﻟﺘﺎﻟﻲ ﻗﺩ ﻴﻜـﻭﻥ
ﺃﺨﺒﺎﺭ ﻋﺎﻤﺔ ،ﺃﻭ ﺃﺨﺒﺎﺭ ﺘﻘﻨﻴﺔ.
ﺜﺎﻨﻴﺎ :ﺍﺴﺘﺨﺩﻤﻨﺎ Functionﻭﺍﻟﺘﻲ ﻴﻤﻜﻥ ﺘﺴﻤﻴﺘﻬﺎ ﻭﻅﻴﻔﺔ ﺃﻭ ﺩﺍﻟﺔ .ﻭﻫﻲ ﻋﺒﺎﺭﺓ ﻋﻥ ﻤﺠﻤﻭﻋﺔ ﺃﻭﺍﻤﺭ ﺘﹸـﻨﻔﹼـﺫ ﻤـﻊ
ﺒﻌﻀﻬﺎ ﺍﻟﺒﻌﺽ ﺃﻭ ﻻ ﺘﹸـﻨﻔﹼـﺫ ﺇﻁﻼﻗﺎ ،ﻟﺫﺍ ﻓﻨﻀﻌﻬﺎ ﻤﻊ ﺒﻌﺽ ﻨﺒﺩﺃﻫﺎ ﺒـ Functionﻭﻨﺤﺩﺩ ﺍﺴـﻡ ﻤـﺜﻼ addf
ﻭﻨﻀﻊ ﺒﻌﺩﻫﺎ ﺍﻻﺴﻡ )( ﺜﻡ ﻨﻜﺘﺏ ﺍﻟﻤﻁﻠﻭﺏ ..ﻭﻨﻐﻠﻕ ﺍﻟـ Functionﺒـ End Function .ﻭﻓﻲ ﺍﻟﻤﻜﺎﻥ ﺍﻟﻠـﻲ
ﻨﺭﻴﺩ ﺘﻨﻔﻴﺫ ﻫﺫﻩ ﺍﻷﻭﻭﺍﻤﺭ ﺃﻭ ﺍﻟـ Functionﻓﻴﻪ ﻨﻀﻊ ﻓﻴﻪ ﺍﻻﺴﻡ .ﻭﻓﻲ ﺤﺎﻟﺘﻨﺎ )( addfﻭﻀﻌﻨﺎﻩ ﺒﻴﻥ Elseﻭ End
ifﻭﻫﻭ ﺍﻟﻤﻜﺎﻥ ﺍﻟﺫﻱ ﻨﺭﻴﺩ ﻓﻴﻪ ﺃﻥ ﺘﺘﻨﻔﺫ ﺃﻭﺍﻤﺭ ﺍﻹﻀﺎﻓﺔ.
ﻋﻨﺪ ﺗﺸﻐﻴﻞ اﻟﺮاﺑﻂ أﺥﺒﺎر ﻣﻨﻮﻋﺔ ﺗﻈﻬﺮ ﻟﻨﺎ ﺻﻔﺤﺔ )ﺻﻔﺤﺔ اﻟﻤﻘﺎﻻت ( ﺑﻬﺎ
ﻋﻨﺪ ﺗﺸﻐﻴﻞ اﻟﺮاﺑﻂ إدارة اﻟﻤﻮﻗﻊ ﺙﻢ ادﺥﺎل اﺳﻢ اﻟﻤﺴﺘﺨﺪم وآﻠﻤﺔ اﻟﻤﺮور ﺙﻢ اﻟﺨﻴﺎر اﻟﺮاﺑﻂ )إﺽﺎﻓﺔ اﻷﺥﺒﺎر( ﺗﻈﻬﺮ
ﻟﻨﺎ ﺻﻔﺤﺔ )إﺽﺎﻓﺔ اﻷﺥﺒﺎر ( ﺙﻢ ﻥﻘﻮم ﺑﺘﻌﺒﺌﺔ ﺟﻤﻴﻊ اﻟﺤﻘﻮل وﻟﻴﻜﻦ آﺎﻟﺘﺎﻟﻲ :
وﻋﻨﺪ اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺮز )إﺽﺎﻓﺔ ( ﺗﻜﻮن اﻟﻨﺘﻴﺠﺔ ﻣﻌﻠﻨﺔ )) ﺵﻜﺮا ﻟﻚ ﻟﻘﺪ ﺗﻢ إﺽﺎﻓﺔ اﻟﺨﺒﺮ ﺑﻨﺠﺎح ((
وﻟﻠﺘﺄآﺪ ﻣﻦ ذﻟﻚ اﺽﻐﻂ ﻋﻠﻰ اﻟﺮاﺑﻂ ) أﺥﺒﺎر ﻣﻨﻮﻋﺔ( ﻟﺘﻈﻬﺮ اﻟﻨﺘﻴﺠﺔ آﺎﻟﺘﺎﻟﻲ :
وﺑﺬﻟﻚ ﻥﻜﻮن ﻗﺪ اﻥﺘﻬﻴﻨﺎ ﻣﻦ اﻟﺠﺰء اﻷول ﻓﻲ ﺻﻔﺤﺔ )إدارة اﻟﻤﻮﻗﻊ( وهﻮ ))) إﺽﺎﻓﺔ اﻷﺥﺒﺎر (((.
ﺳﻨﺼﻤﻢ اﻵن ﺻﻔﺤﺔ ) (news_list.aspﺗﺤﺘﻮي ﻋﻠﻰ ﻗﺎﺉﻤﺔ ﺑﻌﻨﺎویﻦ اﻷﺥﺒﺎر وأﻣﺎم آﻞ ﻋﻨﻮان ﺥﻴﺎران أﺡﺪهﻤﺎ
"ﺗﻌﺪیﻞ" واﻵﺥﺮ "ﻣﺴﺢ".
اﻟﺸﻜﻞ اﻟﻤﻘﺘﺮح :
اﻟﺠﺰء اﻟﺜﺎﻥﻲ
اﻟﺠﺰء اﻟﺜﺎﻟﺚ
</table>
<%
rsnews.movenext
loop
%>
<p> </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")%> </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> </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
اﻟﺬي أود اﻹﺵﺎرة إﻟﻴﻪ هﻨﺎ ،أﻥﻪ ﺑﺎﻹﻡﻜﺎن ﻋﻤﻞ ﺹﻔﺤﺔ ﺗﻌﺪیﻞ واﺣﺪة ﻟﻜﻼ اﻟﻨﻮﻋﺎن ،وﺹ ﻔﺤﺔ ﻡﺴ ﺢ واﺣ ﺪة ﻟﻜ ﻼ اﻟﻨﻮﻋ ﺎن .ﻟﻜ ﻦ ﻟﺮﻏﺒﺘ ﻲ
ﻓﻲ ﺗﺼﻤﻴﻢ اﻟﻤﻮﻗﻊ ﺑﺄﺑﺴﻂ ﺹﻮرة ﻡﻤﻜﻨﺔ ﻟﻴﻤﻜﻦ ﻟﻠﻤﺒﺘﺪئ ﻡﺘﺎﺑﻌﺔ اﻟﺸﺮح ﺑﺴ ﻬﻮﻟﺔ ﻗ ﺮرت ﺗﺼ ﻤﻴﻢ ﺹ ﻔﺤﺔ ﻟﻜ ﻞ ﻗﺴ ﻢ .وه ﺬا یﺘ ﻴﺢ اﻟﻤﺠ ﺎل
ﻟﻠﻤﺘﻌﻠﻢ ﻟﺒﺬﻟﻚ ﺟﻬﺪ إﺽﺎﻓﻲ ﺑﻌﺪ اﻻﻥﺘﻬﺎء ﻡﻦ اﻟﺸﺮح ﻟﺘﻄﻮیﺮ اﻟﻤﻮﻗﻊ وﺗﻘﻠﻴﺺ ﻋﺪد ﺹﻔﺤﺎﺗﻪ.
واﻵن إﻟﻴﻜﻢ اﻟﺘﻨﻔﻴﺬ
ﻋﻨﺪ اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺮاﺑﻂ ) ﺗﻌﺪیﻞ أو ﻣﺴﺢ اﻷﺥﺒﺎر ( ﻓﻲ ﺻﻔﺤﺔ ) إدارة اﻟﻤﻮﻗﻊ ( ﺗﻈﻬﺮ اﻟﻨﺘﻴﺠﺔ آﺎﻟﺘﺎﻟﻲ :
اﻟﺠﺰء اﻟﺜﺎﻥﻲ
<%
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")
%>
<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>
وﻓﻲ ﻣﺜﺎﻟﻨﺎ اﻟﺴﺎﺑﻖ ﻟﻢ ﻥﺤﺪد اﻟﻘﻴﻢ ﻣﺴﺒﻘﺎ .وإﻥﻤﺎ ﻗﻤﻨﺎ ﺑﺠﻠﺐ اﻟﻘﻴﻢ اﻟﻤﻮﺟﻮدة ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت واﺳﺘﺨﺪاﻣﻬﺎ آﺄﺳﺎس
ﻟﻠﺘﺤﺪیﺚ .ﻣﺜﺎل:
ﻓﻲ اﻟﺴﻄﺮ اﻟﺴﺎﺑﻖ ﺗﻢ إﻥﺸﺎء ﻣﺮﺑﻊ ﻥﺺ ﺑﺎﺳﻢ subjectوﺗﻢ ﺗﺤﺪیﺪ ﻗﻴﻤﺘﻪ ﺑﺄﻥﻪ ﻣﺤﺘﻮى اﻟﺤﻘﻞ Subjectﻣﻦ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت.
ﻓﻲ اﻟﺴﻄﺮ اﻟﺴﺎﺑﻖ ﺗﻢ إﻥﺸﺎء ﻣﺮﺑﻊ ﻥﺺ ﺑﺎﺳﻢ bodyوﺗﻢ ﺗﺤﺪیﺪ ﻗﻴﻤﺘﻪ ﺑﺄﻥﻪ ﻣﺤﺘﻮى اﻟﺤﻘﻞ bodyﻣﻦ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت.
ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﻌﻨﻮان
ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﻤﺤﺘﻮى
ﺧﺼﺎﺋﺺ اﻟﻨﻤﻮذج
ﻋﻨﺪ اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺮاﺑﻂ ) ﺗﻌﺪیﻞ أو ﻣﺴﺢ اﻷﺥﺒﺎر ( ﻓﻲ ﺻﻔﺤﺔ ) إدارة اﻟﻤﻮﻗﻊ ( ﺙﻢ اﻟﻀﻐﻂ ﻋﻠﻰ )ﺗﻌﺪیﻞ( ﺗﻈﻬﺮ
اﻟﻨﺘﻴﺠﺔ آﺎﻟﺘﺎﻟﻲ :
وﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺮاﺑﻂ )) أﺥﺒﺎر ﻣﻨﻮﻋﺔ (( ﺗﻈﻬﺮ اﻟﻨﺘﻴﺠﺔ اﻟﺘﺎﻟﻴﺔ وﻗﺪ ﺗﻐﻴﺮ ﻋﻨﻮان اﻟﻤﻘﺎل
ه ﺬﻩ اﻟﺼ ﻔﺤﺔ ﻻ ﺗﺨﺘﻠ ﻒ آﺜﻴ ﺮًا ﻋ ﻦ اﻟﺼ ﻔﺤﺔ ) (news_upd.aspﻟ ﺬﻟﻚ ﻗ ﻢ ﺑﺤﻔﻈﻬ ﺎ ﺑﺎﺳ ﻢ ﺟﺪی ﺪ وﻟﻜ ﻦ ﺑﺎﺳ ﻢ
tech_upd.asp
وﻗﻢ ﺑﺘﻐﻴﻴﺮ general_newsإﻟﻰ tech_newsﻓﻲ آﻼ اﻻﺳﺘﻌﻼﻣﻴﻦ selectوupdate.
ﻡﻠﺤﻮﻇﺔ :اﺳﺘﺨﺪم ﻣﻦ ﻗﺎﺉﻤﺔ ﺗﺤﺮیﺮ – اﺳﺘﺒﺪال )) ﻟﻠﺘﺴﻬﻴﻞ ((
وﺗﻐﻴﻴﺮ news_upd.aspإﻟﻰ tech_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 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")
%>
<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>
ﺳﻨﺼﻤﻢ ﺻﻔﺤﺔ ﻣﺴ ﺢ أو ﺡ ﺬف اﻟﺒﻴﺎﻥ ﺎت اﻟﻤﻮﺟ ﻮدة ﺑﺎﻟﺠ ﺪول general_newsﺑﺎﺳ ﻢ ) (news_del.aspوأﺥ ﺮى
ﺑﺎﺳ ﻢ ) (tech_del.aspﻟﻤﺴ ﺢ أو ﺡ ﺬف اﻟﺒﻴﺎﻥ ﺎت اﻟﻤﻮﺟ ﻮدة ﺑﺎﻟﺠ ﺪول tech_newsﻟ ﻦ ﺗﺨﺘﻠﻔ ﺎ اﻟﺼ ﻔﺤﺘﻴﻦ ﻋ ﻦ
ﺑﻌﻀ ﻬﻤﺎ اﻟ ﺒﻌﺾ آﺜﻴ ﺮا .اﻷواﻣ ﺮ اﻟﺠﺪی ﺪة اﻟﺘ ﻲ ﺳ ﻨﺘﻌﻠﻤﻬﺎ هﻨ ﺎ ه ﻲ اﻻﺳ ﺘﻌﻼم deleteاﻟ ﺬي یﻘ ﻮم ﺑﻤﺴ ﺢ أو ﺡ ﺬف
اﻟﺒﻴﺎﻥﺎت اﻟﺘﻲ ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت.
<%
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>
وﺑﻌ ﺪ إﺗﻤ ﺎم اﻟﻌﻤﻠﻴ ﺔ ﺳ ﻴﻨﺘﻘﻞ اﻟﻤﺘﺼ ﻔﺢ ﻟﻠﺼ ﻔﺤﺔ. اﻟﻤﺮﺳﻠﺔ ﻣ ﻦ اﻟﺼ ﻔﺤﺔ اﻟﺴ ﺎﺑﻘﺔid آﻤﺎ هﻮ واﺽﺢ ﺗﻢ اﺳﺘﺨﺪام ﻗﻴﻤﺔ
response.redirect .اﺳﺘﺠﺎﺑﺔ ﻟﻸﻣﺮnews_list.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>
ﺳﻨﺼﻤﻢ اﻵن ﺻﻔﺤﺔ ) (guest_list.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">
: ﺹﻮرة اﻟﻜﻮد
واﻟﻴﻜﻢ اﻟﻜﻮد
<%
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"
connectionToDatabase.Close
Set connectionToDatabase=Nothing
>%
><!--#include file="pagefooter.asp" --
></body></html
واﻟﻴﻜﻢ اﻟﻨﺘﻴﺠﺔ ﻋﻨﺪ اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺮاﺑﻂ )ﻣﺴﺢ ( أﻣﺎم أﺳﻢ ﻣُﻮﻗﻊ ﺳﺠﻞ اﻟﺰوار واﺳﻤﻪ ))إﺳﻤﺎﻋﻴﻞ أﺑﻮ زیﺪ((
ﺥﺼﺎﺉﺺ اﻟﻨﻤﻮذج
اﻟﺠﺰء اﻟﺜﺎﻥﻲ
اﻟﺠﺰء اﻟﺜﺎﻟﺚ
: واﻟﻴﻜﻢ اﻟﻜﻮد
<%
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
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">
<input type="reset" value=" "إﻋﺎدة ﺗﻌﻴﻴﻦname="B2"></p>
</form>
<%
connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>
<!--#include file="pagefooter.asp" -->
</body></html>
ﻓﻲ ﺡﺎﻟﺔ ﻋﺪم ﺗﻄﺎﺑﻖ ﺥﺎﻥﺔ )آﻠﻤﺔ اﻟﻤﺮور( ﻣﻊ ﺥﺎﻥﺔ )ﺗﺄآﻴﺪ آﻠﻤﺔ اﻟﻤﺮور(
اﻟﺠﺰء اﻷول
اﻟﺠﺰء اﻟﺜﺎﻥﻲ
: واﻟﻴﻜﻢ اﻟﻜﻮد
<%
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"
: ﺹﻮرة اﻟﻜﻮد
واﻟﻴﻜﻢ اﻟﻜﻮد
<%
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 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)) واﻟﻴﻜﻢ اﻟﻨﺘﻴﺠﺔ ﻋﻨﺪ اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺮاﺑﻂ )ﻣﺴﺢ ( أﻣﺎم اﺳﻢ اﻟﻤﺸﺮف
اﺳﻢ اﻟﻤﺴﺘﺨﺪم
ﺥﺼﺎﺉﺺ اﻟﻨﻤﻮذج
اﻟﺠﺰء اﻷول
اﻟﺠﺰء اﻟﺜﺎﻥﻲ
اﻟﺠﺰء اﻟﺜﺎﻟﺚ
: واﻟﻴﻜﻢ اﻟﻜﻮد
<%
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&"'"
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">
<input type="reset" value=" "إﻋﺎدة ﺗﻌﻴﻴﻦname="B2"></p>
</form>
<%
connectionToDatabase.Close
Set connectionToDatabase=Nothing
%>
<!--#include file="pagefooter.asp" -->
</body></html>
: واﻟﻴﻜﻢ اﻵن اﻟﻨﺘﻴﺠﺔ
ﻓﻲ ﺡﺎﻟﺔ آﺘﺎﺑﺔ ﺗﺄآﻴﺪ آﻠﻤﺔ اﻟﻤﺮور اﻟﺠﺪیﺪة ﺑﺸﻜﻞ ﻏﻴﺮ ﻣﻄﺎﺑﻖ ﻟﻜﻠﻤﺔ اﻟﻤﺮور اﻟﺠﺪیﺪة
ﺗﻌﺘﺒﺮ هﺬﻩ اﻟﻄﺮیﻘﺔ اﻷآﺜﺮ آﻠﻔﺔ ﻻﻋﺘﻤﺎدهﺎ ﻋﻠﻰ ﺟﻬﺎز اﻟﺰﺑﻮن ﻟﺤﻔﻆ اﻟﺒﻴﺎﻥﺎت ﻣﺆﻗﺘﺎ ..ﻓﻲ اﻟﻜﻮد :
RS.CursorLocation=adUseClient
هﺬﻩ هﻲ اﻟﺠﻤﻠﺔ اﻟﻤﻜﻠﻔﺔ و هﺬﻩ اﻟﻄﺮیﻘﺔ ﻻ ﺗﻌﻤﻞ ﺑﺪون اﺳﺘﺨﺪام ﻗﻴﻤﺔ adUseClient
CursorLocationاﻟﻘﻴﻤﺔ اﻻﻓﺘﺮاﺽﻴﺔ هﻲ .adUseServer
: CursorLocation.ﻣﻜﺎن ﺡﻔﻆ اﻟﺒﻴﺎﻥﺎت اﻟﻤﺆﻗﺖ .
.و ﺳ ﺒﺐ ﺁﺥ ﺮ یﺒﻄ ﺊ ﻋﻤﻠﻴ ﺔ ﺟﻠ ﺐ اﻟﺒﻴﺎﻥ ﺎت ه ﻲ اﺳ ﺘﺨﺪام ) Record Setیﻤﻜ ﻦ ﺗﻌﺮیﺒﻬ ﺎ آﺼ ﻨﺪوق اﻟﺒﻴﺎﻥ ﺎت(
اﻟﻤﺨﺼﺼ ﺔ ﻻﺳ ﺘﺨﺪاﻣﺎت ﺳ ﻄﺢ اﻟﻤﻜﺘ ﺐ و اﻟﺸ ﺒﻜﺎت ،و ﺗ ﺮك ﻥ ﻮع adOpenForwardOnlyاﻟﻤﺨﺼ ﺺ
ﻻﺳﺘﺨﺪاﻣﺎت اﻟﻮیﺐ ...
RS.Open SQL,ADO,RecordSetCursorType,LockType
اﻟﻘﻴﻢ اﻟﺮﻗﻤﻴﺔ:
Const adOpenForwardOnly = 0
Const adOpenKeyset = 1
Const adOpenDynamic = 2
Const adOpenStatic = 3
ﺗﺠﺪ هﺬﻩ اﻟﺜﻮاﺑﺖ و اﻟﻌﺪیﺪ ﻣﻨﻬﺎ ﻓﻲ ﻣﻠﻒ أﺳﻤﺔ ) adovbs.incﻥﺴﺨﺔ اﻟﻔﻲ ﺑﻴﺴﻜﺮﺑﺖ ( ]اﺑﺤﺚ ﻋﻨﻪ ﻓﻲ ﺟﻬﺎزك [
ﺳﻮف ﺗﺠﺪﻩ ﻓﻲ اﻟﻤﺴﺎر اﻟﺘﺎﻟﻲ:
C:\Program Files\Common Files\System\ado\ 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
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
Const adFilterPendingRecords = 1
Const adFilterAffectedRecords = 2
Const adFilterFetchedRecords = 3
Const adFilterConflictingRecords = 5
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
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
Const adPriorityNormal = 3
Const adPriorityAboveNormal = 4
Const adPriorityHighest = 5
اﻵن ﺱﻮف ﻥﻘﻮم ﺑﻌﻤﻞ ﺗﻘﺴﻴﻢ ﻟﻠﻨﺘﺎﺋﺞ ﻋﻠﻰ ﺹﻔﺤﺔ ﻋﺮض اﻟﺘﻮﻗﻴﻌﺎت ) ﺱﺠﻞ اﻟﺰوار ( )(guest.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
Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
Set RS=Server.CreateObject("ADODB.Recordset")
connectionToDatabase.Open "DSN=my_data_base"
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
'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>")
%>
<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>
<%
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> " )
Response.Write("<A href='" & Url & CurrentPage-1 & "'>" & p_PrevPage & "</A>
" )
Else
Response.Write( p_FirstPage & " " )
Response.Write( p_PrevPage & " " )
End if
if CurrentPage<>TotalPages then
Response.Write("<A href='" & Url & CurrentPage+1 & "'>" & p_NextPage & "</A>
" )
Response.Write("<A href='" & Url & TotalPages & "'>" & p_LastPage & "</A>
" )
else
Response.Write(p_NextPage & " " )
Response.Write(p_LastPage & " " )
end if
Response.Write("</div>")
end if%>
Set connectionToDatabase=Server.CreateObject("ADODB.Connection")
connectionToDatabase.ConnectionTimeout=60
Set RS=Server.CreateObject("ADODB.Recordset")
connectionToDatabase.Open "DSN=my_data_base"
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.
( اﺥﺘﻴﺎر ﻋﺪد اﻟﺴﺠﻼت ﻓﻲ ﺻﻔﺤﺔ اﻟﻌﺮض اﻟﻮاﺡﺪة ) وﻟﻴﻜﻦ ﺥﻤﺲ ﺳﺠﻼت ﻓﻲ اﻟﺼﻔﺤﺔ اﻟﻮاﺡﺪة-٧
RS.PageSize =5
'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>")
RS.Close
Set RS=Nothing
connectionToDatabase.Close
Set connectionToDatabase=Nothing
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>
" )
Response.Write("<A href='" & Url & CurrentPage-1 & "'>" &
p_PrevPage & "</A> " )
Else
Response.Write( p_FirstPage & " " )
Response.Write( p_PrevPage & " " )
End if
if CurrentPage<>TotalPages then
Response.Write("<A href='" & Url & CurrentPage+1 & "'>" &
p_NextPage & "</A> " )
Response.Write("<A href='" & Url & TotalPages & "'>" &
p_LastPage & "</A> " )
else
Response.Write(p_NextPage & " " )
Response.Write(p_LastPage & " " )
end if
Response.Write("</div>")
end if%>
(guest.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")
connectionToDatabase.ConnectionTimeout=60
Set RS=Server.CreateObject("ADODB.Recordset")
connectionToDatabase.Open "DSN=my_data_base"
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
'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>")
%>
<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
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> " )
Response.Write("<A href='" & Url & CurrentPage-1 & "'>" & p_PrevPage & "</A>
" )
Else
Response.Write( p_FirstPage & " " )
Response.Write( p_PrevPage & " " )
End if
if CurrentPage<>TotalPages then
Response.Write("<A href='" & Url & CurrentPage+1 & "'>" & p_NextPage & "</A>
" )
Response.Write("<A href='" & Url & TotalPages & "'>" & p_LastPage & "</A>
" )
else
Response.Write(p_NextPage & " " )
Response.Write(p_LastPage & " " )
end if
Response.Write("</div>")
end if%>
<!--#include file="pagefooter.asp" -->
</body></html>
(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"
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
'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
%>
<%
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> " )
Response.Write("<A href='" & Url & CurrentPage-1 & "'>" & p_PrevPage & "</A>
" )
Else
Response.Write( p_FirstPage & " " )
Response.Write( p_PrevPage & " " )
End if
if CurrentPage<>TotalPages then
Response.Write("<A href='" & Url & CurrentPage+1 & "'>" & p_NextPage & "</A>
" )
Response.Write("<A href='" & Url & TotalPages & "'>" & p_LastPage & "</A>
" )
else
Response.Write(p_NextPage & " " )
Response.Write(p_LastPage & " " )
end if
Response.Write("</div>")
end if%>
*** اﻵن ﺱﻮف ﻥﻘﻮم ﺑﻌﻤﻞ ﺗﻘﺴﻴﻢ ﻟﻠﻨﺘﺎﺋﺞ ﻋﻠﻰ ﺹﻔﺤﺔ ) ﻥﺘﺎﺋﺞ اﻟﺒﺤﺚ( )(search_result.asp
)ﻋﺪد اﻟﺴﺠﻼت اﻟﻤﻌﺮوﺽﺔ ﻓﻲ اﻟﺼﻔﺤﺔ اﻟﻮاﺡﺪة ﺳﺠﻼن(
ﻼ ﻻن آ ﻞ
ﺗﻘﺴﻴﻢ اﻟﻨﺘﺎﺉﺞ ﻓﻲ ﺻﻔﺤﺔ أﺥﺒﺎر اﻟﺘﻘﻨﻴﺔ ) (tech.aspوﺻﻔﺤﺔ أﺥﺒﺎر ﻣﻨﻮﻋ ﺔ ) (news.aspآ ﺎن أﻣ ﺮًا ﺳ ﻬ ً
ﺻ ﻔﺤﺔ ﺗﺤﺘ ﻮي ﻋﻠ ﻰ ﺟ ﺪول واﺡ ﺪ ﻓﻘ ﻂ وی ﺘﻢ اﻟﺘﻘﺴ ﻴﻢ ﻣ ﻦ ﺥﻼﻟ ﻪ أﻣ ﺎ ﻓ ﻲ ﺡﺎﻟ ﺔ ﺹ ﻔﺤﺔ ) ﻥﺘ ﺎﺋﺞ اﻟﺒﺤ ﺚ(
) (search_result.aspﻓﺎﻷﻣﺮ یﺨﺘﻠﻒ ﻟﻮﺟﻮد ﺟﺪوﻟﻴﻦ ﺑﺎﻟﺼ ﻔﺤﺔ وی ﺘﻢ ﻋﻤ ﻞ اﻟﺒﺤ ﺚ ﻣ ﻦ ﺥﻼﻟﻬﻤ ﺎ وﻟ ﺬاﻟﻚ ﺳ ﻮف
ﺗﻮاﺟﻬﻨﺎ ﻋﺪة إﺵﻜﺎﻟﻴﺎت ﺳﻮف ﻥﻘﻮم ﺑﺘﺬﻟﻴﻠﻬﺎ ﺑﺈذن اﷲ ﺗﻌﺎﻟﻰ وهﻮ ﻣﺎ یﻜﺴﺒﻨﺎ اﻟﺨﺒﺮة ﻓﻼ ﺥﺒﺮة ﺑﺪون ﻣﺸﺎآﻞ.
وﻗﺒﻞ ذﻟﻚ ﺳﻮف ﻥﻘﻮم ﺑﻌﻤﻠﻴﺔ ﺗﻔﺮیﻊ ﻟﻬﺬا اﻟﺠﺪول اﺳﺘﻌﺪادًا ﻟﻌﻤﻠﻴﺔ اﻹدراج اﻟﺘﻲ ﺳﻮف ﺗﺘﻢ ﻓﻴﻪ ﻓ ﻲ ﺡﺎﻟ ﺔ وﺟ ﻮد اﻟﻜﻠﻤ ﺔ
أو ﺟ ﺰء ﻣ ﻦ اﻟﻜﻠﻤ ﺔ اﻟﻤ ﺮاد اﻟﺒﺤ ﺚ ﻋﻨﻬ ﺎ ﻓ ﻲ اﻟﺠ ﺪوﻟﻴﻦ tech_newsو general_newsوﺑ ﺬﻟﻚ ی ﺘﻢ ﺗﻔﺮیﻐ ﻪ
اﺳﺘﻌﺪادًا ﻷي ﻋﻤﻠﻴﺔ ﺑﺤﺚ ﺟﺪیﺪة
إﻟﻴﻜﻢ ﺹﻮرة اﻟﻜﻮد ﻓﻲ ﺣﺎﻟﺔ اﻟﺒﺤﺚ ﻓﻲ اﻟﺠﺪول tech_news
اﻟﺠﺰء اﻷول
اﻟﺠﺰء اﻟﺜﺎﻥﻲ
واﻟﻴﻜﻢ اﻟﻜﻮد
<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>
اﻟﺠﺰء اﻷول
اﻟﺠﺰء اﻟﺜﺎﻥﻲ
واﻟﻴﻜﻢ اﻟﻜﻮد
<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>
وﻋﻨﺪ رؤیﺔ اﻟﺠﺪول tempﻥﺠﺪ أﻥﻪ ﺑﻪ ﺳﺠﻞ واﺡﺪ ﻓﻘﻂ ﻣﻦ اﻟﺴﺠﻼت اﻷرﺑﻊ
اﻟﺠﺰء اﻷول
اﻟﺠﺰء اﻟﺜﺎﻥﻲ
اﻟﺠﺰء اﻟﺜﺎﻟﺚ
اﻟﺠﺰء اﻟﺮاﺑﻊ
<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"
CurrentPage=Request.QueryString("Page")
RS.CursorLocation=adUseClient
RS.PageSize =2
'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
Response.Write("<A href='" & Url & "1'>" & p_FirstPage & " </A> " )
Response.Write("<A href='" & Url & CurrentPage-1 & "'>" & p_PrevPage & "</A>
" )
Else
Response.Write( p_FirstPage & " " )
Response.Write( p_PrevPage & " " )
End if
if CurrentPage<>TotalPages then
Response.Write("<A href='" & Url & CurrentPage+1 & "'>" & p_NextPage & "</A>
" )
Response.Write("<A href='" & Url & TotalPages & "'>" & p_LastPage & "</A>
" )
else
Response.Write(p_NextPage & " " )
Response.Write(p_LastPage & " " )
end if
Response.Write("</div>")
end if%>
<!--#include file="pagefooter.asp" -->
</body></html>
: ﻡﻠﺤﻮﻇﺔ ﻡﻬﻤﺔ
ﻋﻨﺪ اﻟﺒﺤﺚ ﻋﻦ اﻟﻜﻠﻤﺔ )آﻞ( وهﻲ ﺗﺘﻜﺮر أرﺑﻌﺔ ﻣﺮات ﻓﻲ اﻟﺠﺪوﻟﻴﻦ tech_newsو general_news
اﻟﺼﻔﺔ اﻟﺜﺎﻥﻴﺔ
أﻣﺎ ﻓﻲ ﺡﺎﻟﺔ اﻟﺒﺤﺚ ﻋﻦ آﻠﻤﺔ ﻏﻴﺮ ﻣﻮﺟﻮدة ﺑﺎﻟﺠﺪوﻟﻴﻦ tech_newsو general_newsوﻟﻴﻜﻦ اﻟﺒﺤﺚ ﻋﻦ آﻠﻤﺔ ) اﺳﻤﺎﻋﻴﻞ (
اﻟﻤﺸﻜﻠﺔ اﻟﺜﺎﻟﺜﺔ
یﻜ ﻮنtemp وهﻰ ﺗﺘﻠﺨﺺ ﻓﻲ ﻇﻬﻮر رﺳﺎﻟﺔ اﻟﺨﻄﺄ اﻟﺴ ﺎﺑﻘﺔ ﻓ ﻲ ﺡﺎﻟ ﺔ ﻋ ﺪم وﺟ ﻮد ﻥﺘ ﺎﺉﺞ ﻟﻠﺒﺤ ﺚ ﺑﻤﻌﻨ ﻰ أن اﻟﺠ ﺪول
ﻓﺎرغ وﻟﺤﻞ هﺬﻩ اﻟﻤﺸﻜﻠﺔ یﻮﺟﺪ ﻃﺮیﻘﺘﻴﻦ
* * اﻟﻄﺮیﻘﺔ اﻷوﻟﻰ
ﺳﻮف أﺽﻊ ﻣﺜﺎل ﻟﻠﺤﻞ
rs.movenext
loop
else
'#ﺡﺎﻟﺔ ﻋﺪم وﺟﻮد ﺳﺠﻼت ﺗﻈﻬﺮ اﻟﺮﺳﺎﻟﺔ اﻟﺘﺎﻟﻴﺔ ﻓﻲ#'
response.write(")"ﺳﺠﻼت ﻻ یﻮﺟﺪ
end if
<%
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
%>
<%
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)
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
%>
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
%>
وﺑ ﺬﻟﻚ ﺗﻜ ﻮن اﻟﻨﺘﻴﺠ ﺔ ﻋﻨ ﺪ اﻟﺒﺤ ﺚ ﻋ ﻦ آﻠﻤ ﺔ ) اﺳ ﻤﺎﻋﻴﻞ ( اﻟﻐﻴ ﺮ ﻣﻮﺟ ﻮدة ﺑﺎﻟﺠ ﺪوﻟﻴﻦ tech_newsو
general_news
واﻟﺨﺎص ﺑﺤﺴﺎب ﻋﺪد اﻟﺴﺠﻼت اﻟﻤﻮﺟﻮدة ﺑﺎﻟﺠﺪولsearch_result.asp واﻻن اﻟﻴﻜﻢ اﻟﺠﺰء اﻟﻤﻀﺎف ﻓﻲ ﺻﻔﺤﺔ
ﻻیﺴ ﺎوي )ﺻ ﻔﺮ( ی ﺘﻢ اﻻﻥﺘﻘ ﺎل إﻟ ﻰ اﻟﺼ ﻔﺤﺔtemp ووﻇﻴﻔ ﺔ ﻓ ﻲ ﺡﺎﻟ ﺔ آ ﺎن ﻋ ﺪد اﻟﺴ ﺠﻼت ﺑﺎﻟﺠ ﺪولtemp
واﻟﺨﺎﺻ ﺔ ﺑﺘﻘﺴ ﻴﻢ اﻟﻨﺘ ﺎﺉﺞ أﻣ ﺎ ﻓ ﻲ ﺡﺎﻟ ﺔ اذا آ ﺎن ﻋ ﺪد اﻟﺴ ﺠﻼت یﺴ ﺎوي )ﺻ ﻔﺮ( ی ﺘﻢsearch_result_div.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)
%>
<%
keyword=request.querystring("keyword")
%>
<%
' tech_news أواﻣﺮ اﻟﺒﺤﺚ ﻓﻲ ﺟﺪول اﻷﺥﺒﺎر اﻟﺘﻘﻨﻴﺔ
SelectTechSQL="select * from tech_news where subject like '%"&keyword&"%' or body like
'%"&keyword&"%' "
set rsTech=connectionToDatabase.execute(SelectTechSQL)
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
%>
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
%>
general_news وtech_news وﺑﺬﻟﻚ ﺗﻜﻮن اﻟﻨﺘﻴﺠﺔ ﻋﻨﺪ اﻟﺒﺤﺚ ﻋﻦ آﻠﻤﺔ )اﻟﻔﺠﺮ ( اﻟﻐﻴﺮ ﻣﻮﺟﻮدة ﺑﺎﻟﺠﺪوﻟﻴﻦ
وﻣﻦ ﺙﻢ یﺘﻢ ارﺳﺎل رﺳﺎﻟﺔ ﺗﺄآﻴﺪ اﻻﺵﺘﺮاك اﻟﻰ اﻟـ E-mailاﻟﺬي آﺘﺒﺔ ﻟﺬﻟﻚ یﺠﺐ ذهﺎﺑﻚ اﻟﻰ اﻟـ E-mailاﻟﺨﺎص
ﺑﻚ ﻟﺘﻔﻌﻴﻞ اﺵﺘﺮاآﻚ
وأﻥﺼﺤﻚ ﺑﺎﻻﺡﺘﻔﺎظ ﺑﻬﺬﻩ اﻟﺮﺳﺎﻟﺔ ﻷﻥﻬﺎ ﺗﺤﺘﻮي ﻋﻠﻰ ﻣﻌﻠﻮﻣﺎت ﻣﻬﻤﺔ
هﺎ أﻥﺖ ﺑﺪاﺥﻞ ﻣﻮﻗﻌﻚ ﺳﻮف ﺗﺠﺪ ﻟﻮﺡﺔ ﺗﺤﻜﻢ ﺳﻬﻠﺔ ﺟﺪًا
ﻗﻢ ﺑﺎﺥﺘﻴﺎر ZIP Extractionﻋﻠﻰ اﻥﻪ ﻗﺪ ﺗﻢ ﺗﺤﻮیﻞ ﻣﺠﻠﺪ اﻟﻤﻮﻗﻊ ﺑﺎﻣﺘﺪاد zipآﺎﻟﺘﺎﻟﻲ news.zip
اﺥﺘﺮ اﻟﻤﺴﺎر اﻟﻤﻮﺟﻮد ﺑﻪ ﻣﺠﻠﺪ ﻣﻮﻗﻌﻚ اﻟﻤﻀﻐﻮط ﺑﺎﻣﺘﺪاد zipﺙﻢ اﺽﻐﻂ ﻋﻠﻰ Upload
ﺳﻮف ﺗﺠ ﺪ اﻟﻤﺠﻠ ﺪ ﻗ ﺪ ﻇﻬ ﺮ اﺽ ﻐﻂ ﻋﻠ ﻰ راﺑ ﻂ اﻟﻤﺠﻠ ﺪ newsﻟﺘﻈﻬ ﺮ ﺟﻤﻴ ﻊ اﻟﻤﻠﻔ ﺎت واﻟﻤﺠﻠ ﺪات اﻟﻤﻮﺟ ﻮدة ﺗﺤ ﺖ
اﻟﻤﺠﻠﺪ news
هﺬﻩ اﻟﺮﺳﺎﻟﺔ ﻣﻔﺎدهﺎ أﻥﻪ ﻻ ﺗﺴﺘﻄﻴﻊ اﻟﻮﺻﻮل إﻟﻰ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت ]هﺬﻩ اﻟﺮﺳﺎﻟﺔ یﺠ ﺐ اﻟﻮﻗ ﻮف ﻋﻨﻬ ﺎ ﻗﻠ ﻴﻼ ﻻن اﻟﻤﻮﻗ ﻊ
[ ﻗﺒﻞ اﻟﺮﻓﻊ اذا ﺗﻮﺻﻴﻒ اﺗﺼﺎل ﻗﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت ﻏﻴﺮ ﻣﻘﺒﻮل ﻟﻤﻮﻗﻊ اﻻﺳﺘﻀﺎﻓﺔ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
<%Dim Conn, RS
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.
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
DSN ﻟﺬﻟﻚ ﺳﻮف یﺘﻢ ﺗﻐﻴﻴﺮ آﻮد اﻻﺗﺼﺎل ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت ﻓﻲ ﺟﻤﻴﻊ ﺻﻔﺤﺎت اﻟﻤﻮﻗﻊ ﻣﻦ
connectionToDatabase.Open "DSN=my_data_base"
DSN-Less اﻟﻰ
اﻻن ﻗﻢ ﺑﺮﻓﻊ اﻟﻤﻮﻗﻊ ﻣﺮة أﺥﺮى ﺑﻌﺪ ﺡﺬف ﻣﺠﻠﺪ اﻟﻤﻮﻗﻊ اﻟﻘﺪیﻢ
اﺽﻐﻂ ﻋﻠﻰ اﻟﺮاﺑﻂ )ﺳﺠﻞ اﻟﺰوار( ﺳﻮف ﺗﺠﺪ اﻟﺼﻔﺤﺔ اﻟﺘﺎﻟﻴﺔ ﻗﺪ ﺗﻢ اﺻﻼح اﻻﺗﺼﺎل ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت ﺑﺎﺳﺘﺨﺪام DSL-
Less
وﻟﻜﻦ ﺗﻮﺟﺪ ﻣﺸﻜﻠﺔ أﺥﺮى اﻟﻜﻠﻤﺎت اﻟﻌﺮﺑﻴﺔ اﻟﻤﻮﺟﻮدة ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت وﺗﻈﻬﺮ ﻋﻠﻰ ﺵﻜﻞ ؟؟؟؟؟؟؟
وﻟﺤﻞ هﺬﻩ اﻟﻤﺸﻜﻠﺔ ﻻ یﺼﺢ وﺽﻊ آﻠﻤﺎت ﻋﺮﺑﻴﺔ ﺑﻘﺎﻋﺪة اﻟﺒﻴﺎﻥﺎت وﻟﻜﻦ یﺼﺢ ان ﺗﻀﻊ اﻟﻜﻠﻤﺎت اﻟﻌﺮﺑﻴﺔ ﻣﻦ ﺥﻼل
اﻟﻤﻮﻗﻊ ﻥﻔﺴﻪ
اﻵن ﻗﻢ ﺑﺠﻤﻴﻊ ﻣﻬﺎﻣﻚ ﻓﻲ ﻣﻮﻗﻌﻚ اﻟﺠﺪیﺪ
اﺡﺬف وأﺽﻒ آﻤﺎ ﺗﺸﺎء
ASPهﻲ ﺗﻘﻨﻴﺔ ﻃﻮرﺗﻬﺎ ﺵﺮآﺔ ﻣﺎیﻜﺮوﺳﻮﻓﺖ ﻹﻥﺸﺎء ﺻﻔﺤﺎت وﺗﻄﺒﻴﻘﺎت وی ﺐ ﻗﻮی ﺔ و دیﻨﺎﻣﻴﻜﻴ ﺔ.
ﻹﻥﺸﺎء هﺬﻩ اﻟﺼﻔﺤﺎت یﻤﻜﻨﻚ إﺽﺎﻓﺔ أواﻣﺮ HTMLأو أﺡﺪ ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ اﻟﻨﺼﻴﺔ Scripting
Languageﻣﺜﻞ VBScriptأو ، JScriptویﻤﻜﻨﻚ أیﻀًﺎ رﺑﻂ هﺬﻩ اﻟﺼ ﻔﺤﺎت ﺑﻘﺎﻋ ﺪة ﺑﻴﺎﻥ ﺎت
ﻣﺜﻞ AccessأوSQL Server.
~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~
ﻡﻌﺎﻟﺠﺔ ﺹﻔﺤﺎتASP:
واﻵن ﺑﻌﺪ أن ﺗﻌﺮﻓﺖ ﻋﻠﻰ ﻃﺮیﻘﺔ ﻣﻌﺎﻟﺠﺔ ﺻ ﻔﺤﺎت ASPوأن ﻣﻌﺎﻟﺠ ﺔ ه ﺬﻩ اﻟﺼ ﻔﺤﺎت ﻻ ﺗ ﺘﻢ
ﻓﻲ ﺟﻬﺎز اﻟﻤﺴﺘﺨﺪم وإﻥﻤﺎ ﻓﻲ اﻟﺠﻬﺎز اﻟﺨ ﺎدم ﻓﺈﻥ ﻚ ﻗ ﺪ أدرآ ﺖ أﻥ ﻚ ﺑﺤﺎﺟ ﺔ ﻹرﺳ ﺎل اﻟﺼ ﻔﺤﺎت اﻟﺘ ﻲ
ﺗﻨﺸﺌﻬﺎ ﻟﻠﺠﻬﺎز اﻟﺨﺎدم ﺡﺘﻰ ﺗﺘﻢ ﻣﻌﺎﻟﺠﺘﻬﺎ ﺑﻮاﺳﻄﺔ ﺑﺮاﻣﺞ ﻣﻌﻴﻨﺔ !!
ﻓﺎﻟﺴﺆال اﻟﺬي یﻄﺮح ﻥﻔﺴﻪ ،هﻞ ﻥﺤﺘﺎج ﻟﺠﻬﺎز ﺥﺎدم آﻲ ﻥﻌﺎﻟﺞ ﺻﻔﺤﺎت ASPاﻟﺘﻲ ﻥﻨﺸﺌﻬﺎ ؟ !!
ﺑﺎﻟﻄﺒﻊ ،ﻻ ! ﻓﻜﻞ ﻣﺎ ﻥﺤﺘﺎﺟﻪ هﻮ ﺑﺮاﻣﺞ ﺥﺎدم اﻟﻮیﺐ اﻟﺘﻲ ﺗﻌ ﺎﻟﺞ ه ﺬﻩ اﻟﺼ ﻔﺤﺎت ،وﺑﺘﻨﺼ ﻴﺐ ه ﺬﻩ
اﻟﺒﺮاﻣﺞ ﻥﻜﻮن ﻗﺪ ﺟﻌﻠﻨﺎ ﻣﻦ أﺟﻬﺰﺗﻨﺎ ﺥﺎدم وﻣﺴﺘﺨﺪم ﻓﻲ ﻥﻔﺲ اﻟﻮﻗﺖ.
~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~
أو ﺑﺮﻥﺎﻣﺞ IISوهﻮ اﺥﺘﺼﺎر ﻟـ Internet Information Server.ﻣﻌﻠﻮﻣﺎت ﺥﺪﻣﺎت اﻻﻥﺘﺮﻥﺖ
یﻌﺘﻤﺪ اﺥﺘﻴﺎر أﺡﺪ هﺬیﻦ اﻟﺒﺮﻥﺎﻣﺠﻴﻦ ﻋﻠﻰ ﻥﻈﺎم اﻟﺘﺸﻐﻴﻞ ﻟﺪیﻚ آﻤﺎ هﻮ ﻣﻮﺽﺢ ﻓﻲ اﻟﺠﺪول اﻟﺘﺎﻟﻲ :
IIS 5.0هﻲ اﻟﻨﺴﺨﺔ اﻟﻤﻨﺎﺳﺒﺔ ﻟـ Win 2000واﻟﺘﻲ ﺗﻜﻮن ﺟ ﺰء ﻣ ﻦ ﻥﻈ ﺎم اﻟﺘﺸ ﻐﻴﻞ ،ﻓ ﻼ ﺡﺎﺟ ﺔ
ﻟﺘﺤﻤﻴﻠﻬﺎ ،وﻟﻜﻦ إن ﻟﻢ ﺗﻜﻮن ﻣﻮﺟ ﻮدة ﻓ ﻴﻤﻜﻦ ﺗﺜﺒﻴﺘﻬ ﺎ ﻣ ﻦ Windows 2000 CD-ROM.وآ ﺬﻟﻚ
Win XP
ﻣﻦ ﻟﻮﺡﺔ اﻟ ﺘﺤﻜﻢ > (control panel) ----إﺽ ﺎﻓﺔ وإزاﻟ ﺔ ﺑ ﺮاﻣﺞ )(Add or Remove Programs
آﻤﺎ هﻮ ﻣﻮﺽﺢ ﺑﺎﻟﺸﻜﻞ:
ﺑﺎﻟﻨﻘﺮ ﻋﻠﻰ أیﻘﻮﻥﺔ Internet Information Serviceﺳﻴﻔﺘﺢ ﻣﻌﻚ ﺑﺮﻥﺎﻣﺞ IISآﻤﺎ یﺒﺪو ﻓﻲ
اﻟﺼﻮرة :
ﺧﻄﺄ!
ﺧﻄﺄ!
ﺧﻄﺄ!
ﺧﻄﺄ!
اﻟﺨﻴﺎران Read and Run scriptsﺗﻜﻮن ﻥﺸﻄﺔ ﻓﻲ اﻟﻮﺽﻊ اﻻﻓﺘﺮاﺽﻲ ،ﻓﺎﻟﺨﻴﺎر Readیﻤﻜ ﻦ
اﻟﻤﺴ ﺘﺨﺪﻣﻴﻦ ﻣ ﻦ ﻋ ﺮض اﻟﺼ ﻔﺤﺔ ،و Run scriptیﻤﻜ ﻨﻬﻢ ﻣ ﻦ ﺗﺸ ﻐﻴﻞ ﻣﻠﻔ ﺎت اﻷواﻣ ﺮ اﻟﻨﺼ ﻴﺔ
اﻟﻤﻮﺟ ﻮدة ﺑﺎﻟﺼ ﻔﺤﺔ ﻣﺜ ﻞ أواﻣ ﺮ ، ASPأﻣ ﺎ اﻟﺨﻴ ﺎر Executeﻓﺈﻥ ﻪ یﺸ ﻐﻞ اﻟﺒ ﺮاﻣﺞ اﻟﻤﻮﺟ ﻮدة ﻓ ﻲ
اﻟﻤﺠﻠ ﺪ ﻗ ﺪ یﺴ ﺒﺐ ﺗﻨﺸ ﻴﻄﻪ ﻣﺸ ﺎآﻞ أﻣﻨﻴ ﺔ ﻟ ﺬا ﻻ یﻨﺸ ﻂ ﻋ ﺎدة !أﻣ ﺎ اﻟﺨﻴ ﺎر writeﻹﻥﺸ ﺎء ﻣﻠﻔ ﺎت ﻓ ﻲ
اﻟﻤﺠﻠﺪ ،واﻟﺨﻴﺎر اﻷﺥﻴﺮ Browseﻋﻨﺪﻣﺎ یﺤﺪد اﻟﻤﺴﺘﺨﺪم اﺳ ﻢ اﻟﻤﺠﻠ ﺪ وﻻ یﺤ ﺪد اﺳ ﻢ اﻟﺼ ﻔﺤﺔ اﻟﺘ ﻲ
یﺮیﺪهﺎ یﻤﻜﻨﻪ هﺬا اﻟﺨﻴﺎر ﻣﻦ ﻋﺮض ﺟﻤﻴﻊ اﻟﺼﻔﺤﺎت اﻟﻤﻮﺟﻮدة ﺗﺤ ﺖ ه ﺬا اﻟﻤﺠﻠ ﺪ ! أیﻀ ًﺎ ﻻ یﺠ ﺐ
ﺗﻨﺸﻴﻂ هﺬا اﻟﺨﻴﺎر ! ﻷﻥﻪ رﺑﻤﺎ ﺗﻮﺟﺪ ﺻﻔﺤﺎت ﻻ ﺗﺮیﺪ اﻟﻤﺴﺘﺨﺪم أن یﺼﻞ إﻟﻴﻬﺎ أو یﻌﻠﻢ ﺑﻮﺟﻮدهﺎ
ﻡﻠﺤﻮﻇ ﺔ :ﻟ ﻴﺲ ﻣ ﻦ اﻟﻀ ﺮوري أن یﻜ ﻮن اﻻﺥﺘﺼ ﺎر ﻣﺨﺘﻠﻔ ًﺎ ﻋ ﻦ اﻻﺳ ﻢ اﻷﺳﺎﺳ ﻲ ﻟﻠﻤﺠﻠ ﺪ ،ﻣ ﻦ
اﻟﻤﻤﻜﻦ أن یﻜﻮن ﻥﻔ ﺲ اﻻﺳ ﻢ ،ﻣ ﻊ اﻟﺘﻨﺒﻴ ﻪ ﻋﻠ ﻰ أن اﻟﺘﻌﺎﻣ ﻞ ﻣ ﻊ ه ﺬا اﻟﻤﺠﻠ ﺪ ﺳ ﻴﻜﻮن ﺑﺎﻻﺥﺘﺼ ﺎر ﻻ
ﺑﺎﻻﺳﻢ اﻟﺤﻘﻴﻘﻲ ﻟﻠﻤﺠﻠﺪ
ﺧﻄﺄ!
ﻟﺴ ﺖ ﺑﺤﺎﺟ ﺔ ﻟﺠﻌ ﻞ ه ﺬا اﻟﻤﺠﻠ ﺪ آﻤﺠﻠ ﺪ وهﻤ ﻲ ﻥﻈ ﺮًا ﻷﻥ ﻪ یﻌﺘﺒ ﺮ ﻣﺠﻠ ﺪ ﻓﺮﻋ ﻲ ﺗﺤ ﺖ ﻣﺠﻠ ﺪ اﻟﺒﺪای ﺔ
اﻻﻓﺘﺮاﺽﻲ
~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~
ﺑﻌﺪ أن أﻥﺸﺌﻨﺎ اﻟﻤﺠﻠﺪ ASPTESTﻓﺈﻥﻨﺎ ﺳﻨﺨﺘﺒﺮ ﻋﻤﻞ اﻟﺒﺮﻥﺎﻣﺞ اﻟﺬي ﺙﺒﺘﻨﺎﻩ ﻋﻠﻰ أﺟﻬﺰﺗﻨﺎ وذﻟﻚ
ﺑﻜﺘﺎﺑﺔ آﻮد 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ﺳﻮف ﺗﻈﻬﺮ ﻟﻚ هﺬﻩ اﻟﻨﺎﻓﺬة