Professional Documents
Culture Documents
Null-7 - التعامـل مـع النماذج
Null-7 - التعامـل مـع النماذج
Null-7 - التعامـل مـع النماذج
PHP
Mohammed 1
Outlines
ﺑﺮوﺗﻮﻛﻮل HTTP
ﻣﻌﺎﻟﺠﺔ اﻟﻨﻤﺎذج وإرﺳﺎل اﻟﻘﻴﻢ
Get, Post
ﺗﺨﺰﻳﻦ اﻟﻘﻴﻢ ﻓﻲ اﻟﻤﺘﻐﻴﺮات
2
ﺑﺮوﺗﻮﻛﻮل اﻟـ HTTP
ﻳﺘﻢ ﺗﺮاﺳﻞ اﻟﻤﻌﻠﻮﻣﺎت ﻋﻦ ﻃﺮﻳﻖ ﻫﺬا اﻟﺒﺮوﺗﻮﻛﻮل
ﻋﻨﺪﻣﺎ ﺗﻘﻮم ﺑﻌﻤﻠﻴﺔ ﻃﻠﺐ ﻟﺼﻔﺤﺔ ﻣﻦ اﻟﺴﻴﺮﻓﺮ ﻫﻨﺎك أﻣﻮر إﺿﺎﻓﻴﺔ ﺗﺮﺳﻞ ﻣﻊ
ﻋﻤﻠﻴﺔ اﻟﻄﻠﺐ http requestﻏﻴﺮ اﻟـ URLوﻫﻲ ﺗﺮﺳﻞ ﻛﺠﺰء ﻣﻦ http
. request
ﻧﻔﺲ اﻟﻤﻮﺿﻮع ﻣﻊ ال http responseﻫﻨﺎك أﻣﻮر أﺧﺮى ﺗﺼﻞ ﻣﻌﻪ ﻛﺠﺰء
ﻣﻨﻪ .
ً
ﻣﻌﻴﻨﺎ ﺳﻮاء ﻛﺎﻧﺖ Requestأو ً
ﺗﻨﺴﻴﻘﺎ ﻛﻞ رﺳﺎﺋﻞ اﻟـ HTTPﺗﺄﺧﺬ
. Responseﻧﺴﺘﻄﻴﻊ أن ﻧﻘﻮم ﺑﺘﻘﺴﻴﻢ ﻫﺬا اﻟﺘﻨﺴﻴﻖ إﻟﻰ ﺛﻼﺛﺔ أﻗﺴﺎم :
Request/response line
Http header
Http body
3
Http Request
ﻳﺠﺐ أن ﻳﺤﺘﻮي اﻟـ requestﻋﻠﻰ اﻷﻗﻞ اﻟـ) request lineﺳﻄﺮ اﻟﻄﻠﺐ(
واﻟـ. HOST
ﻳﺮﺳﻞ ﻣﺴﺘﻌﺮض اﻻﻧﺘﺮﻧﺖ ﻃﻠﺒﻴﺔ ) (HTTP requestإﻟﻰ ﻣﻠﻘﻢ اﻟﻮﻳﺐ ﺗﺤﺘﻮي
ﻋﻠﻰ اﻟﺘﺎﻟﻲ :
The Request Line
اﻟﺴﻄﺮ اﻷول ﻣﻦ ﻛﻞ ﻃﻠﺒﻴﺔ ) (http requestﻫﻲ Request Lineاﻟﺬي ﻳﺤﺘﻮي
ﻋﻠﻰ ﺛﻼﺛﺔ أﻧﻮاع ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎت :
أ -أﻣﺮ HTTPوﻫﻮ ﻣﺎﻳﻌﻨﻲ ﺑـ . method
ب -اﻟﻤﺴﺎر ﻣﻦ اﻟﺴﻴﺮﻓﺮ إﻟﻰ اﻟﻤﺼﺎدر اﻟﻤﻄﻠﻮﺑﺔ )ﺻﻔﺤﺎت اﻻﻧﺘﺮﻧﺖ ( اﻟﻤﻄﻠﻮﺑﺔ ﻣﻦ
ﻗﺒﻞ اﻟﻌﻤﻴﻞ )اﻟﻤﺴﺘﻌﺮض(
ﺟـ -إﺻﺪارة اﻟـ. HTTP
ﻛﻤﺜﺎل ﻋﻠﻰ اﻟـ Request Lineأﻧﻈﺮ إﻟﻰ اﻟﺴﻄﺮ اﻟﺘﺎﻟﻰ :
GET /testpage.htm HTTP/1.1
4
Http Request
HTTP Header
اﻟﺒﺖ اﻟﺜﺎﻧﻲ ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎت ﻫﻮ اﻟﻬﻴﺪر . HTTP Headerاﻟﺬي
ﻳﺤﺘﻮي ﻋﻠﻰ ﺗﻔﺎﺻﻴﻞ أو وﺛﺎﺋﻖ ﻋﻦ اﻟﻌﻤﻴﻞ ﻣﺜﻞ ﻧﻮع اﻟﻤﺘﺼﻔﺢ
)ﻧﺘﺴﻜﻴﺐ أو إﻛﺴﺒﻠﻮر( اﻟﺬي ﻗﺎم ﺑﻄﻠﺐ اﻟﺼﻔﺤﺔ واﻟﻮﻗﺖ
واﻟﺘﺎرﻳﺦ واﻹﻋﺪادات اﻟﻌﺎﻣﺔ
)User –Agent :Iexploer (win98;.........
HTTP Body
إذا ﺗﻢ اﺳﺘﺨﺪام اﻷﻣﺮ POSTﻓﻲ اﻟـHTTP Request Line
ﻋﻨﺪﻫﺎ ﻳﻘﻮم اﻟـ HTTPﺑﻄﻠﺐ اﻟﻤﻌﻠﻮﻣﺎت اﻟﺘﻲ ارﺳﻠﺖ ﻓﻲ
اﻟـ bodyاﻟﻰ اﻟﺴﻴﺮﻓﺮ .
5
Http Response
ﻳﺮﺳﻞ ﻣﻦ اﻟﺴﻴﺮﻓﺮ إﻟﻰ اﻟﻤﺴﺘﻌﺮض وﻳﺤﺘﻮي ﻋﻠﻰ ﺛﻼﺛﺔ
: أﺷﻴﺎء
1- the Response Line
2 - http header
3 - Http Body
6
Http Response
Response Line
ﻳﺤﺘﻮي ﻓﻘﻂ ﻋﻠﻰ ﻧﻮﻋﻴﻦ ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎت
- 1رﻗﻢ إﺻﺪارة اﻟـ. HTTP
ً
ﻧﺎﺟﺤﺎ أم ﻓﺎﺷﻞ . - 2ﺷﻔﺮه أو ﻛﻮد اﻟـ http requestاﻟﺘﻲ ﺗﻘﻮم ﺑﺘﺤﺪﻳﺪ إذا ﻛﺎن اﻟـrequest
ﻣﺜﺎل :
HTTP/1.1 200 OK
HTTP Header
وﻳﺤﺘﻮي ﻋﻠﻰ ﻣﻌﻠﻮﻣﺎت ﻋﻦ اﻟﺴﻴﺮﻓﺮ اﻟﺬي ﻋﺎﻟﺞ اﻟﻄﻠﺐ
Date: Sat; 5 st Nov 2021, 08:12:23 GMT -general header
Server : Apache/1.3.12 (Unix) (SUSE/Linux) PHP/7.0.2 -the response
Last-modified: Sat, 5 Nov 2021, 08:08:03 GMT -Entity Header
Http Body
اذا ﺗﻢ ﻣﻌﺎﻟﺠﺔ اﻟﻄﻠﺐ ﺑﻨﺠﺎح ،ﻓﺈن اﻟـ HTTP response Bodyﻳﺤﺘﻮي ﻋﻠﻰ ﻛﻮد اﻟـ HTMLوﻳﻘﻮم
ﻣﺴﺘﻌﺮض اﻻﻧﺘﺮﻧﺖ ﺑﺘﻔﺴﻴﺮﻫﺎ وﺗﺤﻮﻳﻠﻬﺎ إﻟﻰ اﻟﺼﻔﺤﺔ اﻟﻨﻬﺎﺋﻴﺔ اﻟﺘﻲ ﺗﺮاﻫﺎ .
7
ﻣﻔﻬﻮم اﻟـ parsingو اﻟـExecution
ﻣﻤﻜﻦ أن ﻧﻘﺴﻢ ﻋﻤﻠﻴﺔ اﻟﺘﺮﺟﻤﺔ اﻟﺬي ﻳﻘﻮم ﺑﻬﺎ ﺳﻴﺮﻓﺮ php
إﻟﻰ ﻗﺴﻤﻴﻦ أو ﻋﻤﻠﻴﺘﻴﻦ :
اﻟﻌﻤﻠﻴﺔ اﻷوﻟﻰ :ﻫﻲ أن اﻟﺴﻴﺮﻓﺮ ﻳﻘﻮم أوﻻ ﺑﻔﺤﺺ ﻗﻮاﻋﺪ
اﻟﻠﻐﺔ وﻫﺬا ﻻﻳﻀﻤﻦ أن اﻟﺴﻜﺮﺑﺖ ﺻﺤﻴﺢ ﻣﺎﺋﺔ ﺑﺎﻟﻤﺎﺋﺔ وﻟﻜﻨﻪ
ﺗﺪﻗﻴﻖ ﻓﻲ اﻷواﻣﺮ وﻗﻮاﻋﺪ اﻟﻠﻐﺔ وﻫﺬا ﻣﺎﻳﺴﻤﻮﻧﻪ
ﺑﺎﻟـParsing
8
اﻟﻨﻤﺎذج
9
اﻟﻨﻤﺎذج
اﻟﻨﻤﺎذج ﻓﻲ اﻟﻮﻳﺐ أو ﺻﻔﺤﺎت اﻻﻧﺘﺮﻧﺖ ﻋﺒﺎرة ﻋﻦ
اﺳﺘﻤﺎرات ﺗﻘﻮم ﺑﺘﻌﺒﺌﺘﻬﺎ ﺛﻢ ﻋﻨﺪ إرﺳﺎﻟﻬﺎ ﻟﺨﺎدم اﻟﻮﻳﺐ
)اﻟﺴﻴﺮﻓﺮ( ﻳﺘﻠﻘﺎﻫﺎ ﺑﺮﻧﺎﻣﺞ ﻳﻘﻮم ﺑﺈﺟﺮاء اﻟﻌﻤﻠﻴﺎت ﻋﻠﻴﻬﺎ ﻣﺜﻞ
JavaScript، php
ً
ﻣﺴﺒﻘﺎ ﻋﻦ ﻃﺮﻳﻖ HTML ﺗﻢ دراﺳﻪ اﻟﻨﻤﺎذج ﺑﺎﻟﺘﻔﺼﻴﻞ
10
اﻟﻨﻤﺎذج
ﻋﻨﺪ ﻋﻤﻞ ﻧﻤﻮذج ﻛﺎن ﻳﻜﻮن ﻫﺬا اﻟﻨﻤﻮذج ﻟﻠﺘﺴﺠﻴﻞ ﻓﻲ اﺣﺪ
اﻟﻤﻮاﻗﻊ او ﻟﻌﻤﻠﻴﻪ ﺷﺮاء ﻣﻦ ﻣﻮاﻗﻊ اﻟﺒﻴﻊ ﻋﻠﻰ اﻻﻧﺘﺮﻧﺖ،
ﻓﺈﻧﻨﺎ ﺑﺤﺎﺟﻪ اﻻ ﻣﻠﻲ ﻧﻤﺎذج،ﻳﺘﻢ ﺗﺨﺰﻳﻦ ﻫﺬه اﻟﻘﻴﻢ ﻓﻲ
اﻟﻤﺘﻐﻴﺮات اﻟﺘﻲ ﻳﺘﻢ ﻛﺘﺎﺑﺘﻬﺎ ﻓﻲ اﻟﺨﺎﺻﻴﻪ ،nameوﻳﺘﻢ
ارﺳﺎﻟﻬﺎ ﻋﻨﺪ ﺿﻐﻂ زر -ارﺳﺎل اﻟﺒﻴﺎﻧﺎت ،submitإﻟﻰ
اﻟﺼﻔﺤﺔ اﻟﺘﻲ ﺳﻮف ﺗﻘﻮم ﺑﻤﻌﺎﻟﺠﺔ ﻫﺬه اﻟﺒﻴﺎﻧﺎت )واﻟﺘﻲ
ﻳﺘﻢ ﺗﺤﺪﻳﺪﻫﺎ ﻓﻲ اﻟﺨﺎﺻﻴﺔ ، (actionوإﺟﺮاء اﻟﻌﻤﻠﻴﺎت
ﻋﻠﻴﻬﺎ ﻣﺜﻞ ﺗﺨﺰﻳﻨﻬﺎ ﻣﺜ ً
ﻼ ﻓﻲ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت أو ارﺳﺎﻟﻬﺎ إﻟﻰ
اﻟﺒﺮﻳﺪ اﻻﻟﻜﺘﺮوﻧﻲ وذﻟﻚ ﻋﻦ ﻃﺮﻳﻖ ال php
11
ﺧﺼﺎﺋﺺ اﻟﻨﻤﺎذج
ﻳﺠﻤﻊ اﻟﻨﻤﻮذج ﺟﻤﻴﻊ ﺧﺼﺎﺋﺺ اﻟﻤﻀﻴﻒ ﻟﻜﻨﻨﺎ ﻫﻨﺎ ﺳﻨﺘﻄﺮق
اﻟﻰ اﺛﻨﻴﻦ ﻣﻨﻬﻤﺎ Action, Method
12
ACTION
وﻇﻴﻔﺔ ﻫﺬه اﻟﺨﺎﺻﻴﺔ أن ﺗﺨﺒﺮ اﻟﺴﻴﺮﻓﺮ ﻣﻜﺎن اﻟﺼﻔﺤﺔ
اﻟﺘﻲ ﻳﻘﻮم ﺑﺎرﺳﺎل ﻣﻌﻠﻮﻣﺎت اﻟﻨﻤﻮذج إﻟﻴﻬﺎ أوﻋﻨﻮاﻧﻬﺎ أﻳﺎ
ﻛﺎن ﻧﻮﻋﻬﺎ ،وﻓﻲ دروﺳﻨﺎ ﺳﺘﻜﻮن ﻫﺬه اﻟﺼﻔﺤﻪ إﺣﺪى
اﻟﺼﻔﺤﺎت اﻟﻤﺒﻨﻴﺔ ب php
13
METHOD
ﻫﺬه اﻟﺨﺎﺻﻴﺔ ﺗﻘﻮم ﺑﺈﺧﺒﺎر اﻟﻨﻤﻮذج ﻃﺮﻳﻘﺔ ارﺳﺎل
اﻟﻤﻌﻠﻮﻣﺎت اﻟﻰ اﻟﺼﻔﺤﺔ اﻟﻬﺪف وﻓﻲ اﻟﻮاﻗﻊ ﻫﻨﺎك
ﻃﺮﻳﻘﻴﺘﻴﻦ ﻣﺸﻬﻮرﺗﻴﻦ وﻣﻌﺮوﻓﺘﻴﻦ ﻻرﺳﺎل اﻟﻤﻌﻠﻮﻣﺎت
ﻫﻤﺎget, Post
14
Get
ﺗﻘﻮم ﻫﺬه اﻟﺨﺎﺻﻴﺔ ﺑﺈﺧﺒﺎر ﻣﺴﺘﻌﺮض اﻻﻧﺘﺮﻧﺖ ﺑﺄن ﻳﻘﻮم
ﺑﺈﺿﺎﻓﺔ اﻟﻤﻌﻠﻮﻣﺎت اﻟﺘﻲ ﺗﻤﺖ ﻛﺘﺎﺑﺘﻬﺎ ﻓﻲ اﻟﻨﻤﻮذج إﻟﻰ
ﻣﺘﺼﻔﺢ اﻻﻧﺘﺮﻧﺖ وﺗﻜﻮن ﻃﺮﻳﻘﺔ ﻛﺘﺎﺑﺘﻪ ك اﻟﺘﺎﻟﻲ :
-١ﻛﺘﺎﺑﻪ ﻋﻨﻮان اﻟﺼﻔﺤﻪ اﻟﻤﺼﺪر .
-٢اﺗﺒﺎﻋﻬﺎ ﺑﻌﻼﻣﺔ اﺳﺘﻔﻬﺎم .
-٣ﻛﺘﺎﺑﺔ اﻟﻌﻨﺎوﻳﻦ واﻟﻘﻴﻢ .
http://localhost/example.html?name=value
15
Get
وﻳﻤﻜﻦ أن ﻳﺤﺘﻮي ﻋﻨﻮان اﻟﺼﻔﺤﺔ ﻋﻠﻰ أﻛﺜﺮ ﻣﻦ ﻋﻨﻮان
)(nameواﻛﺜﺮ ﻣﻦ ﻗﻴﻤﺔ ) (valueوﻳﻘﻮم ﺑﺎﻟﺘﻌﺮﻳﻒ ﻋﻨﻬﻤﺎ ﺑﺎﺳﺘﺨﺪام
اﻟﻤﻌﺎﻣﻞ )&( .
http://localhost/exam.html?id=1&name=mohamed
17
POST
ﻓﻲ اﻟﻮاﻗﻊ وﻇﻴﻔﺘﻬﺎ ﻫﻲ ﻧﻔﺲ وﻇﻴﻔﺔ اﻟـ getوﻟﻜﻨﻬﺎ
ﻻﺗﺮﺳﻞ اﻟﻤﻌﻠﻮﻣﺎت ﻓﻲ ﻋﻨﻮان ﺻﻔﺤﺔ اﻻﻧﺘﺮﻧﺖ ﺑﻞ ﺗﻘﻮم
ﺑﻮﺿﻌﻬﺎ ﻓﻲ اﻟـ bodyاﻟﺘﺎﺑﻊ ﻟـ. http response
18
اﻳﻬﻤﺎ اﺳﺘﺨﺪم GETأم POST؟
ﻗﺪ ﻳﻜﻮن اﻟﻌﻴﺐ ﻓﻲ اﻟﺨﺎﺻﻴﺔ GETﻋﺪم ﺳﺮﻳﺔ اﻟﻤﻌﻠﻮﻣﺎت
اﻟﺘﻲ ﺗﻘﻮم ﺑﻜﺎﺗﺒﺘﻬﺎ وﻣﻦ اﻟﻤﻤﻜﻦ أن ﺗﻈﻬﺮ ﻟﻠﺸﺨﺺ اﻟﺬي ﻳﺠﻠﺲ
اﻟﻰ ﺟﻮارك ...ﺧﺎﺻﺔ ﻋﻨﺪﻣﺎ ﺗﺮﻳﺪ اﻟﺤﻔﺎظ ﻋﻠﻰ ﺳﺮﻳﺔ
ﻣﻌﻠﻮﻣﺎﺗﻚ .
أﺿﻒ إﻟﻰ ذﻟﻚ أﻧﻬﺎ ﻏﻴﺮ ﻣﻔﻴﺪة ﻓﻲ اﻟﻨﺼﻮص اﻟﻜﺒﻴﺮة اﻟﺤﺠﻢ .
20
> <html
><head
></titleﺑﺮﻧﺎﻣﺞ إرﺳﺎل ﺑﺮﻳﺪ><title
></head ﻣﺜﺎل ﻋﻤﻠﻲ ﻟﻌﻤﻠﻴﺔ إرﺳﺎل رﺳﺎﻟﻪ
><body ﻋﻦ ﻃﺮﻳﻖ php
"<form action="firstP.php ﻓﻲ اﻟﺒﺪاﻳﺔ ﻳﺘﻢ اﻧﺸﺎء ﻣﻠﻒ
>"method="post ،htmlﻓﻴﻪ ﺗﺼﻤﻴﻢ اﻟﺼﻔﺤﻪ
ﻋﻨﻮان اﻟﻤﺮﺳﻞ وﻧﻤﺎذج اﻻدﺧﺎل
><br
>"<input type="text" name = "you
><br
ﻋﻨﻮان اﻟﻤﺴﺘﻘﺒﻞ
><br
>"<input type="text" name = "to
><br
ﻣﻮﺿﻮع اﻟﺮﺳﺎﻟﺔ 21
ﻣﺜﺎل ﻋﻤﻠﻲ
<input type="text" name = "sub">
<br>
اﻟﺮﺳﺎﻟﻪ
<textarea rows=10 cols=20 name = "msg" >
</textarea>
<input type="submit" value = "إرﺳﺎل اﻟﺒﺮﻳﺪ
>"اﻻﻟﻜﺘﺮوﻧﻲ
</form>
</body>
</html>
22
ﻣﺜﺎل ﻋﻤﻠﻲ
ً
ﺛﺎﻧﻴﺎ:
ﻗﻢ ﺑﺎﻧﺸﺎء ﻣﻠﻒ اﺧﺮ وﻗﻢ ﺑﻜﺘﺎﺑﺔ اﻟﻜﻮد اﻟﺘﺎﻟﻲ وﻗﻢ ﺑﺈﻋﻄﺎءه
اﻻﺳﻢ . firstP.php
<?php
;)”mail("$to", "$sub", "$msg”,”From:$you
>?
23
Any Questions?
24
Andrew Ng