lesson php

218
www.phpvillage.com KSA ……………………………………………………………………………………………… 1

Upload: alaa-sarraah

Post on 18-Mar-2016

260 views

Category:

Documents


12 download

DESCRIPTION

lesson php full in arabic

TRANSCRIPT

Page 1: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

1

Page 2: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

PHP للغة مقدمةلغة العالم :PHPتتميز في الويب لمبرمجي األمثل الخيار جعلتها التي الخصائص من بالكثير

السهولةلغة الذاكرة PHPتعتبر إدارة تعقيدات جميع من تريحك فهي تعلما، البرمجة لغات أسهل من

في الموجودة النصوص معالجة بينية Cوتعقيدات في الموجود الضعف من والكثير جهة، منالبرمجة لغة . Perlوتصميم أخرى جهة من

لغة من PHPتمتلك كل من مأخوذة اللغة قواعد معظم جدا، وواضحة ثابته وقواعدا و CبنيةJava وPerl ،اللغة في القوة من أي فقدان دون والسالسة السهولة عالية برمجة لغة لصنع

مثل األخرى البرمجة لغات عن شيء أي تعلم كنت إذا ذلك Javaأو Cأو Visual Basicيفيدكتقوم كيف وستكتشف بسرعة، الدورة مواد تفهم بأنك دائما ستجد بتسهيل PHPحيث

ما كل فقط، لإلبداع تماما يتفرغ حتى المبرمج تواجه التي العقبات وإذالل األمور أصعببلغة تنفيذه تستطيع به . PHPتفكر

السرعةاإلصدارة PHPلغة في وخاصة البرامج، تنفيذ في العالية بسرعتها المعروفة اللغات من

مترجم كتابة تمت حيث المترجم، من منتهى PHPالرابعة في أداءا ليعطي الصفر منلغة أن كما في PHPالروعة، النواة هذه تضع أن يمكن بحيث لمترجم، كنواة أصال مصممة

مترجم تشغيل فيمكنك المختلفة، التقنيات مع لتعمل أغلفة أو قوالب كبرنامج PHPعدةCGI مترجم تركيب إمكانية هو األفضل ولكن مزود PHPمثال، وحدة IISعلى صورة في

دوال طريق عن المزود إلى تضاف مزود ISAPIإضافية على تركب منه أخرى نسخة وتوجد ، Apache مزود شفرة مع للدمج مخصصة نسخة أيضا وتوجد خارجية، وحدة صورة في أيضاApache برنامج من جزءا تصبح اآلن Apacheبحيث استخداما األكثر الطريقة وهي نفسه،

أنظمة على تعمل التي الويب مزودات أداء UNIXفي أفضل تعطي التي الطريقة وهيفي PHPلمترجم محمال سيكون فإنه وبالتالي المزود، من جزءا المترجم يصبح حيث ،

صفحات بانتظار التأخير PHPالذاكرة دون مباشرة للزوار وعرضها بترجمتها ليقومبرامج تتطلبه الذي مترجم Perl/CGIاإلضافي تشغيل يتم أن يجب حيث كل Perlمثال مع

الزيارة عند مجددا استدعاءه ثم المترجم، إغالق يتم ثم الصفحة، لترجمة للصفحة زيارةويكون بالذات، العالي الضغط ذات المواقع في كبيرا فارقا يشكل وهذا وهكذا، الثانية

. PHPاستخدام بكثير أفضل حال

المزايامترجم جميع PHPيأتي في االستخدام الجاهزة الدوال من هائل بعدد محمال لوحده

البيانات قواعد إلى الوصول دوال إلى والحسابية الرياضية المعالجة دوال من المجاالت،دوال FTPومزودات لك توفر ،PHP البيانات مزودات إلى وصوال PostgreSQLو MySQLمثال

2

Page 3: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

الدوال Oracleو MS SQLو من مجموعة أيضا وهنالك البيانات، قواعد مزودات من وغيرهاملفات بروتوكول XMLلمعالجة باستخدام بعد عن الملفات واستقبال إلرسال أخرى ودوال ،

FTP وملفات ديناميكيا الصور وإنتاج لمعالجة الدوال من مجموعة وهنالك ،Flash ،ديناميكيا . والمصفوفات النصوص بمعالجة الخاصة الدوال جميع عن ناهيك

التوافقيةنسخ من الكثير هنالك أن من الرغم فعلى سابقا، قلنا بيئة PHPكما في منها كل يعمل التي

لملفات الحقيقة بالمعالجة تقوم التي األصلية النواة في تشترك جميعا أنها إال مختلفة،PHP مترجمات جميع فإن السكريبتات، PHPلذا بتنفيذ يتعلق فيما الطريقة بنفس تتصرف

نظام على يعمل عملته الذي السكريبت كان مزود Windowsفإذا دون IISمع يعمل أن فيجبمزود إلى نقله عند تغييرات ألية جدا Apacheالحاجة البسيطة األمور بعض تظل بالطبع ،

بدأت أن منذ كتبتها التي البرامج جميع ولكن غيرها، دون المزودات بعض يوفرها التيذلك إلى إضافة تغييرات، ألي الحاجة دون المزودات جميع على تعمل اآلن إلى للغة تعلميجدا، قليلة الرابعة إلى الثالثة اإلصدارة من األساسية باللغة حدثت التي التغييرات فإن

. للمترجم التحتية البنية في كانت التغييرات وأغلب

الحمايةعلى PHPيوفر الحدود لوضع المناسبة الطرق لك يوفر ولكنه المتقدمة، المزايا من الكثير

الحجم أو مثال، البيانات بقاعدة المسموحة اإلتصاالت بعدد التحكم فيمكنك المزايا، هذهأو الميزات بعض باستخدام السماح أو المتصفح، عبر إرسالها يمكن التي للملفات األقصى

إعدادات ملف طريق عن يتم هذا كل استخدامها، . PHPإلغاء الموقع مدير به يتحكم والذي

التوسع قابليةمترجم توسعة بلغة PHPيمكنك إليه تريدها التي الميزات وإضافة أن Cبسهولة وحيث ،

على لتحصل مباشرة تريده ما تغيير تستطيع فإنك مفتوحة للمترجم البرمجية الشفرةعلى تركب التي اإلضافية الوحدات عمل أيضا ويمكنك المترجم، من تناسبك التي النسخةمترجم تطوير فريق قام قد وفي فيه، المبيته والوظائف ميزاته لزيادة PHPالمترجم

بلغة المكتوبة المكتبات من ضخمة كمية وتحويل المهمة هذه بعمل مكتبات Cمسبقا إلىمثل عنها تحدثنا التي الميزات جميع على حصلنا ومنها المترجم، إلى لتضاف مخصصة

ملفات ومعالجة البيانات قواعد إلى . XMLالوصول

PHPتاريخ

لغة PHPبدأت على تضاف الدوال من برامج Perlكمكتبة عمل وبعد Perlبلغة CGIلتسهل ، تلقى ذلك Rasmus Lerdofأن بعمل قام بسيط، مترجم إلى بتحويلها االقتراحات بعض

وسماه اإلنترنت على وطرحه Personalأو PHPالمترجم Home Pages الصفحات أيمن مصغرة نسخة عن عبارة كان فقد ثم Perlالشخصية، للويب، اإلضافية الميزات بعض مع

لنماذج دعما إليه على PHP2/FIوسماه HTMLأضاف بالعمل المبرمجين من مجموعة فقام ، برمجية PHPمترجم تطبيقات واجهة إليه لدينا APIوأضافوا فأصبح توسعته عملية لتسهيل

3

Page 4: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

PHP 3 شركة قامت الزمن من فترة بعد ،Zend والذي للغة الخاص مترجمها بعمل للتقنياتمع zendسمي وجمع المحسنة، وقدراته العالية بالسرعة المترجم هذا اتصف وقد أيضا،

المترجم PHPمكتبات نواة لتكوين مترجم PHPاألخرى ،PHP: قسمان على مقسم اآلنمزودات zendالمترجم على تطويره موقع CVSويتم في الثاني zendالموجودة والقسم

يقوم PHPيسمى البرنامج، مع تأتي التي األساسية والدوال المكتبات عن عبارة وهووتوفير zendمترجم البرنامج وتنفيذ المتغيرات مع والتعامل ومعالجتها الملفات بقراءة

للتطبيقات تطوير أما APIواجهة اللغة، بلغة PHPلتوسعة مكتوبة مكتبات على اآلن فتحتويC مترجم يوفرها التي التطبيقات واجهة مع معا zendومتوافقة القسمان يعمل وبالتالي ،

مoترجم تoزور PHPلتكoوين وعنoدما مoترجم الرسoمي PHP موقoع ، على وتحصoل جoاهزا PHPاآلنمترجم من كل على تحصل فإنك بك، الخاصة البرمجية الشفرة على تحصل zendأو

. PHPومكتبات معا

إحصائيا PHPتطور وتشير األخيرة، الفترة في مفاجئا مترجم Net Craftتطورا أن PHPإلىمزود وحدات أكثر مترجم Apacheهو أن كما اإلنترنت، على على PHPانتشارات مركب

. اإلنترنت على ويب مزود مليوني حوالي

نظام Windows PWS 4.0 أو Windows IIS 5.0 plus تشغيلplus

البرنامج تحميل متطلباتنظام - .IIS 5.0 plus لتحميل WinXP أو Win2000 قرص

نظام - .PWS 4.0 plus لتحميل WinME أو Win98 SE قرص

. تحمل ينفع ما يعني، لديك المحمل النظام مع القرص يتوافق أن ويندوز IIS 5 البد 98 علىME أو

ملحوظةلنظام هي الرفقة بجميع WinXP الصور متشابهة هي العملية كافة لكن أنظمة فقط،

.مايكروسوفت

4

Page 5: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

بنظام 1 - الخاص المرن القرص مكانه Windows ضع .في - 2 oال إلى Add or Remove Programs وأختار My Computer من Control Panel إذهب

(1الشكل)

برنامج - 3 ضمنها ومن إختيارها يمكنك برامج بقائمة شاشة لك Internet ستظهرInformation Services بإسم تشغيل Personal Web Server أو نظام Win98, ME تحت

5

Page 6: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

(2الشكل)

على – 4 نقرت وجود Internet Information Services إن ستالحظ ملف، تفتح وكأنك مرتينضمنها ومن الخدمات من يريدون Frontpage 2000 Server Extensions العديد للذين

المحلية صفحاتهم لتحكيل بيج الفرونت .إستخدام

عدى ) – 5 ما كلها إخترتها شخصيا أنا المواصفات من تحب ما إختيار (MSN Explorer بعدعلى سيقوم Next إضغط ثم المحلي Windows الo ومن السرفر برنامج وتثبيت بتحميل .تلقائيا

السرفر – 6 وتعريف تثبيت عملية تكون حتى الكمبيوتر تشغيل إعادة يستحسن التحميل بعد.صحيحة

6

Page 7: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

المحلي بعد – 7 الصلب القرص إلى إذهب التشغيل، تحت … C إعادة هناك جديد مجلد ستجدمجلد Inetpub إسم wwwroot إسمة وبداخلة

(3الشكل)

المجلد wwwroot مجلد - 8 يعادل ما ... في public_html هو نشر مجلد فهو اللينكس نظام.الصفحات

9 - oال برنامج أن /http://127.0.0.1 أو /http://localhost وضع Internet Explorerإفتح تالقيالموجودة مجلد الملفات على wwwroot في تحتوي ألنها تمحيها فال مهمه وهي فتحت

إن المساعدة بعد ملفات فيما .إحتجتها

الo : مالحظة لغة يدعم اآلن سرفرك اللحظة هذه البيانات و asp في فقط Access قاعدة

7

Page 8: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

oال لغة تضيف IIS لسرفر PHP 4.3.1كيف

الجزء هذا إختار - PHP4.3.1 : متطلبات الرابط هذا طريق عن الموقع من تحميلها ما وممكنحجمه MB 5.71يناسبك

http://www.php.net/get/php-4.3.1-Win32.zip/from/a/mirror

1 - oال ملف على من الضغط إلى ZIPفك المجلد إسم صغيره php وغير PHP وليست حروف

مجلد - 2 تحت المجلد هذا C:\Inetpub إنقل

8

Page 9: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

(4الشكل)

المجلد - 3 إسمه php إفتح ملف على إسم ". php.ini-recommended "ودور إلى الملفغيرphp.ini oال مجلد إلى WINNT أو Windowsوإنقله

4 - oال تعريفات بعض بتغيير اآلن وستقوم المجلد معاك PHPإفتح تمشى أحد حتى أستخدم المحررات

9

Page 10: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

(5الشكل)

بتغيير إلى /. extension_dir قم C:\Inetpub\php من

بتغيير WINNT أو C:\WINDOWS\SYSTEM32\inetsrv\browscap.ini إلى browscap قم

بتغيير هذه: مالحظه cgi.force_redirect = 0 إلى cgi.force_redirect = 1 ; قم ";" إحذف

بتغيير وإنشئ C:\Inetpub\tmp إلى/ tmp من session.save_path قم جديد وإذهب مجلدالشكل ) tmp إسمه C:\Inetpub تحت في المحدد ( . 4كما المجلد السابقه الصفحه فياألخضر بي

10

Page 11: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

oال تثبيت عملية بإكمال قمت قد تكون . PHPهنا سرفر تجعل أن عليك واآلن جهازك علىIIS oال ملفات على PHPتتعرف

إلى – 5 Control Panel > Administrative Tools > Internet Information Services إذهب

(6الشكل )

11

Page 12: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

في - 6 ملحوظ هو كما سرفرك خواص الشكل ) إدرج التالية (7الصوره

(7الشكل)

12

Page 13: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

ثم Home Directory إختار - 7 الشكل ) Configuration ومن في (8كما

(8الشكل)

13

Page 14: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

إمتدادات - 8 بإضافة اآلن يتعامل PHTML و PHP3 و PHP سنقوم كيف يعرف حتى للسرفرعلى . معهن موضح Add إضغط هو الشكل ) كما التالية الصورة (9في

(9الشكل)

14

Page 15: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

ملف - 9 مكان تبيين من البد التالية الشاشة . PHP.EXE في قم البرنامج مجلد في الموجودال بالصورة مبين هو كما المجلد الملف عاشرة بإختيار إمتداد العملية . php ووضح وإنهي

على اإلمتدادات . OK بالضغط إلضافة العملية هذه بنفس .phtmlو. php3 قم

(10الشكل)

15

Page 16: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

10 - !! الكمبيوتر تشغيل وأعد بالكامل عملك إحفظ إنتهيت .لقد

بأسم - 11 ملف بأنشاء قم داخل و phpinfo.php االن بوضعه وإفتح C:\Inetpub\wwwroot قمالعنوان إنترنت على .http://localhost/phpinfo.php إكسبلورر

الكود وكتب الصوره في مبين هو كما باد النوت فتح قم الملف أنشاء يتم كيف ولمعرفةوحفظه به الموجود

16

Page 17: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

(11الشكل)

17

Page 18: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

بتثبيت - 12 قمت إن يتبين كاملة php هنا معلومات سيعطيك الملف هذا ألن صحيح بشكلمركبه عن أنت اللي اإلصدار

(12الشكل)

البيانات قاعدة تضيف إصدار MySQL 4.0.12 كيف IIS لسرفر أحدث

الدرس : متطلبات

Microsoft MDAC 2.7 جدا ضروري وهو للسرفر مساعد لبرنامج إصدار أحدث .هوالتالي العنوان على تجده /http://www.microsoft.com/dataوسوف

18

Page 19: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

(13الشكل)

(14الشكل)

MyODBC 3.51.06 والقاعدة اللغة بين الوصل لبرنامج إصدار أحدث أيضا هو

http://www.mysql.com/downloads/api-myodbc-3.51.html

19

Page 20: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

(15الشكل)

MyODBC 2.50.39 من قديم على MySQL إصدار تدور البيانات قاعدة ألن ضروري ولكنهالتشغيل بدإ عند اإلثنين

http://www.mysql.com/downloads/api-myodbc-2.50.html

(16الشكل)

MySQL 4.0.12 الشهيرة البيانات قاعدة طبعا

للo : مالحظة أقدم إصدار إستخدام بذلك mySQL يمكنك أنصح ال لكنني أردت إن

oال تثبيت عملية نبدأ عادي بشكل برامج ثالث أول وتثبيت تحميل mySQLبعد

20

Page 21: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

1 - oال تثبيت أنا mySQLحين تثبيتها، تريد أين C:\Inetpub\mysql في محددهاستسألالo بجانب phpمجلد

(17الشكل)

(18الشكل)

2 - أوتوماتيكيا لك سيثبتها البرنامج وبعدها

21

Page 22: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

بإسم - 3 مجلد إسمه mysql بداخل bin أفتح ملف على مرتين أنقر وحينهاwinmysqladmin.exe

(19الشكل)

منك - 4 سكربتاتك mySQL ستطلب لتجعل تريها التي السر وكلمة الدخول إسم تحدد أنمعها تتعامل

الجهاز - 5 تشغيل .أعد

22

Page 23: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

التالي- 6 المجلد الى Control Panel > Administrative Tools > Data Sources ODBC أدخل

على - 7 تنقر كالصورة Data Sources ODBC حين قائمة الo 20الشكل تأتيك MySQLوإختار. كما MySQL ODBC 3.51 Driverو ستبان حينها إثنين رقم الصورة في لك مبين

أمامك

(20الشكل)

ذالك بعد تشاهد بياناتك سوف قاعدة معلومات فيها تكتب أن تستطيع شاشة

23

Page 24: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

(21الشكل)

متطابقة: مالحظة تكون أن لهذا البد الرابعة الخطوة في كتبتها التي البيانات لنفس .الدرس

8 - oال لكال العملية بنفس حفظ MySQL Driversقم بعد أخرج ثم الشاشة تلك فيالتغييرات

9 - oال مؤشر على األيمن بالزر الMySQL oأنقر الصورة Task Bar في في الشكلكماهوإختار 22 Stop This Service ثم

(22الشكل)

المجلد - 10 الى Control Panel > Administrative Tools > Services إذهب

عن - 11 بالصورة MySQL إبحث موجود هو بإختيار 23الشكل كما Stop وقم

24

Page 25: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

اآلن - 12 جهازك تشغيل أعد

برنامج - 13 أن ستالحظ التشغيل، إعادة عملية تتم تحول MySQL حين وقد تلقائيا بدأالبيانات النور قاعدة أن يعني وهذا األخضر، إلى األحمر اآلن MySQL . من لديك شغالة

يشغل يوس سرفرك اآلن : كونPHP - ASB - Access - MySQL

ملفات PHPبنيةملفات PHPملفات تركيبها في تشبه بسيطة، نصية ملفات بشكل HTMLوملفات ASPهي

ملف يتكون قسم PHPعام، قسمان، الطبيعية PHPوقسم HTMLمن بالصورة الملف ، ملف عن فيها HTMLعبارة ليخرج الملف من معينة أجزاء تحديد تستطيع ولكنك عادي،

وضعية من وضعية HTMLالملف وضعية PHPإلى إلى الملف إلخراج ،PHP : طرق عدة توجد

الوسوم - <?1 زوح كالتالي ?< :phpاستخدام و?<phpecho 'This is PHP output;'!

>?

يكون - <? ?< 2 ولكنه السابقة الطريقة بنفس يستخدم وهو و المختصر زوج استخدامالكلمة من phpبدون أقل كمية إلى يحتاج الوسوم من النوع هذا البداية، وسم في

وسوم مع يتعارض ولكنه بالطبع، الوسوم xmlالكتابة ميزة بإغالق البعض يقوم لذا ،

25

Page 26: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

ملف ) طريق عن بسهولة الميزة هذه اغالق يمكنك التعارض هذا يحصل ال حتى القصيرة (. PHPإعدادات

الوسوم - 3 زوج ملفات ASPاستخدام في المستخدم الوسوم زوج اسمه من وهو ،ASP وسوم <% %< ميزة ، و تفعيلها ASPوهما تستطيع ولكنك قياسي بشكل فعالة تكون ال

مترجم إعدادات ملف طريق . PHPعن

التالي - : 4 الوسوم زوج استخدام هي األخيرة الطريقة>script language="php" <

echo 'This is PHP output!';>/script<شفرات بين التمييز عملية تصعب أنها حيث اآلن، مستخدمة غير الطريقة هذه PHPولكن

ملف ملفات HTMLوباقي كتابة لبرامج بالنسبة وكذلك ،HTML للشفرة تلوينا تعطي التيملف من جزءا ويعتبره الشفرة من النوع هذا على يتعرف ال . HTMLفأغلبها االعتيادي

وضعية إلى للتحويل السابقة الطرق بالطبع، PHPأفضل األول الوسوم زوج استخدام هومترجمات جميع على يعمل أنه كما تعارضات أية على يحتوي وال استخدامها، األكثر أنه حيث

PHP في ستجدها التي األمثلة جميع في سنستخدمها السبب ولهذا إعداداتها، كانت مهما . الدورة هذه

ملفات PHPكتابة

ملفات PHPملفات هي كما تماما بسيطة نصية ملفات سكريبت HTMLهي كتابة يمكنك ، PHP البسيطة النصية الملفات كتابة لك يتيح نصوص كتابة برنامج Plainبأي Text مثل

Notepad مبرمجي أغلبية ولكن ويندوز، النظام تسهل PHPعلى أخرى أدوات يستخدمونعن البحث عملية وتسهل البرمجية، الشفرات تلوين طريق عن البرمجة عملية عليهم

مثل الوقت، نفس في ملفات عدة من المقاطع واستبدال الرغم HomeSiteالملفات على ، استخدام أن إال الميزات هذه من الكثير إلى تحتاج لن أنك ملفات Notepadمن عمل في

PHP أن حيث الضخمة الملفات في وخاصة جدا صعبا أمرا فتح Notepadيعتبر تتيح الرسالة لك ظهرت فإذا لألسطر، ترقيما توفر ال أنها هي األكبر والمشكلة الكبيرة، الملفات

السطر في خطأ وجود إلى تشير في 53الخطأ المطلوب السطر معرفة تستطيع فلنNotepad وحتى األول السطر من يدويا بالعد قمت إذا في .. 53إال الخطأ كان لو ماذا حسناعلى 652السطر تحصل أن إلى اآلن المتوفر بالبرنامج سكريبتاتك بكتابة البدأ يمكنك ،

باستخدام كتبتها فإذا نصوص، محرر بأي ملفاتك فتح بالطبع يمكنك آخر، Notepadبرنامجباستخدام ملزم بأنك يعني ال .Notepadفهذا الملف هذا في حتى أو ملفاتك جميع في

ملف تريدها، PHPلعمل التي الصفحة بكتابة وابدأ اخترته الذي النصوص محرر بفتح قم اآلنشفرات إحاطة تنسى في PHPوال مكان أي في الملف احفظ ثم بها، الخاصة بالوسوم

المناسب . اإلمتداد وأعطه بك الخاص الويب مزود مزودك، php3أو .phpدليل إعدادات حسبوعرضها ترجمتها تمت وقد الصفحة وستجد المتصفح باستخدام الصفحة بزيارة قم ثم

عليك.

26

Page 27: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

طريق عن الصفحة عرض يمكنك وال الويب، بمزود مرور الصفحة تزور أن يجب بأنك تذكرهو : مزودك لصفحات الجذري الدليل كان إذا المثال، سبيل على خارجي، كملف \:Cفتحها

Inetpub\wwwroot \

أسميتها صفحة بعمل مزود test.phpوقمت بتشغل اآلن تقوم أن يجب الدليل، ذلك فيالعنoوان على الصoفحة وزيoارة األمoر http://localhost/test.phpالoويب باسoتخدام قمت إذا ،

Open القائمة الملف Fileمن لفتح المتصفح ترى C:\Inetpub\wwwroot\test.phpفي فلنشفرة PHPصفحة وسترى . PHPمترجمة، فقط

تدريبملف بتنفيذ التالي : PHPقم

This is the normal html page.>br<>?php

echo "This is inside PHP>br<";echo "Hello World!>br<";

?<

التالي : الخرج تشاهد أن المفترض من السابق؟ البرنامج تنفيذ عند تشاهده الذي ماThis is the normal html page.This is inside PHPHello World!

بلغة األول برنامجك كتابة من انتهيت قد فيه، PHPها شيء أي تفهم لم إذا تقلق ال ، بلغة والعبارات المتغيرات استخدام كيفية اآلن . PHPسنتعلم

: ) شهية ) فاتح بسيطا سكربتا لنكتب

<html dir = “rtl >”سالم هي إهل الأ لدي ةالتحي

?< Echo )“السالم عليكم ورحمة الله وبركاته”(;

>?27

Page 28: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

/<html >

باسم الملف بحفظ echo.phpقمفيها مكتوب عباره علينا ستعرض

وبركاته الله ورحمة عليكم السالم هي اإلسالم أهل لدي التحية

؟ كذلك أليس بسيط شي

oال كود ولغة phpيتكون عالمات و كود و نصوص نصوص htmlمن على التحتوي . htmlوقدالملف إمتداد يكون أن يجب الكود يعمل الphp oلكي إمتدادات من إمتداد بأي phpأو

phtmlو php3مثال --

تدعي العملية هذه السيرفر مع مباشرا اتصاال تجري فإنك اإلنترنت في صفحة تطلب عندماrequest ) الصفحة ) عن والبحث طلبك بتفسير السيرفر يقوم للسيرفر طلبية يعني للسيرفر

يسمي مما كجزء المطلوبة الصفحة اليك ويرسل ( responseالمطلوبة لمستعرض ) استجابةبتجميعه ) ويقوم إليه ارجع الذى الكود بأخذ لديك المتصفح بعدها يقوم لديك االنترنت

compile )العميل نظرية تشبه حصلت التي العملية هذه للعرض صالحة صفحة يصبح لكيالسيرفر( . client to serverللخادم) هو والخادم العميل هو المتصفح أن بحيث

االنترنت ) مستعرض العميل يقوم بينما البيانات وتوزيع وترجمة تخزين بعملية يقوم الخادمالبيانات( واحضار السيرفر الى بالعبور لديك

االنترنت بروتوكوالتالشبكة هي المهمة النقطة ، العتيق انترنت تاريخ عن التكلم إلى نذهب أن هنا النريد

بنقاط يتم nodesالمربوطة لكي المعلومات على بالحفاظ تقوم لكي صممت االنترنت28

Page 29: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

مثل البروتوكوالت من مجموعة تستخدم وهي آخر إلى مكان من نقل Tcp/Ipنقلها يتم لكيالشبكة . عبر البيانات

Tcp/Ipبروتوكول في خلل تم إذا للبيانات طريقه تمهيد إعاده بإستطاعته أنه البروتوكول هذا مميزات من

. المستعرض من المستخدم يطلب عندما شديدة بسرعة ذلك ويتم نقلها أثناء مكان أو نقطةبروتوكول باستخدام األوامر هذه يجلب المستعرض فإن االنترنت من صفحة له يجلب أن

البيانات نقل في التحكم بروتوكول للبيانات TCPيدعي نقل بروتوكول هو البروتوكول هذاصحيح . بشكل ووصولها إرسالها تم قد البيانات أن يضمن وهو

بعنونة يقوم الذي والبروتوكول عنونتها يجب الشبكة عبر البيانات إرسال يتم أن قبل

يدعي البروتوكول HTTPالبيانات يعرف لكي للبيانات عنونة بوضع البروتوكول هذا يقومTCP) ( مكان أو هدف لها يكن لم إذا البيانات نقل اليستطيع فهو البيانات سينقل أين

البروتوكول إلى HTTPيستخدم كمبيوتر من البيانات نقل عملية في الويب طريق عن oب متبوعة الصفحة ترى البرتوكول:// httpآخرعندما يستخدم االنترنت أن مباشرة تعلم فانك

HTTP oال بأن صورة تاخذ أن يمكنك الصفحة هذه الذي TCPإلحضار بريد ساعي عن عبارة oبال مانسميه وهو وعنوان بريد طابع فيها الرسالة هذه ، رسالة بإيصال . HTTPيقوم

oب مايعرف وهو الويب سيرفر أو ملقم إلى المستعرض من الطلب تمرير HTTP requestيتموجد فإذا المطلوبة البيانات على يحصل لكي لديه البيانات مستودع برؤية السيرفر ويقوم

بالطلب قامت التي الجهة الى حزم شكل على بإرسالها قام المستودع في الصفحةبروتوكول بروتوكول TCPباستخدام باستخدام لديك االنترنت لمستعرض الحزم هذه ويعنون

http ( تعرف لكي حزم شكل على يرسلها أنه الى دائما صفحة ننبه ظهور عدم عند السبببشكل ترسل لم حزمة هناك أن كاملة يجد( ويب لم إذا ولكن الصفحة جيد السيرفر

خطا رسالة على تحتوي صفحة بإرسال يقوم فانه التي 404المطلوبة الصفحة وهذهتسمي لديك المستعرض الى الويب ملقم من . HTTP responseأرسلت

oال HTTPبروتوكولاألطفال حكايات أو ليلة ألف قصص تشبه كثيرة وقصص كثيرة معلومات من أخذناه ما رغم

في قليال نغوص دعنا لذلك الموصوع هذا في التفاصيل من الكثير يفوتنا ذلك رغم أنه إالبروتوكول عن . HTTPالتفاصيل خاص بشكل

الطلب عملية مع ترسل إضافية أمور هناك السيرفر من لصفحة طلب بعملية تقوم عندماhttp request oال من URLغير كجزء ترسل . http requestوهي

ال مع الموضوع منه . http responseنفس كجزء معه تصل أخرى أمور هناك

oال رسالة في تلقائيا تولد المعلومات هذه من بالتعامل HTTPالكثير المستخدم واليقومفي , تنشأها لم أنت إذا المعلومات هذه بشأن نفسك تقلق أن اليحتاج إذن مباشرة معها

oال من كجزء ترسل المعلومات هذه أن معلوماتك في أيضا تأخذ أن ويجب HTTPاألصلrequest oوالHTTP response oال سكربت بهذه PHPألن إضافيا تحكما يمنحنا نصنعه الذي

المعلومات .

oال رسائل كانت HTTPكل سواء معينا تنسيقا نقوم . Responseأو Requestتأخذ أن نستطيعأقسام : ثالثة إلى التنسيق هذا بتقسيم

1– Request / response line2- HTTP header3- HTTP body

كانت إذا الرسالة نوع على يعتمد الثالثة األشياء هذه من HTTPأو HTTp Requestالمحتويresponse . أكثر بتعمق عنهم سنتكلم لذلك

29

Page 30: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

HTTP Request

oال يحتوي أن الrequest oيجب األقل ( request lineعلى ( oوال الطلب . HOSTسطرطلبية ) االنترنت مستعرض التالي( :HTTP requestيرسل على تحتوي الويب ملقم إلى

1 -The Request Line طلبية ) كل من األول أنواع Request Lineهي( http requestالسطر ثالثة على يحتوي الذي

المعلومات : منبHTTP oأمر أ - مايعني . methodوهو

قبل ) ( ب - من المطلوبة االنترنت صفحات المطلوبة المصادر إلى السيرفر من المسار ) المستعرض ) العميل

- oج oال . HTTPإصدارة

oال method oال من شائعه أنواع ثالثة هناك الطلب مع يتعامل كيف السيرفر methodيخبر

2- HTTP Header الهيدر هو المعلومات من الثاني عن . HTTP Headerالبت وثائق أو تفاصيل على يحتوي الذي

المتصفح نوع مثل إكسبلور ) العميل أو والوقت( نتسكيب الصفحة بطلب قام الذيالعامة واإلعدادات والتاريخ

oالHTTP Header: وهي فئات ثالث الى تقسيمها نستطيع معلومات على يحتويأو : GENERALعامة أ - فرد إلى والتخصص السيرفر أو العميل عن إما معلومات تحتوي

مجموعة . المتصفح : Entityشخصية ب - بين أرسلت التي البيانات عن معلومات على تحتوي

والسيرفر . - oمطلوبة جRequest : المقبولة المختلفة واألنواع العميل إعدادات عن بيانات على تحتوي

البيانات . من

3- The HTTP Body األمر استخدام تم الPOST oإذا الHTTP Request Line oفي يقوم بطلب HTTPعندها

oال في ارسلت التي السيرفر . bodyالمعلومات الى

HTTP Response أشياء : ثالثة على ويحتوي المستعرض إلى السيرفر من يرسل

1- The Response Line 2- HTTP header

30

Page 31: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

3- HTTP Body

1- The Response Line oالresponse line: المعلومات من نوعين على فقط يحتوي

1 - oال إصدارة . HTTPرقم2- oال كود أو الhttp request oشفره كان إذا بتحديد تقوم فاشل . requestالتي أم ناجحا

2- HTTP Header oالresponse header مشابه وتنقسم .request haderيعتبر األعلى في ناقشناه الذي

أنواع : ثالثة إلى أيضا فيه التي المعلوماتعامة - الGENERAL : oأ عن منهما . clientمعلومات واحد إلى والتخصص السيرفر أو

شخصية - السيرفر : Entityب بين ارسالها يتم التي البيانات عن معلومات على يحتويوالعميل .

اإلجابة - oجResponse : تعامله وكيفية الرد بإرسال قام الذي السيرفر عن معلومات يحتويللرد ) ( . Responseومعاجلته

3- HTTP Body oال فإن ، بنجاح الطلب معالجة تم الHTTP response Body oإذا كود على ويقوم HTMLيحتوي

تراها . التي النهائية الصفحة إلى وتحويلها بتفسيرها االنترنت مستعرض

oال سكربت ؟ PHPأين كله ذلك منالسيرفر من صفحة طلب المستعرض إرسال طريقة عن جيدة مفهومية لدينا اآلن أصبح

الطلب . لهذا السيرفر استجابة وكيفية

oال سكربت أن عن وكود : php تكلمنا نص أشياء ثالثة من النسطيع HTMLوكود phpيتكون ، oال الHTML o وصف أن نقول أن ونستطيع جيد بشكل برمجة لغة سكربتات php بأنها لغة

Scripting Language قدرات تضيف بكود HTMLألنها والفريمات الجداول مثل HTMLعليها oال كود الجافا phpبداخل مثل معها متآلفا تكون قد سكربتات لغات تسمي لغات هناك

oال وبين بينها الفرق أن بإستثناء سكربت بيسك والفجول الphp oسكربت أن لغة phpهويستعرضها . الذي المتصفح تخصيص ويمكنك السيرفر أي المزود جهة على تعتمد

oال الHTML o تجعلنا سكربتات تشغيلها phpنضمن نستطيع لكي لذلك قواعد ضمن فيهاهو كما يظل الملفات إمتداد أن الننسي إرسال php3أو phpولكننا يتم لكي فيه تغير بدون

الترجمة ) مكتبة الى إلى( scripting engineالسكربت السكربت بترجمة تقوم HTMLالتيالعكس) ( أو إلنجليزي عربي من تترجم كأنك

oال الparsing oمفهوم Execution و

سيرفر بها يقوم الذي الترجمة عملية نقسم أن عمليتين :phpممكن أو قسمين إلىاألولى : السكربت العملية أن اليضمن وهذا اللغة قواعد بفحص أوال يقوم السيرفر أن هي

oبال مايسمونه وهذا اللغة وقواعد األوامر في تدقيق ولكنه بالمائة مائة Parsing صحيحالثانية كود : العملية شكل على وإخراجه بعدها السكربت تنفيذ مايسمي HTML هي وهذا

oبالExecution .

نوعين : السكربتات أن وهو معروفا أمرا نقول أن بقي

المزود -1 جهة من ماينفذ وهو31

Page 32: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

Server – Side scripting

2- . ) انترنت ) صفحة المستعرض جهة من ماينفذ

التعليقاتقد اإذن ، برنامج تصميم وأردتم مبرمج من أكثر معك وكان شركة في كنت إذا رأيك ماالذي الكود لفائدة توضيح بعمل تقوم أن الالزم من لذا وتعديله العمل لتنظيم تحتاجون

في تستخدم التعليقات إذن ، مناسبة تعديالت وإضافة عليهم فهمه يسهل كي كتبتهآخر . شي أي أو كتوضيح إال التستعمل معلومات إضافة أو األكواد شرح عن اإلفاده

كالتالى : واحد سطر من تعليق عمل يمكنك>?هذا تعليق ال فائدة له اي معني//?<

آخر : مثال>?هذه الداله تقوم بطباعه الكلمه تعليق//Echo “تعليق”;?<

كالتالي : سطر من أكثر من تعليق استخدام يمكنك وأيضا

>? تعليق يتكون من*/ اكثر من سطر بعالمة السالش والنجمه*/?<

32

Page 33: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

المتغيرات؟ المتغيرات ماهي

لتخزين تستخدم الذاكرة من مساحة أنه هو المتغير عن نقوله أن يمكن تعريف أبسط oال في المبرمج طريق عن فيها التحكم ويتم الPHP oالمعلومات بعالمة تبدأ المتغيرات ،$

المعامل ) تستخدم فإنك المتغير في قيمة بإدخال تقوم بإنشاء( =ولكي تقوم لكي إذنكالتالى : بذلك القيام يمكنك قيمة على يحتوي متغير

$char = “عبارة المتغير”;$ قيمه = اسم_المتغير ;

>? $char = “عبارة المتغير”; Echo $char; ?<

أشياء : خمسة من يتكون السابق السطر أن الحظ

وهو / 1 charالمتغير2/ oال عالمة الo $وقبله مترجم يعرف متغير PHPلكي أنه (=المعامل ) / 3المنقوطة ) /4 (;الفاصلةوهي / 5 التي ?How Are You Every Bodyالقيمة أو المتغير في الموجودة القيمة وهي

فيه وضعناها التي أو للمتغير ال) ) اقترحناها مبرمج أنت هو القيمه اقترح الذي (phpألن )

مالحظات : وصغيرة -1 كبيرة كانت إذا األحرف لحالة حساسة المتغيرات اسماء

>?$Majed = “العبارة األولى”;$majed = “العبارة الثانية”;echo $majed;echo $Majed;?<

33

Page 34: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

. األحرف حالة بسبب مختلفين باألعلي الذين المتغيرين

المعامل - ) _ ( 2 استخدام يمكنك$First_name

3. ) محدده - ) غير هي الواقع وفي المتغيرات تسميه في حرف ألف استخدام يمكنك

التنصيص عالماتأن هي تكون فاإلجابه ؟ هذه التنصيص عالمات وضعنا لماذا وهي مهمة نقطة وهذه

ذلك وعلى للمتغيرات أنواع وهناك نصوص من تتكون أي حرفية وضعناها التي القيمةونقول سنفصل

وهي : للبيانات انواع هناك1- strings( حروف)

$Exa = “Just An Example”;$Exa2 = “2.5”;$Exa3 = “2”;

2- Integer( ارقام)$Exam = 5;

3- Double( فواصل ذات (ارقام$num= 5.4

4- array ( ) بعد فيما تفصيلها ياتي

5- objects ( اخري دروس في (تفصيلها

6- Unknown ( ) اخر درس في تفصيلها ياتي

oال مترجم إنما المبرمج قبل من نوعها تعريف اليتم عليها PHPالمتغيرات بالتعرف يقومعليها المختلفه العمليات إتمام يتم لكي

الحرفيه : البيانات oال الPHP oفي يعتبرها مفردة تنصيص عالمة أو عادية تنصيص عالمتي بين تكون قيمة أيPHP حرفية قيمة

أمثلة : ” اومزدوجه“ عاديه تنصيص عالمتي بين النص هذا’ وحيده‘ او مفرده تنصيص عالمتي بين النص هذا

oال يتعرف فلن وإال ، التنصيص عالمة بنفس وينتهي النص يبدأ أن القيمة PHP يجب علىالنص . على أو الحرفية

34

Page 35: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

>?$d=”غلط ‘echo “خطا ‘ ?<

الحرفية القيمة تستخدمه التي النوع نفس من تنصيص عالمة بوضع تقوم أن أيضا اليمكنكالنص أو الحرفية العبارة وسط في

>?$variable = “ خطا بسبب وجود عالمة في النص من نفس النوع"هذا النص "”;?<

وتصحيحه >?$variable = “’ هذا النص’صحيح ”;?<

آخر مثال وأيضا>?$r = “This is”BAD”; // خطأ$t = “This is ‘good”; // صحيح?<

بعد ) فيما نري سوف كما ضرورية عمليات في إليها تحتاج أو ذلك على مصرا كنت إذا أماالنماذج ( صناعة في إليها معامل حاجتنا وضع التنصيص .) \ (فيمكنك عالمة قبل

سهولة . بكل معك تعمل لكي

مثال :>?$u = “This Only An \” Example\” To Make You Understand Nothing”;?<

؟ ) \ ( من أكثر نطبع أن أردنا لو رأيك ما طيبالمقال : يتضح وبالمثال ، بمثله نتبعه أن هو الحل

35

Page 36: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

$file = "c:\windows\system.ini";echo $file;   // النتيجه c:\windows\system.ini

$file = "c:\\\windows\\\system.ini";echo $file;   // النتيجه c:\\windows\\system.ini

( oال طريقة عن واحد متغير في المتغيرات قيم أكثر بين الجمع ( .يمكنك

>?$first = “CS 483” ;$last = “مادة”;$fullname = $first.$last;Echo $fullname ;Echo ">br<";ولكننا نريد وضع فراغ بين الكلمتين//$fullname= $first . ’ ’ . $last ;Echo $fullname ;?<

آخر : متغير قيمة متغير إلى ضيف أن يمكننا وأيضا

>?$f="I Love M" ;$k= "y Country" ;إضافه القيمة الى المتغير//$f = $f . $k;echo $f;?<

>? تقريبا نفس العملية//

36

Page 37: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

$f="I Love M" ;$k= "y Country" ;$f.=$k;echo $f;?<

االرقاموالمزدوج الفردي العدد

والله ) العائمة الفاصلة هو بينهما الفرق أن هو اآلن حتى أنا لدي المعروف االختالفوالخوف ( باالحباط يشعر الواحد يجعل االسم هذا اعطاءها حتي

oال ليعرف وذلك التنصيص عالمات نستخدم ال أننا قد PHPالحظ رقمية بيانات أنهاإذا عليها بسيطة حسابية عمليات تطبيق ويمكننا معقدة حسابية عمليات في نستخدمها

حرفية . كانت

هذا عدد فردي//$j=2;هذا عدد مزدوج//$h=4.5;

الحسابيه العملياتكالتالي : مرتبة وهي والقسمة والضرب والطرح الجمع مثل هي

األقواس / أوالالقسمه / .ثانيا ثم الضربالجمع / ثالثا ثم الطرح

>?Echo 5*2/5;Echo 5*)2/5( ;?<

آخر : مثال>?Echo 5-6+9 ;?<

37

Page 38: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

حرفي متغير فيها نستخدم حسابية لعملية مثال>?$W="2L";$E= 2;$F = $W * $E;echo $W .' ' .$E .' ' .$F;?<

زين ) ( : طل هاه بنفسك السبب استنباط وعليك تعمل لم لكنها أخري لعملية مثال>?$W=”L10”;$E= 2;$F = $W * $E;echo $W .’ ‘ .$E .’ ‘ .$F;?<

متنوعة : طرق بثالث متغير الى واحد رقم إضافة يمكننامثال

$j++أو

$j = $j+1أو

$j += 1 كالتالي : نفسه إلى المتغير إضافه ذلك على ويمكننا

$j += $jكالتالي : أو

$j = $j + $j

38

Page 39: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

النظام متغيراتومنها تستعملها أن يمكنك النظام يستخدمها متغيرات هناك

$HTTP_USER_AGENTالعميل يستخدمه الذي المستعرض نوع لديك تظهر التي

مثال :>?Echo $HTTP_USER_AGENT ;?<

الثوابتالدالة طريق عن ونعرفها التتغير ثابتة قيم أنها بقول الثوابت تعريف defineيمكننا

اآلحرف لحالة أيضا حساسة الثوابت>?Define )“author”, “Majed”(;Echo “author is “ . author ;?<

39

Page 40: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

مثل النظام يستخدمها ثوابت هناكPHP_OS

السيرفر يستخدمه الذي التشغيل نظام بعرض تقوم التي

مثال :>?Echo PHP_OS;?<

البيانات انواع وتحويل معرفهالدالة استخدام يمكنك ما متغير نوع تعرف أن أردت gettypeإذا

مثال :>?$n=5;$l ="hi";echo "The n Is " . gettype )$n( . ">br<";echo "The l is " . gettype )$l(;?<

الدالة باستخدام ذلك يمكنك ما متغير نوع تحويل أردت :settypeإذا

: مثال>?$n = 10 ;echo "Before is " . gettype )$n( .">br<";settype )$n,"string"(;echo "After That is go " . gettype )$n(;

40

Page 41: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

?<

issetالدالة المتغير اسم غير تتطلب ال وهي انشاؤه يتم لم أم مسبقا منشأ المتغير كان إذا لمعرفة

وجوده فحص تريد الذيالقيمة ) بارجاع غير( 1وتقوم المتغير كان إذا قيمة أي ترجع وال انشاؤه تم المتغير كان إذا

موجود . أو منشأ

مثال :

>?$n = “n”;Echo isset )$n(;?<

unsetالدالة هذه ) استخدام قبل جيدا تأكد لذلك منه الذاكرة وتحرير موجودا كان إذا المتغير بحذف تقوم

المسكين ( للمتغير الوداع دمعة اعطاء من الدالة

>?$n = “n”;unset )$n(;Echo isset )$n(;?<

emptyالداله القيمة ) بإرجاع صفر ( )1تقوم فيه التي القيمة أن أو منشأ غير المتغير كان نص( 0إذا أو

المذكورة )""( . غير قيم وفيه منشأ المتغير كان اذا شي أي بإرجاع والتقوم فارغ

>?$n = "n";$a = " ";

41

Page 42: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………$c = "0";$x = "";unset )$n(;Echo empty )$n(;Echo ">br<";Echo empty )$a(;Echo ">br<";Echo empty )$c(;Echo ">br<";Echo empty )$x(;?<

التاريخ الوقت داوال oال في دوال طريق عن التاريخ و الوقت إيجاد الدالة PHPنستطيع الدوال تلك من

gmdate )(مثال :

>? Echo gmdate )m(; Echo "\t"; //ما هي الى مسافه بين الناتجينEcho gmdate )M(; ?<

تختلف العرض طريقه لكن الحرف نفس نستخدم أننا مع النتائج في فرق هناك أن الحظ . صغيرا أو كبيرا الحرف يكون عندما

oال مثل phpتحتجز مختلفة بعمليات تقوم التي المحجوزة والكلمات الدوال من بكثيرالبريدية الرسائل وإرسال والتاريخ الوقت بإيجاد والقيام المعقدة الحسابية العمليات

اسمك تحفظ كما تحفظها أن منك مطلوب ليس الدوال هذه ثواني لعدة السكربتات وإيقاف . مناسبا تراه الذي الوقت في واستخدامها عملها ماهية تفهم أن منك المطلوب إنما

والشهر اليوم عرض أيضا يمكنك

مثال >? Echo gmdate )"M D"(; ?<

42

Page 43: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

من أكثر باستخدام قمنا عندما العملية تنجح لكي التنصيص عالمات استخدمنا أننا الحظالدالة في عامل

التالي : الكود استخدام جربوالساعة والتاريخ اليوم لك يعرض سوف هذا

>? Echo gmdate )"D, d M Y H:i:s"( ?<

النمooooooooooooooooooooooاذجإرسالها عند ثم بتعبئتها تقوم استمارات عن عبارة االنترنت صفحات أو الويب في النماذج

) مثل ) عليها العمليات بإجراء يقوم برنامج يتلقاها السيرفر الويب ASPأو JavaScriptلخادمحالتنا ) ( . phpأو في

النماذج فائدة

استمارة تعبئة إلى تحتاج الواقع في فإنك االنترنت من كتاب شراء أردت مثال أنك لنقلنموذج ) طريق عن ذلك ويتم المعلومات من ذلك وغير االئتمان بطاقة ورقم ببياناتك

( .فورم

بريدك وصندوق هاتفك ورقم اسمك وتكتب تريد الذي الكتاب بإختيار تقوم أنت الواقع في . ) الخيارات) من مجموعة الى اإلشارة طريق عن أو فراغات في ربما

( الخاصيه في كتابتها يتم التي المتغيرات في القيم هذه تخزين في name )يتم عنها نتكلمالبيانات - - ) ارسال زر ضغط عند ارسالها ويتم الدرس البرنامج ) ( (submit هذا الى

الخاصية ) في تحديدها يتم والتي البيانات هذه بمعالجة تقوم سوف التي (ACTIONالصفحةالبريد إلى ارسالها أو البيانات قاعدة في مثال تخزينها مثل عليها العمليات وإجراء

oال طريق عن وذلك phpااللكتروني

؟ النماذج في العميل يعمل ماذا

نصوص ) مربعات بتعبئة يقوم باختصار مربعات( textboxإنه في صح عالمة بوضع ويقوماختيار( )check boxesاالختيار ) زر فيختار معين لشي أحيانا بالتصويت يقوم ازرارأو

( . الراديو oال بواسطة انشاءها يتم كلها األشياء انشاءها htmlهذه كيفيه يناقش اليوم لهذا ودرسنا

األدوات هذه أن نعرف أن كبداية علينا بقي ، منها البيانات على والحصول التعامل وكيفيه oال لغه وسوم من وسمين بين الواقع في الوسمين htmlتنشأ وهي

>form<>/form<

النماذج خصائص

43

Page 44: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

وهما منهما اثنين الى سنتطرق هنا لكننا المضيف خصائص جميع النموذج و ACTIONيجمعMETHOD القادمة دروسنا في لنا مهمة و بكثرة تستخدم التي

في ( ID;ClASS;NAMEاما ) تعمق في HTMLفيلزمها ندخل عندما و ACCEPT-CHARخاصةENCTYPE الله شاء إن قادمة دروس في نفصلها وقد حاليا موضوعنا نطاق خارج وستكون

.

ACTION

السيرفر تخبر أن الخاصية هذه النموذج وظيفة معلومات بارسال يقوم التي الصفحة مكانالتي , إليها الصفحة هي الثانية الصفحة ستكون حالتنا في وطبعا نوعها كان أيا أوعنوانها

oال سكربت على . phpتحتويالصفحة تكون أن مهما تكون phpليس مع htmlفقد بالتعامل يختص كود على تحتوي ولكنها

الجافا . مثل الويب لصفحات تفاعلى برنامجالخاصية : هذه على مثاال نعطي فدعنا الموضوع نطاق عن نخرج أن والنريد

>FORM ACTION =”TEST.PHP”<…..>/FORM<

METHOD

وفي الهدف الصفحة الى المعلومات ارسال طريقة النموذج بإخبار تقوم الخاصية هذههما المعلومات الرسال ومعروفتين مشهورتين طريقيتين هناك .POSTو GETالواقع

>FORM ACTION =”test.php” METHOD = “GET”<أو

>FORM ACTIN = “test.php” METHOD =”POST”<

وهي : مالحظه المعلومات الرسال الطريقيتن هذه من اكثر يوجد الواقع في( CONNECT;HEAD;OPTIONS:DELETE:TRACE . )نادر بشكل اال التستخدم ولكن وغيرها

أوسع : بشكل الطريقتين هاتين نفصل اآلن دعنا

GET

تمت التي المعلومات بإضافة يقوم بأن لديك االنترنت مستعرض بإخبار الخاصية هذه تقومكاالتالي : كتابته طريقة وتكون لديك االنترنت متصفح إلى النموذج في كتابتها

المصدر . -1 الصفحه عنوان كتابهاستفهام .-2 بعالمة اتباعهاوالقيم .-3 العناوين كتابة

http://localhost/test.html?name=value

44

Page 45: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

النماذج مع تتعامل لم أنك بسبب جيد بشكل مفهومتين غير األخيرتين النقطيتن تكون قدقبل . من

) من ) , , ولكل اختيار زر نص مربع عالمة مربع عناصر من يتكون النموذج أن الحقيقة لكنبها ) خاص عنوان العناصر بها( )nameهذه خاصه قيمه منها . ( valueولكل

عنوان ) من أكثر على الصفحة عنوان يحتوي أن ويمكن للمتغيرات مشابهة (nameوهيقيمة ) من المعامل ( ) valueواكثر باستخدام عنهما بالتعريف ( . &ويقوم

مثال :http://localhost/test.html?animal=cat&age=30

االستفهام ) عالمة بعد تظهر التي اإلضافة . ( query String تسمى الحرفية االستعالم نتيجهاالنجليزيه ) باللغه يكون دائما تعريفه( name العنوان المفترض من متغير اسم كانه ونعامله

( oبال سنكتبها التي الهدف الصفحه (.PHP في

)% # \ - +( ، ، ، ، مثل معامالت او فراغات على القيم تحتوي قدالصفحات تشفير لغه باستخدام المتصفح . URL ENCODINGيقوم

oال يستخدم في URL ENCODINGأيضا اإلنجليزية غير األخري اللغات أو العربية األحرف معالحرف . كتابة

URL Encoding بل الحقيقية بصيغتها الصفحة لعنوان إضافتها المتصفح اليستطيع األحرف بعض هناك

كود المتصفح يستخدم الذي بالرموز جداول وهذه عنها التعريف في التشفير لغة يستخدمالحقيقية بصيغتها عرضها من بدال

شفرتهالحرفشفرتهالحرفشفرتهالحرفTab%09(%28;%3B

Space%20)%29<%3C!%21+%2B>%3E“%22،%2C=%3D

#%23.%2E?%3F@%40/%2F%%25

\%5C:%3A&%26

بالعمليه المتصفح سيقوم بل وتشفيراتها العالمات هذه كل تحفظ أن عليك فليس التقلقعنك . بدال كلها

POST

45

Page 46: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

oال وظيفة نفس هي وظيفتها الواقع صفحة getفي عنوان في المعلومات الترسل ولكنها oال في وضعها تقوم بل لbody oاالنترنت . http responseالتابع

oال من أكبر بكمية البيانات ارسال يستطيع أنه إلى .GETباإلضافه

تستخدم ؟ POSTأم GETأيهما

الخاصية في العيب يكون الممكن GETقد ومن بكاتبتها تقوم التي المعلومات سرية عدمسرية ... على الحفاظ تريد عندما خاصة جوارك الى يجلس الذي للشخص تظهر أن

معلوماتك . الحجم . الكبيرة النصوص في مفيدة غير أنها ذلك إلى أضف

لكي الخاصية هذه تستخدم أن يجب البحث محركات فمثال كثيرة أشياء في مفيدة ولكنهاجديد من يقوم وال آخر لوقت به ويحتفظ البحث عنوان يستخدم أن المستخدم يستطيع

عنها . يبحث التي الكلمة بكتابة

oال اليمكن POSTأيضا ولكن البيانات من كبيرة كميات وإحتواء المعلومات إخفاء في مفيدةهاكر .... أي أن بحيث الحماية في جيدة ليست أيضا فإنها ذلك مع الصفحة بعنوان االحتفاظاردت .. اذا لكن نقلها في معين تشفير لها يكن لم إذا المعلومات على الحصول يمكنه خبير

محمي .... سيرفر الى محمي اتصال استخدام عليك فيجب محمية تجعلها ان اوفعال ( . SCURE CONNECTION TO SCURE SERVER مايسمونه )

النماذج : في التحكم أدوات

فيها ) يدخل التي العاديه النصوص مربعات عن عبارة التحكم أدوات أن الواقع فيمعين ( ) شي باختيا فيها المستخدم يقوم والتي الراديو وازرار وعنوانه اسمه المستخدم

تتيح) ( ) التي االختيار ومربعات اليه المفضل المشروب او لديه المفضلة الوجبه مثلالمعروضة ( الخيارات من ويحب مايشتهي يختار أن للمستخدم

واحد . شي أو شي من أكثر اختيار على تساعدك التي القوائم وأيضا

الوسم استعمال يتم االشياء هذه أغلب في<INPUT>

كالتالي : تفصيله وتلخيص >INPUT TYPE= type NAME= name VALUE= value other attribute<

الشرح :

1- TYPE= typeاالختيار . مربعات أو عادي نص مربع أو راديو زر كان إذا الكائن نوع نحدد

2 - NAME= nameفيه . القيمة حفظ يتم لمتغير اسم بإعطاء فيها تقوم

3 - VALUE= valueأخرى . إلى أداة من يختلف عمله أن إذ أمثله عليه ندرج عندما أكثر وظيفته سيتضح

عمليه تطبيقات46

Page 47: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

يحتوي االول الملف ، ملفين من تتكون بسيطة برامج بصنع التطبيقات هذه في سنقوم

كود وطباعتها . HTMLعلى النتائج بإستقبال يقوم الثاني والملف النموذج بتكوين يقوم

النصوص ) : (TEXT Box مربعاتكالتالى : ذلك بعمل نقوم

لديك - .1 النصوص محرر بتشغيل قمالتالي - :2 الكود اكتب

>html dir =”rtl”<>FORM METHOD = “GET” ACTION = “pro.php”<ماهي وجبتك المفضلة في الصباح ؟

>br<>INPUT TYPE =”text” NAME = “food” value=”جبنة ومربي”<>br<>INPUT TYPE= submit VALUE=”إرسال”<>INPUT TYPE= reset VALUE=”مسح”<>/form<>/html<

كصفحة - 3 الملف بحفظ بتسميته . ) HTMLقم . (prohtml.html وقمأغلقته - .4 كنت إذا النصوص محرر افتحالتالي - : 5 الكود اكتب

>? Echo “وجبتك المفضله والى تموت في حبها هي” . “ “ . $food ; ?<

6 - oك الملف بحفظ بتسميته . phpقم .pro.phpوقملديك - .7 السيرفر مجلد في وضعهما الملفين بأخذ قم اآلنلديك - 8 االنترنت مستعرض في واكتب السيرفر بتشغيل قم

http://localhost/prohtml.html

إرسال - .9 زر واضغط المفضلة وجبتك بكتابة قمالنتيجة- . 10 ستظهر

العنوان : ظهر كيف الحظ

http://localhost/pro.php?food=%CC%C8%E4%C9+%E6%E3%D1%C8%ED47

Page 48: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

الشرح إرسال بعملية يقوم وزر نص مربع و نص من تتكون صفحة بعمل البداية في قمنا لقد

البيانات الوسم بواسطة النموذج بداية بصناعة سيتم <FORM<قمنا الذي المكان بتحديد وقمنا

بواسطة إليه البيانات ارسال ACTION=”pro.php”

الوسم بواسطه النص مربع بصنع الINPUT oوقمنا واخترنا TYPE=”text”

القيمة بواسطة فيه اإلفتراضية القيمة بوضع قمنا كماValue= “جبنه ومربي”

المتغير في النص مربع في المستخدم يضعه الذي الناتج بوضع .foodوقمنا

في) االحرف لحاله حساسه المتغيرات تسميه ان في $ PHP الحظ بوضع نقم لم واننا oال كود في المتغير (. html صفحه

بواسطة زر بإضافه قمنا لقد وأيضا

TYPE=SUBMIT ) إرسال ) كلمة وهي الزر على كلمة بوضع وقمنا

VALUE = “إرسال”آخر زر بصنع قمنا أيضا

Type =reset ) مسح ) عليه التي العبارة بجعل وقمنا

Value=”مسح”

هي االزرار من نوعين RESETو SUBMITهناك1 -oال submit . المعلومات بإرسال يقوم2 -oال reset. جديد من إدخالها إلعاده النموذج في األدوات جميع في البيانات بمسح يقوم

الصفحة إلى البيانات بارسال النموذج قام االرسال زر وضغط البيانات بادخال ماقمنا بعدالخاصية في في ACTIONالمحددة الموجودة النتائج بإستقبال المحددة الصفحة وقامت

المتغير في قيمته حفظ تم نصوص مربع في واحدة نتيجة وهي . foodالنموذجالدالة بواسطة بطباعتها .echoوقامت

االسلوب استخدمنا الننا الى ) GET نظرا باالضافه الصفحه عنوان اعطاءنا تم وايضا( ? فقد

ال استخدام تم والتي المتغيرات في المسجله النها URL ENCODING المعلومات فيهاعربيه . حروف تستخدم

الكبيره ) النصوص الشهي( ! text areaمربعات للطعام اكبر طلباتعن تماما تختلف تحكم أداة إلى تحتاج فإنك األسطر متعددة رسالة تكتب أن تريد كنت إذا

كبيرة نصوص إدخال من فيها يمكنك التي الكبيرة النصوص مربعات وهي العادي النص مربعاالسطر . ومتعددة الحجم

إغالق ووسم فتح وسم األداة هذه تستخدم>TEXTAREA<>/TEXTAREA<

بالخاصية الصفوف تحديد بواسطه حجمها تحديد بالخاصية rowsويمكنك .colsواألعمدة

48

Page 49: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

عملي تمرينلديك -1 النصوص محرر بفتح قمالتالي : -2 الكود بكتابة قم

>html dir=”rtl” < >FORM ACTION = “TAREA.PHP” METHOD=”POST”<ما هي وجبتك المفضلة ؟>br<>TEXTAREA NAME = “food” ROWS=”10” COLS =”50” < جبنةمربي مكرونةبيف برغر سمبوسةمعصوبمطبقمعجناتماخلص لو قعدت اكتب هاها>/TEXTAREA<>br<>INPUT TYPE = SUBMIT VALUE =”قم بإرسال الطلبات إلى الجرسون”<>/FORM<>/html<

باسم -3 الملف بحفظ .TAREA.htmlقم

النصوص . -4 محرر في جديد ملف بفتح قم اآلنالتالي : -5 الكود بكتابة قم

49

Page 50: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………>html dir=”rtl”<: وجبتك المفضلة هي>br<>?Echo $food; ?<>/html<

باسم -6 الملف بحفظ tarea.phpقملديك . -7 السيرفر مجلد في بوضعهما قمالبرنامج .-8 بتشغيل قم

http://localhost/tarea.htmlالبيانات .-9 الرسال الزر بضغط قم

10-. النتيجه شاهد

الشرح اإلفتراضية القيمة جهزنا كيف تالحظ أن نريدك أننا سوى هنا قولنا على شيئا النضيف

oال وسومات بين نصوص األسلوب textareaبكتابة استخدمنا أننا ارسال POSTوأيضا فيالعنوان . شريط في التظهر جعلها مما البيانات

oال اليحتوى NAMEوأن الكود في المتغير واسم القيمة إليه ستذهب التي المتغير اسم تحددكود $ ألنه . PHPوليس HTMLعلى

االختيار ) واحد( !Check Boxمربعات وقت في خيار من اكثرموقع في االشتراك نريد عندما الويب صفحات في االختيار مربعات نرى قد الواقع في

موقع . عند مساحة حجز أو إلكتروني بريد تسجيل نريد عندما أو محتوياته لرؤيه معينأو مثال فيها يشترك أن يريد التي األشياء أنواع لتحديد للمستخدم فرصة إتاحه هي وفائدتها

الجميع . قبول أو الجميع رفض أو ذلك غير أو إتفاقية لقبول له فرصة إتاحه

الوسم بواسطه العالمة مربع صنع INPUTيمكننا>INPUT TYPE = ”CHECKBOX” NAME = “majed” value= ”Majed” checked<

الجزء هذا في عالمة مربع بأنها األداة نوع بتحديد نقومTYPE = ”CHECKBOX”

الجزء هذا في المتغير اسم بتحديد نقومNAME = “majed”

العالمه مربع باختيار المستخدم قام اذا المتغير في وضعها يتم التي القيمه بتحديد ونقومالجزء : هذا في

value= ”Majed”

الخيار بوضع تقم لم هي value اذا االفتراضيه القيمه المستخدم on فستكون اختيار عند. المربع باختيار المستخدم يقم لم اذا فراغ وستكون العالمه مربع

50

Page 51: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

الكلمة بإضافه اإلفتراضية القيمه بوضع يكون checkedونقوم الكلمة هذه وضع تم فإذااالختيار . عالمة بدون فسيكون نتكبها لم إذا أما تلقائيا مختار العالمة مربع

Checkedعملي ) ( :1تطبيق

التالي :-1 الكود بكتابة وقم المفكرة بفتح قم>html dir=”rtl”<>FORM ACTION=”CHECK.PHP” METHOD = “POST”< مالذي تريد أن تفعله في الحياة ؟ )يمكنك اختيار أكثر من إجابه (>br<>INPUT TYPE=”CHECKBOX” NAME = “WIFE” CHECKED<.الذي أريد أن أفعله في الحياة هو أني أتزوج وأخلص وافتك من الزهق>br<>input type= submit value = “إرسال”<>/FORM<>/html<

باسم -2 الملف بحفظ .check.htmlقم

التالى :-3 بكتابة وقم المفكرة في جديد ملف بفتح قم>?Echo $WIFE ;?<

باسم -4 الملف بحفظ .check.phpقمالسيرفر . -5 مجلد الى الملفين بنقل قمالمتصفح -6 في اكتب

http://localhost/check.htmlالنتيجه -7

عملي ) ( :2تطبيق51

Page 52: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

باسم -1 جديد ملف في بحفظه وقم التالي الكود واكتب المفكرة check2.htmlافتح>html dir=”rtl”<>FORM ACTION=”CHECK2.PHP” METHOD = “POST”< مالذي تريد أن تفعله في الحياة ؟ )يمكنك إختيار أكثر من إجابة (>br<>INPUT TYPE=”CHECKBOX” NAME = “WIFE” value= “زوجة” CHECKED<.الذي أريد أن أفعله في الحياة هو أني أتزوج وأخلص وافتك من الزهق>br<>INPUT TYPE=”CHECKBOX” NAME = “jihad” value= “جهاد” <أبغى أروح الجهاد واخمع رؤوس الكفرة والمشركين>br<>INPUT TYPE=”CHECKBOX” NAME = “qran” value= “قران” CHECKED<والله لو ألتحق بتحفيظ قرآن واحفظ القران كامل وأطبقه في عملي وحياتي حرتاح في حياتي كثير >br<>input type= submit value = “إرسال”<>/FORM<>/html<

فيه :-2 التالى الكود بوضع وقم جديد ملف بفتح قم>html dir = “rtl”<>?Echo $WIFE . “ “ . $jihad . “ “ . $qran ; ?< >/html<

باسم -3 بحفظه check2.phpقمالملف .-4 بتشغيل قم النتيجه-5

52

Page 53: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

عملي ) (3تطبيق

التالي : -1 الكود واكتب النصوص محرر افتح>html dir=”rtl”<>FORM ACTION=”CHECK3.PHP” METHOD = “POST”< مالذي تريد أن تفعله في الحياة ؟ )يمكنك إختيار أكثر من إجابة (>br<>INPUT TYPE=”CHECKBOX” NAME = “alswalif[]” value= “زوجة” CHECKED<.الذي أريد أن أفعله في الحياة هو أني أتزوج وأخلص وافتك من الزهق>br<>INPUT TYPE=”CHECKBOX” NAME = “alswalif[]” value= “جهاد” <أبغى أروح الجهاد واخمع رؤوس الكفرة والمشركين>br<>INPUT TYPE=”CHECKBOX” NAME = “alswalif[]” value= “قران” CHECKED<والله لو ألتحق بتحفيظ قرآن واحفظ القران كامل وأطبقه في عملي وحياتي حرتاح في حياتي كثير >br<>input type= submit value = “إرسال”<>/FORM<>/html<

باسم -2 بحفظه check3.htmlقم

التالي : -3 الكود واكتب جديد من النصوص محرر افتح>html dir=”rtl”<>?Echo “$alswalif[0] >br<” ;Echo “$alswalif[1] >br<” ;Echo “$alswalif[2] >br<” ;?<>/html<

باسم -4 بحفظه السيرفر .check3.phpقم ملف الى بنقلهما وقمالبرنامج -5 بتشغيل قم

http://localhost/check.html للنتيجه -6 وانظر ارسال زر بضغط قم

53

Page 54: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

الشرح

تمارين ثالث بتطبيق قمنا لقد الواقع االول في أننا التمرين إلى النظر لفت قمنا أردنااستخدام القيمة valueبعدم إعطاء وتم العالمة onللمتغير مربع المستخدم اختيار عند

الخاصية وضعنا بسبب مختارا كان العالمة مربع أن غير CHECKEDباإلضافة التمرين ولكنقيم وضع بدون جيد وغير قمنا VALUEعملي فقد لذلك اختيار مربع من ألكثر وضعنا عند

في كما لها المستخدم اختيار عند المتغيرات في وضعها يتم قيم الثاني باضافه التمريناسم نجعل أن مثال أردنا فإذا بالمصفوفات يسمي شي الى التمرين في النظر لفت وأردنا

إلى نتطرق ولن المصفوفات نستخدم عليه أسرع تكون عمليات واجراء متشابها المتغيربالتفصيل المصفوفات عن بالتكلم وسنقوم فقط نظرك لفت أردنا ولكن حاليا المصفوفات

oال في الشرطية العبارات عن التكلم بعد والتكرارات هي الله باذن القادمه الدروس فيPHP .

( الراديو المفضل( ) !( RADIO BUTTONS ازرار المشروب اخترواحد !! خيار من اكثر اختيار اليمكنك بانه علما ؟ المفضل اختيارك ماهو

عند كثيرا ونراه اختيارات عدة بين من واحد شي تختار أن لك يتيح الراديو زر إن الواقع فيمن واحد ويكون رفضها أو اإلتفاقية بقبول إما فرصه يعطيك حيث البرامج اتفاقيات

. )! الرفض ) خيار وهو محددا االختيارين

العبارة باستخدام الراديو ازرار استخدام كالتالى : <INPUT<يتم

>INPUT TYPE = ”radio” NAME = “name” value= ”value” checked<

الجزء : هذا في راديو زر بانه الكائن نوع بتحديد نقومTYPE = ”radio”

الجزء : هذا في المتغير اسم بتحديد نقوم

NAME = “name” هنا : المتغير في ستكون التي القيمة بتحديد نقوم

value= ”value”

المتغير اسم بجعل نقوم الراديو ازار مع الواقع مختلفة nameفي والقيم نفسه valueهوفسيقوم . قيمة بوضع نقم لم وإذا سؤال القيمة PHPلكل للمتغير .onبوضع

عملي : تطبيقاسمه -1 ملف في بحفظه وقم التالي الكود واكتب لديك النصوص محرر بتشغيل قم

radio.html. >html dir=”rtl”<>form action = radio.php method = “post”<ماهو مشروبك المفضل ؟>br<>br<>INPUT TYPE = ”radio” NAME = “mshroob” value= ”شاي” checked<شاي>br<>INPUT TYPE = ”radio” NAME = “mshroob” value= ”قهوة” < قهوة

54

Page 55: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………>br<>INPUT TYPE = submit value= ”إرسال” <

>/form<>/html<

باسم -2 بخفظه وقم التالي الكود واكتب النصوص محرر بفتح radio.phpقم

>html dir = "rtl"<>?echo "مشروبك المفضل هو :" . " " . $mshroob;?<>/html<

إرسال . - 3 واختر المفضل المشروب باختيار قم

الشرح : للعباره تابعة تكون زر لكل قيمة بوضع قمنا ولقد راديو أزرار بصنع قمنا لقد الواقع في

عبارة . بوضع قمنا ولقد الزر بجوار على checkedالتي تحتوي التي األداة أن كيف ترى لكيأسفل موجودة تكون الزر بجانب تكون التي العبارة أن والحظ تلقائيا محددة تكون العبارة

مثل : الزر كود>INPUT TYPE = ”radio” NAME = “mshroob” value= ”شاي” checked<شاي

األحمر . باللون الملونة هي العبارةاألزرار جميع أن بحيث اإلختيارات لجميع فقط واحدا متغيرا استخدمنا أننا الحظ وأيضا

المتغير . هذا إلى تعود قيمتها

واسمها( : Lists Or drop down menus القوائم ) للمستقبل زوجتك مواصفات اختر oال في القوائم نستخدم htmlتستخدم أننا إذ السابقة األداوت عن قليال مختلف بشكل

لغة وسوم من وهما :htmlوسمين

55

Page 56: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

>select> و القائمة بإنشاء الخاصية <OPTION<لنقوم إتاحه MULTIPLEونستخدم نريد كنا إذاالمستخدم يختارها التي القيمة بوضع ونقوم قيمة من أكثر يختار أن للمستخدم الفرصه

الخاصية بواسطه متغير المصفوفات ) NAMEفي مفهوم وسيتضح متغيرات مصفوفة في أوالله . باذن المصفوفات درس في جيدا لديك

عملي : تطبيقباسم -1 ملف في واحفظه التالي الكود واكتب لديك النصوص محرر بفتح قم

lists.html : >html dir=”rtl”<>form action = “lists.php” method = “post”<ماذا تريد ان يكون اسم زوجة المستقبل)لغير المتزوجين ( ؟>br<>select name = “wife” <>option< هناء >/option<>option<جمانة >/option<>option<رزان >/option<>option<سحـــر >/option<>option<سارة >/option<>option<سمية >/option<>option<روان >/option<>option<دالل >/option<>option<اسم اخر >/option<>/select<>BR<ماذا تريد أن تكون مواصفاتها ؟>Br<>select name=”dis[]” multiple<>option<جميلة>/option<>option<متدينة>/option<>option<شقراء >/option<>option<جعداء الشعر>/option<>option<سوداء >/option<>option<سمراء >/option<>option<بيضاء >/option<>/select<>br<>INPUT TYPE=SUBMIT VALUE=”إرســال”<>/html<

56

Page 57: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

باسم -2 بحفظه وقم التالي الكود فيه واكتب جديد ملف بفتح :lists.phpقم>html dir=”rtl”<>?Echo “لقد أردت أن يكون اسم زوجتك ” . “ “ . $wife ;Echo “>br<>br<”;Echo “ولقد أردت أن تكون مواصفاتها “;

Echo “>br<>br<”;Echo “$dis[0] >br<”;Echo “$dis[1] >br<”;Echo “$dis[2] >br<”;Echo “$dis[3] >br<”;Echo “$dis[4] >br<” ; Echo “$dis[5] >br<”;Echo “$dis[6] >br<”;?<>/html<

البرنامج بتشغيل قم

http://localhost/lists.htmlارسال زر اضغط ثم ماتريد واختر

57

Page 58: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

الشرح :المتغير الى القيمة هذه تذهب ثم منها واحدة قيمة بإختيار تسمح قائمة بصناعة قمنا لقد

wife في القيم هذه بوضع وقمنا واحد عنصر من أكثر بإختيار تسمح ثانيه قائمة وصنعناالله ) ( . شاء ان قادمه دروس في المصفوفات معني سيتضح متغيرات مصفوفه

الخفيه ) ! االداة السريه (hidden control ( ) والمعلوماتصفحة الى ويب صفحة من المعلومات بعض إرسال إلى فيها تحتاج األوقات بعض هناك

هذه برؤية يقوم أن المستخدم التريد أنت الوقت نفس وفي النماذج طريق عن اخرى ويبالمعلومات .

بحقل يسمونها المستخدم على المعلومات هذه اخفاء على تساعدك أداة هناك الواقع فيالخفية ) األداة أو المخفي ( .hidden form field or hidden controlالنموذج

تم التي المعلومات اخفاء وهي األدوات بقية عن ومتميزا مختلفا دورا تلعب األداة هذه oال بواسطة المصنوع النماذج مع جدا مفيدة وهي السابق في شرحنا كما إذ PHPادخالها

متغيرات هي المخفيه المعلومات تكون بان أيضا لنا تسمح .PHPأنها

كالتالى : المخفية الحقول هذه صنع يتم

>INPUT TYPE=HIDDEN NAME =hidden1 VALUE=”الرسالة السرية”<

بوضع (HIDDENنقوم للمستخدم ) التظهر خفية المعلومات هذه أن المتصفح يعرف لكي oال في اسمه يتخزن والذي بالمعلومات باالحتفاظ يقوم الذي للمتغير اسما NAMEونضع

oال في اخفاءها نريد التي المعلومات بوضع .VALUEونقوم

oال طريق عن منها أيضا االستفاده الphp oنستطيع كود كتابة طريق عن HTMLوذلكاألمر الecho)( oبواسطة التالى : PHPفي المثال في كما

>?$msg1= “هذه العبارة لن تظهر ”; echo “>form<” ;echo “>input type=hidden name =secret value= ‘$msg1’<”;echo “>input type=submit<”;

58

Page 59: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………echo “>/form<”;?<

كود عن عبارة تراه الذي الكود بالHTML oهذا كتابته االمر PHPتم طريق ولقد )(echoعنمتغير قيمة تخزين متغير )php )$msgاستطعنا .)html )secretفي

عملي : تطبيقباسم - 1 واحفظه التالي الكود واكتب النصوص محرر :hid.phpافتح

>html dir=”rtl”<>head<>/head<>body<>?$car1= “لكزس”;$car2= “ماكسيما”;$car3=”الندكرزور”;Echo “>form method =get action=’hid2.php’<”;Echo “ماهي السيارة التي تتمنى أن تشتريها أو تحظي بها ؟”;Echo “>select name= ‘favcar’<>option<$car1>/option<>option<$car2>/option<>option<$car3>/option<>/select<>br<>br<>input type =hidden name = hid1 value=’$car1’<>input type =hidden name = hid2 value=’$car2’<>input type =hidden name = hid3 value=’$car3’<>input type = submit value=’إرسال’<

59

Page 60: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………>/form<”;?<>/body<>/html<

باسم -3 واحفظه التالي الكود واكتب النصوص محرر hid2.phpافتح

>html dir=”rtl”<>head<>/head<>body<>?Echo “لقد قمنا بعرض السيارات التالية عليك :>br<”;Echo “$hid1>br<”;Echo “$hid2>br<”;Echo “$hid3>br<”;Echo “>br<ولقد قمت باختيار:>br<”;Echo $favcar;?<>/body<>/html<

السكربت- :3 بتشغيل قم ثم السيرفر مجلد الى الملفين بنقل قمتhttp://localhost/hid.php

الشرح :

oال بسكربت نموذج بعمل قمنا )‘( )“( php لقد نعمل كنا كما من بدال oال استخدمنا أننا الحظ oال الحرفية ....... )htmlفي القيم أن سابق قلنا الننا المتغيرات وذلك درس ولقد( راجع

60

Page 61: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

oال متغيرات قيم بإدراج الphp oقمنا كود الكتابة )htmlفي إعاده من الكثير علينا يوفر مما طويال المستخدم النص كان حال ( . في

الله . باذن أكثر المقال لك وسيتضح مر من أكثر المثال اقرا

السر ) كلمات حقل (Password fieldsاستخداماستخدام يمكنك ذلك غير أو السرقة إلى التعرض من حماية أكثر المعلومات تجعل لكي

نجوم شكل على النص بإظهار يقوم بسيط نص مربع عن عبارة هو الذي السر كلمات حقولفي**** قليال جيدة الطريقة هذه فان شخص من أكثر يد على يستخدم الجهاز كان حال في

السرية . اآلخر معلومات شخص اليري أنارسال في المستخدم االسلوب كان إذا حماية اديت قد التكون فإنك ذلك مع الواقع في

االسلوب هو المستخدم اذا getبيانات جودة أكثر ويكون البيانات تشفير تستخدم كنت إذا إالاالسلوب تستخدم postاستخدمت تكن لم إذا الهاكر من محميا يكون لن SSL )Secureوايضا

Socket Layer( . البيانات تشفير بتنشيط تقوم لكي

عملي تطبيقباسم واحفظه التالي الكود واكتب لديك النصوص محرر بفتح pass.phpقم

>html dir=”rtl”<>body<>form method=post action=”pass1.php”<اسم المستخدم>br<>input type="text" name ="user"<>br<كلمة المرور>br<>input type="password" name ="pass"<>br<>input type = submit value=’إرسال’<>/form<>body<

61

Page 62: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………>/html<

باسم واحفظه التالي الكود واكتب لديك النصوص محرر بفتح pass1.phpقم>?Echo “اسم المستخدم هو : ”;Echo “>br<$user>br<”;Echo “وكلمه المرور هي :”;Echo “>br<>br<$pass”>?

لديك السيرفر مجلد الى الملفين بنقل قمالنتيجه . والحظ البرنامج بتشغيل قم

oال بواسطه االلكتروني البريد : phpارسالبريد ارسال سكربتات هناك فمثال السكربتات بها تنبض التي الحياة هو اإللكتروني البريدأكثر في استخدامها ويمكن ذلك غير أو ملحوظة أو معين بشي تخبره الموقع صاحب الى

مجال . منالدالة هي ذلك في تستخدم التي )(mailوالدالة

mail("$to", "$sub", "$msg”,”From:$you”);

الخانة في الرسالة ستصله الذي بريد بوضع الخانة to$وتقوم في الرسالة sub$وموضوعالخانة في الخانة msg$والرسالة في المرسل بريد أو أنت .you$وبريدك

عملي تطبيقباسم ملف في واحفظه التالي الكود بكتابة mail.htmlقم

>html dir=rtl<>head<

62

Page 63: lesson php

www.phpvillage.com KSA……………………………………………………………………………………………… >title<برنامج إرسال بريد>/title<>/head<>body<>form action="mail.php" method="post"<عنوان المرسل>br<>input type="text" name = "you"<>br<عنوان المستقبل>br<>input type="text" name = "to"<>br<موضوع الرسالة>br<>input type="text" name = "sub"<>br<الرساله>br<>textarea rows=10 cols=20 name = "msg" <>/textarea<>br<>input type="submit" value = "إرسال البريد االلكتروني"<>/form<>/body<>/html<

االسم بإعطاءه وقم التالي الكود بكتابة وقم اخر ملف بانشاء .mail.phpقم

>?

63

Page 64: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………mail("$to", "$sub", "$msg”,”From:$you”);?<

زر واضغط البيانات وامال البرنامج بتشغيل وقم السيرفر مجلد في الملفين بوضع قمبنجاح . ارسالها تم الرساله ان وستري االرسال

الشرطية األوامرالنماذج مع البيانات تعامل وكيفية المتغيرات عن فكرة السابقة الدروس في أخذنا لقد

عند... الكود من معين سطر تنفيذ بمعني بالكود التحكم كيفية سنتعلم الدرس هذا فيالذي السطر الى ونتجه السطر نتجاهل حصوله عدم وعند معين شرط حصول

ممتازة .. أشياء وتنفيذ قرارات نستخدم ويجعلنا بالكود أكبر تحكما يمنحنا هذا يليه oبال رائعة .PHPوبرامج

اليومية .... حياتنا من فكرة نعطيك دعناالتالي : من يتكون الذي فطورك تحضر أن وتريد الصباح في تقوم

عسل جبنة خبز شاي

، فطورك منها يتكون التي األشياء عن بالبحث تقوم ثم الثالجة إلى بالذهاب ستقومإلى تذهب ، حاجتك لشرائه التجاري المركز إلى للذهاب تستعد تريد ما تجد لم فإذاعام . بشكل البيت يحتاجها التي المؤونة عن وتبحث أخرى مره وتتأكد المطبخ

الخطوة -1 إلى تنتقل تجدها لم وإذا جبنة عن .3تبحثالخطوة -2 الى تنتقل وجدته فإذا العسل عن تبحث فإنك جبنة وجدت لم 4إذا واذا ،

الخطوة الى تنتقل .5تجدهالعسل .-3 عن بالبحث وتقوم جانبية ورقة في بكتابتها تقومالتجاري .-4 المركز إلى للذهاب تتجهزالتجاري .-5 المركز إلى للذهاب تتجهز ثم جانبيه ورقه في تكتبه

وجدتها ) فاذا معينة أشياء عن بالبحث تقوم كنت انك الحظت عن ( trueهل بالبحث قمتتجدها لم وإذا تليها لديك( .false) التي المشتريات قائمة في بتسجيلها تقوم

الشرطية والدوال المنطقية القيم64

Page 65: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

قيمتها ) منطقية متغيرات هناك بأن وذكرنا سابقا المتغيرات عن تكلمنا لقد الواقع فيعلى ( أمثلة وإعطاء شرحها سيتولي الدرس وهذا ، بشرحها نقم ولم خطأ إم صحيح إما

معها . التعامل كيفية

IFالعبارة IF condition is true ) صحيحا الشرط كان ) إذا{excute this code ) الكود هذا بتنفيذ )قم}

الدالة من ... IFإن التحقق بعملية تقوم أنها حيث البرمجة لغات جميع في تقريبا معروفةصحيحا ) الشرط كان إذا األشياء بعض وتنفيذ معين أخرى( trueشي أشياء بتنفيذ والقيام

صحيحا .... يكن لم أذا oال الكود PHPسيقوم بين بتنفيذ . {و } التي صحيحا الشرط كان اذا فقط

وتنفيذ بتجاوزه فسيقوم صحيحا يكن لم إذا يليه . أما الذي الكودمباشرة : األمر تكتب بل األقواس تستخدم وال واحد بسطر بجعلها تقوم أن أيضا ويمكنك

IF condition is true excute function;

استخدام من البد أنه يتكون {و } الحظ كان إذا أما أسطر عدة من يتكون الكود كان إذاالستخدامها . داعي فال واحد سطر من

صحيحين كلهما التاليين فالمثالين(1مثال)

>?$S=10IF )$S=10( echo 11;?<

( 2مثال ) >?$S=10IF )$S=10({ echo 11;}?<

ونسميه متغيرا المطر بإعطاء وسنقوم ممطر الجو أن مثال بإعطاء rainلنتخيل ونقومونسميه آخر متغير اسم الumbrella oالمظلة في أمر هناك أن بإفتراض phpوسنقوم

هو :go outيسمي بكتابته نقوم أن نريد الذي الكود اآلن حسنا

If $rain = true {$umberrlla = true}

65

Page 66: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

go out)(;

oال تأمر أن هو الكود هذا المظلة PHPفائدة الجو (umberrlla=true$)بحمل كان إذا معهالنزهه (rain=true$)ممطرا إلى سيخرج فإنه الشرط يتحقق ولم ممطرا يكن لم وإذا

مظلة . أي بدون

هيكلية للمستخدم التوضيح أجل من بذلك قمنا إنما بذلك تقوم دالة هناك ليس طبعاعام . بشكل الدالة عمل

المنطقيه ) القيم الى (Boolean Valuesمقدمهوإما صح إما وهما احتمالين من أكثر التحتمل التي األشياء إلى ترمز المنطقية القيم

. ) والنصيه ) الرقميه مثل سابقا نعرفها كنت التي غير القيم من جديد نوع وهي ، خطأ

مثال

>?$variable=true;echo “$variable”;?<

، صحيحا كان إذا المتغير قيمة وهو واحد الرقم يطبع أنه ستجد النتييجة برؤيه قمت لو ( ستكون فقيمته صحيح غير أو خطأ كان أذا ( .0أما

المنطقية المعامالت )* / - +( شيئا سنأخذ واالن ، ، ، التفصيل من بشيء سبق فيما الرياضية المعامالت أخذنا لقد

الشروط صناعة في تساعدنا التي المنطقية المعامالت وهي المعامالت من جديداالكود . في أكبر تحكما وتعطينا معين شي على والتقييدات

و < المعامالت : <التي الرياضيات في من واألصغر من األكبر عالمتي مع متآلفا تكون أن المفترض من

. بسيطا األمثله هذا فهم يجعل مما المدرسة في تتعلمها

>?If )6<5( {echo “الرقم ستة أكبر من الرقم خمسة ”;}Echo “>br<end”;?<

66

Page 67: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

oال الشرط )PHPسيقوم بفحص هذا مثالنا ( )5<6في صحيحا كان سيقوم( trueفإذاالسطر ) خمسه بطباعة الرقم من اكبر سته بطباعة( الرقم يقوم يكن endثم لم وإذا ،

وطباعة ) الكود بتجاهل فسيقوم فقط( .endصحيحا

وثابت ) متغير بين أو ورقم متغير بين المقارنة في استعمالها أيضا أو( constantيمكننامتغيرين . بين المقارنة أو العكس

(1مثال )>html dir =”rtl”<>?$LuckeyNumber = 5;If )$LuckeyNumber>6( {echo )“رقم الحظ أصغر من الرقم ستة ”(;}?<

( 2مثال )>html dir=”rtl”<>?$f=5;$r=10;If )$f <$r({echo "المتغير $f أكبر من المتغير $r";}else{echo "المتغير $r أصغر من المتغير $f";}

67

Page 68: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

?<>/html<

عملي : تطبيقباسم واحفظه التالي الكود واكتب النصوص محرر بتشغيل thegame.phpقم

>html dir = “rtl”<>body<>form method =get action=”game.php”<

؟10 و1ماهو الرقم الذي أفكر به اآلن والذي هو بين >br<>input type=”text” name=”number”<>br<>br<>input type =submit<>/form<>/body<>/html<

باسم واحفظه التالي الكود واكتب جديد من لديك النصوص محرر بفتح game.phpقم

>html dir=”rtl”<>body<>?$num = rand )1,10(;if )$number<$num( {echo “لقد اخترت رقم أكبر من الذي أفكر فيه” ; Echo “الرقم الذي أفكر فيه هو “;

68

Page 69: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

Echo $num;Echo “>br<”.“يؤسفنا فعال أنك لم تنجح ، نتمنى أن نقول لك في المرات القادمة “ ;}if )$number>$num( {echo “لقد اخترت رقم أصغر من الذي أفكر فيه” ; Echo “الرقم الذي كان في مخيلتي هو $num”;Echo “>br<”. “يؤسفنا فعال أنك لم تنجح ، نتمنى أن نقول لك في المرات القادمة “;}?> لقد نجحت</body></html>

التطبيق : شرح randالداله

( االول الرقم إياها اعطاءها يتم رقمين بين من عشوائي رقم باختيار الدالة هذه (xتقوم( األكبر هو الثاني والرقم األصغر (yهو

Rand )x,y(;مباشرة متغير في الدالة هذه بإخراجها تقوم التي القيمة حفظ يمكنك

مثال

$Num = rand )5.57(;الكود في به ماقمنا يوضح وهذا

$num=rand)1,10(;

قبل من إدخالها تم التي القيمة مع بمقارنتها قمنا ثم عشوائية قيمة باختيار قمنا لقدالعشوائي العدد قيمة من أكبر المستخدم أدخلها التي القيمة كانت فإذا المستخدم

األسطر ... في جليا ماتجده وهذا الصحيح الرقم من أكبر أدخله الذي الرقم بأن أخبرناهالتالية :

if )$number<$num( {echo “لقد اخترت رقم أكبر من الذي أفكر فيه” ; Echo “الرقم الذي أفكر فيه هو “;Echo $num;Echo “>br<”.“يؤسفنا فعال أنك لم تنجح ، نتمنى أن نقول لك في المرات القادمة “ ;}

69

Page 70: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

العشوائي الرقم من أصغر المستخدم اختاره الذي الرقم وكان الشرط ينطبق لم فإذاتقوم والتي فيه التي األوامر ويطبق الثاني الشرط الى ويتجه األول الشرط يترك فإنه

في جليا ماتجده وهذا ، المطلوب الرقم من أصغر باختياره قام الذي الرقم بأن باخبارهالتالية : األسطر

if )$number>$num( {echo “لقد اخترت رقم أصغر من الذي أفكر فيه” ; Echo “الرقم الذي كان في مخيلتي هو $num”;Echo “>br<”. “يؤسفنا فعال أنك لم تنجح ، نتمنى أن نقول لك في المرات القادمة “;}

آخرى ) ( كلمات أي بدون نجحت لقد الكلمة ويكتب يتركهما فإنه الشرطين يتطبق لم فإذاالمرات ) في لك نقول أن نتمنى ، تنجح لم أنك فعال يؤسفنا الكلمه نكتب كنا مثلما

هذه ( ) ( .... وتظهر أقول ما جيدا فهمت قد أنك أتمني ، نجحت لقد كلمة قبل القادمةالتالية : األسطر في جلية العبارة

?> لقد نجحت</body></html>

خسارته او نجاحه عند المستخدم بإخبار تقوم كاملة لعبة صنعنا قد نكون هذا . على

و : == === المساواة معامالت

وهانحن متغير في قيمة تخزين في سابقا الفردية المساواة عالمة باستخدام قمنا لقدالمزدوجة ) الساواة عالمة وهو المساواة عالمات من نوعا المساواة( ==نأخذ وعالمة

( .===المضاعفة )

المتغيرات . في القيم تخزين في العادية او الفردية المساواة عالمة نستخدم كنا لقد

مثال :

>?$m=12;?<

تساوي معينة قيمة ماكانت إذا تحديد في تستخدم اآلن عنها نتكلم التي العالمات ولكناخري . قيمة

مثال :

>?70

Page 71: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

$m=”11”;$u=11;If )$m==$u({Echo “القيم متساوية ”;}?<

أن وان m$الحظ حرفي رقمي .u$متغير متغيرالعادية ) المساواة عالمة نستخدم متغير إلى قيمة ارجاع نريد كنا اختبار( =إذا أردنا وإذا

المساواة عالمة بواسطة القيم باختبار نقوم متساوية أنها من معينة قيمة أو متغيرين( .==المزدوجه )

oال القيمه )php4.01 في والتعطي القيم باختبار تقوم جديدة مساواة عالمة إصدار تمtrue) إذا متساوية إال القيم أنواع البيانات كانت متساوية . وأنواع ايضا المتغيرات في

( : 1مثال )>?$m=”11”;$u=11;If )$m == $u({Echo “القيم متساوية ”;}?<

( : 2مثال )>?$m=”11”;$u=11;If )$m === $u({Echo “ لن يتم طباعة هذه الجمله على الشاشه النهما غير متكافئتان”; // القيم متساوية }?<

التوضيح71

Page 72: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

القيم وكانت القيم الختبار المزدوجة المساواة عالمة استخدمنا األول المثال في أننا الحظولكن ) ( مختلف البيانات نوع أن مع متساوية القيم أن طباعة فتم المتغيرين في متساويةوذلك شي أي طباعة يتم لم المضاعفة المساواة عالمة استخدمنا عندما الثاني المثال في

فالمتغير مختلف البيانات نوع ولكن متساوية القيم المتغير m$الن بينما رقمي .u$حرفي

المعامالت : =! و ><المساواة ) عدم عالمة هي المساواة عالمة عكس ( !=إن

مثال :

>?If )5!=99(Echo “القيم غير متساوية”; ?<

أن صحيح )99التساوي 5الحظ الشرط فإن غير( trueلذلك القيم أن بطباعة قام لذلكمتساوية .

( oال عالمة هو من وأصغر من أكبر عالمة من الضد قيمة( )<<إن بارجاع يقوم إذا( trueوهوعالمة مثل أنه أي بعضهما عن مختلفتين القيمتين .!=كانت تقريبا

مثال :>?If )5><99( Echo “القيم غير متساوية”; ?<

المساواة وعدم المساواة عالمات على عملي تطبيقالتالي : الكود واكتب لديك النصوص محرر بفتح قم

>html<>head<>/head<>body< >Form method =get ACTION= “quiz.php”<ماهو اسم الرجل الذي يسمي بالفاروق ؟>br<>br<>input type =”radio” name = “man” value=”عمر”<عمر بن الخطاب رضي الله عنه>br<>input type =”radio” name = “man” value=”أبوبكر”<أبو بكر الصديق رضي الله عنه>br<>input type =”radio” name = “man” value=”عثمان”<عثمان بن عفان رضي الله عنه>br<>input type = submit<>/form<>/body<>/html<

72

Page 73: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

باسم ...quiz.htmlاحفظها

التالي : الكود واكتب لديك النصوص محرر بفتح قم>html dir=”rtl”<>head<>/head<>body<>?If )$q==”عمر ”( Echo “اإلجابة صحيحة”;If )$q!=”عمر”( Echo “اإلجابة خاطئة”;?<

باسم بحفظه السيرفر quiz.phpقم مجلد في وضعهما

الملف بتشغيل quiz.htmlقم

المنطقيه ) ( AND,OR,NOT المعامالت

وأيضا شروط مجموعة من التحقق بعد الكود بتنفيذ لك تتيح المنطقية المعامالت هذه إنشرط : ) من أكثر تحقق إذا الكود (ANDتنفيذ

أشياء : ) عده بين من معين شي تحقق (ORأوآخر : ) شي بتنفيذ تقوم لكي شي صحة عدم من التحقق مثال (NOTويمكنك

البيت : . من أخرج فلن شديده والعاصفة ممطرا الجو كان إذا تقول أن مثال فيمكنكالمنتزه : . الى بالخروج فسأقوم أمطار اليوجد أو هادئا الجو كان إذا تقول أن ويمكنك

نزهة : . إلى بالخروج سأقوم ممطرا الجو يكن لم إذا تقول أن أيضا ويمكنك

بين الشروط هذه بجعل تقوم أن مراعاة عليك الدوال لهذه استخدامك عند ولكنقوسين .

73

Page 74: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

) && ( ونظيره (ANDالمعامل )

المعامل ) استعمال شي( &&والمعامل( )ANDيمكننا لتنفيذ شروط عدة صحة من للتحققمعين

( 1مثال)>?$w=10;$g=12;IF )$w=10 and $g=12(Echo )“لقد تحققت جميع الشروط”(;?<

(2مثال )>?$w=10;$g=12;IF )$w=10 && $g=15(Echo )“لقد تحققت جميع الشروط”(;?<

المعاملين ) باستخدام شرط من أكثر من التحقق بعملية قمنا السابقين المثالين و &&فيand .... ) الشروط جميع تكن لم وعندما األمر تنفيذ تم الشروط جميع تحققت فعندما

األمر . تجاهل تم صحيحةصحيح )( : بشكل الكود يعمل لكي قوسين بين الشروط بجعل قمنا أننا الحظ

)$w=10 && $g=15()$w=10 and $g=12(

) || (ونظيره (ORالمعامل )

الكود ORالمعامل بتنفيذ يقوم فإنه منها واحد أي تحقق وإذا شروط عدة من بالتحقق يقومالعمليه( .||ونظيره ) بنفس يقوم الذي

(1مثال )>?$E=100;$T=8; IF )$E=14 OR $E=55 OR $E = 10 OR $T=8 ( Echo )“لقد تحقق أحد هذه الشروط”(;?<

( 2مثال )>?$E=100;$T=458; IF )$E=14 || $E=55 || $E = 10 || $T=8 ( Echo )“لقد تحقق أحد هذه الشروط”(;

74

Page 75: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

?<

الشروط ) ( هذه أحد تحقق لقد السطر طباعة تم الشروط هذه من واحد تحقق عندما إذن.

األسبقية && || لها و الرموز أن تعرف أن يجب لكن األهمية بتلك التكون قد ملحوظةاستخدام على .ORو ANDواألفضلية

) ! (ونظيره NOTالمعامل

استخدام اليمكنك الواقع لغة NOTفي في موجودة أصال ليست ألنها يمكنك PHPأبدا لكنهناك ) ! ( أن من بالتأكد القيام وهي وظيفتها نفس يؤدي فهو لها كبديل المعامل استخدام

صحيحة ) غير معين( .FALSEقيمة شي تنفيذ يتم لكي

>?$F=”ماجد”;IF !)$F==”نعمان”(Echo )"أهال بك"(;?<

oال يقوم السابق المثال المتغير PHPفي أن من الحرفية F$بالتأكد القيمة على اليحتوي ( ) المعامل) باستخدام ذلك ويتم السطر ( !نعمان بطباعة يقوم ذلك من التأكد يتم وعندما

) بك) أهال

) ! ( oال فإن المعامل بواسطة متغير باختبار نقوم عندما أننا إلى المتغير PHPونشير وجد إذاوهي صفر القيمة يعطيه انشاؤه يتم لم أو .FALSEفارغا

مثال IF )!)$R(( Echo )10(;

<=واستخدام المعامالت >=

يساوي أو من أصغر عالمتي هي الرياضيات في والمشهورة المعروفة المعامالت <=منيساوي أو من أكبر بالo <=أو وظيفتها بنفس تستخدم ماكانت phpوهي إذا معرفة وهي

لفهم أشمل مدخال تعطيك األمثلة وهذه ، آخري قيمة تساوي أو من أكبر أو أصغر قيمةالدوال : هذه

>?$t = 15;If )$t <= 10 ( Echo )“ممتاز” . “>br<”(; $t = 5;If )$t >= 9 ( Echo )“جيد جدا”(;?<

المعامالت تجميع

75

Page 76: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

، المعامالت من مجموعة باستخدام القيم من مجموعة من نتحقق أن الشرط في يمكننامعامل )( من أكثر سابقا نستخدم كنا مثلما أقواس داخل المجموعات هذه بتجميع ونقوم

. )* / األقواس)+ - باستخدام ، ، ،

التالى : مثالنا في وجليا واضحا ذلك وسيبدو

>?$a=10;$y=5;$t =29;If ))$a == 10( or )$a==54( and )$y !=25( and )$t <= 11(( Echo "تحققت جميع الشروط"; ?<

المثال بشرح قمنا ولو صحيحة تكون السابق التعبير تجميع قيمة ألنه طباعة سيتموهو : األول القسم برؤية فسنقوم

)$a == 10( or )$a==54(القيمة يحمل المتغير .10وطبعا صحيحا الجزء هذا فسيكون

الجزء : برؤية نقوم ثم

)$y !=25( and )$t <= 11(الشروط ) ( . جميع تحققت الكلمة طباعة وتم الشروط جميع من التحقق تم وطبعا

الشروط ) (elseو else ifتعددللعباره هيكلية من أكثر استخدام التالية :ifيمكننا الهيكلية مثال فهناك

If condtion is true {Excute code}Else {Excute other code }

تجده لم وإذا األول الكود بتنفيذ قامت صحيحا وجدته فإذا الشرط من بالتحقق تقوم وهياآلخر . الكود بتنفيذ ستقوم صحيحا

مثال

>? $age=10; If )$age<18( {echo "مرحبا بك في أكبر موقع تجاري إلكتروني";}else{echo “ممنوع دخول األطفال الموقع ألنهم اليملكون المال”;

76

Page 77: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

}?<

التالية : الهيكلية استخدام أيضا ويمكنناIf condtion is true {Excute code}Elseif {Excute other code }Else {Excute other code }

تنفيذ سيتم صحيحا الشروط من شرط أي يكن لم فإذا شرط من أكثر بتطبيق تقوم وهيكلمه بعد يقع الذي مثال . :elseالكود

<?$age=10; If )$age>=18( {echo "مرحبا بك في أكبر موقع تجاري إلكتروني";}elseif ($y <= 44);{echo “مافي مشكلة برضه إذا كنت كبير ”;}else {echo “ممنوع البقية”;}?>

الشرطية تداخل العباراتونعني تداخليمكنك ، الشرطية تقوم بتداخلالعبارات أن هي الشرطية من العبارات بأكثرمتداخله عملية شرطيه صحيحا آخر شرط يكون أن يجب فإنه صحيحا ما شرط كان إذا فمثال

ذلك . وغير معين شي حصول يتم لكيمثال :

<?$h=”majed”; $f=45; If ($h = = “majed” ) { If ( $f= = 45)

{ echo “ صحيحان والرقم االسم ”;

} else

77

Page 78: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

{ echo (“ صحيح غير الرقم “ );

} }else {echo “ صحيح غير الدخول تسجيل اسم “ ; }?>

جدا بسيط مثال مجرد قيمة لتداخل هذا على اختبار بإجراء يقوم حيث الشرطية الدوالاالختبار تجاوز تم فإذا ثاني اختبار بإجراء بنجاح االختبار ذلك تجاوزه عند يقوم ثم معينة

في الفشل عبارة طباعة يتم االجتياز يتم لم وإذا صحيحان والرقم االسم طباعة يتم الثانياالجتياز .

عملي تطبيق سابقا عنه ماتكلمنا فيها نستخدم بسيطة مسابقة بصناعة التطبيق هذا في سنقوم

ملف -1 بانشاء .Msabqa.htmlقمفيه : -2 التالي الكود بكتابه قم

>html<>body<

>form method="POST" action="msabqa.php" dir="rtl"<>br< هو الراشدين أمن الخلفاء ول >p<>br<>input type="radio" value="abubaker" name="s"< الصديق أ بوبكر >br<>input type="radio" value="3mar" name="s"<عمر>br<>input type="radio" value="3thman" checked name="s"<عثمان>br<>br<>br<

>/p<

>p<>input type="submit" value="ارسال"< >input type="reset" value=">p/<>"حــــــــــذف>/form<

>/body<>html<

بتسميته وقم ملف بفتح msabqa.phpقم

<?<html dir = “rtl”>If $s == “3mar”{

صحيحة اإلجابه }else {echo “ خاطئة اإلجابه ”;

78

Page 79: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………}?>

Switchالعبارة Switch (VARIABLE) {

CASE THING1 :Excute code ;

break;CASE THING2 :

Excute code ;break;

Default; Excute code ;

}العبارة عملية بنفس العبارة قيمة ifتقوم اختبار لك وتتيح أكثر ومحببة أسهل بهيكلية ولكنعليه . اختبار من أكثر وإجراء متغير

break; مثل معينه عباره من بالخروج بعدها .ifو switchتقوم التي والعبارات األوامر الى والذهاب

EXIT; التوضيحية األمثله وفي ، بعدها أوامر أي والتطبق نهائيا الكود من الخروج بعملية تقوم

أن ستجد فقط );breakالتالية العبارة من الStatement )oتخرج من ;exitبينما بالخروج تقومالكود ) (. codeكامل

مثال :<?$s=10;if ($s=10) {

79

Page 80: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………echo “number=10”;exit;}elseif ($s<11) { echo “number is less than 11”{ echo “hello”;?>

مثال :<?$s=10;if ($s=10) {echo “number=10”;break;}elseif ($s<11) { echo “number is less than 11”{echo “Hello”;?>

Defualt;الحاالت ) جميع تصلح لم العبارة( )Casesإذا بعد( Switchفي تقع التي األوامر تنفيذ فسيتم

عمل نفس تؤدي وهي الكلمة العباره elseهذه في .ifتقريبا

( 1مثال ) <?$g= “ahmed”;Switch ($g) {

Case “ahmed”:Echo “مسموح “; Break ;

Case “khaled “ : Echo “ممنوع “ ;Break ;

Case “salem“ : Echo “ممنوع “ ;Break ;

Case “Mohmed “ : Echo “مسموح “ ;Break ;

Default ;Echo “ صالح غير اسم ادخلت لقد ”;

} ?>

(2مثال )

Switch ($g) {80

Page 81: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

Case $g>50:Echo “كبير “; Break ;

Case 40 :Echo “الباس “ ;Break ;

Case ($g<15) : Echo “ ممنوع أطفال “ ;Break ;

Case 30 : Echo “مسموح “ ;Break ;

}

فاننا االرقام وعند مزدوجة تنصيص عالمتي الى نحتاج لنصوص اختبارنا عند أننا الحظذلك . الي النحتاج

عملي تطبيقباسم واحفظه التالي الكود واكتب لديك النصوص محرر بفتح age.htmlقم

<html><form method=post action=”age.php”>

؟ عمرك كم <br><input type=”text” name = “g”><input type=submit value=”ارسال”></form></html>

باسم واحفظه التالي الكود واكتب لديك النصوص محرر بفتح age.phpقم

<? Switch ($g) {

Case $g>50:Echo “كبير “; Break ;

Case 40 :Echo “الباس “ ;

81

Page 82: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

Break ; Case ($g<15) :

Echo “ ممنوع أطفال “ ;Break ;

Case 30 : Echo “مسموح “ ;Break ;

} ?>

الشرحالعبارة ويجب Switchتقوم عليه افتراض من أكثر إجراء ويمكنك ما متغير قيمة باختبار

الكلمة كتابة العبارة ;breakعليك تنفيذ بإيقاف تقوم بكتابة switchلكي قمت لو فمثالالتالي : الكود

<?$g=40 Switch ($g) {

Case $g<50:Echo “1 “;

Case 40 :Echo “2“ ;

}?>

الرقم المستخدم ادخل لم 40فاذا ألنك وذلك كالهما واثنين واحد الرقمين طباعة فسيتمالمطلوبة . العمليات جميع وطبقت التحقق فاكملت العبارة بإيقاف تقم

oال وسوم من htmlالتخلصشي أي ادخال يستطيع فإنه فيه شي كتابة المستخدم من وأردت نص مربع بوضع قمت إذا

كالتالى النص مربع في كتب أنه ولنفترضI am <b>ahmed</b> …

كالتالى : معالجتها بعد بعرضها المتصفح فسيقومI am ahmed ….

ذلك على عملي بتطبيق ولنقمباسم واحفظه التالي الكود واكتب النصوص محرر بفتح htmlch.htmlقم

<html dir="rtl"><form method=post action="html.php">

الكريم اسمك أدخل <br><input type="text" name = "fname"><input type=submit value="ارسال"></form></html>

82

Page 83: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

باسم واحفظه التالي الكود واكتب النصوص محرر بفتح html.phpقم<?Echo “ طباعتها عند للعبارة الطبيعي الشكل هو هذا ”;Echo “<br>” . $fname; ?>

الملف بتشغيل قم ثم السيرفر مجلد في الملفات بوضع مربع htmlch.htmlقم في واكتبوسوم بين وضعه شي أي htmlالنص

مثال :I am <b><i>alfareees</b></i>

oك الوسوم مع التعامل قدتم أنه عادي htmlستجد كنص تعرضها ولكي عادي كنص وليسالدالة باستخدام تقوم فإنك

HtmlSpecialChars)(; oال كود بمعاملة ستقوم أنها .htmlحيث تماما وطبيعي عادي كنص

oال ملف بتعديل نقوم كالتالى :html.phpإذا ليصبح

<?$fname = HtmlSpecialChars($fname); Echo “ الدالة استخدام بعد الشكل هو هذا ”;Echo “<br>” . $fname; ?>

والمصفوفات االتكرار توصناعة الشرطية الدوال وهو البرمجة أساسيات من شيئا السابق الدرس في اخذنا لقد

والمصفوفات . التكرارت وهو عمله الكمبيوتر جهاز يحب شي إلى نتجه نحن واآلن القرارات

الباكر الصباح في اإلفطار مثل مستمر بشكل تفعله شي يوميا لديك يكون قد الواقع فيالبرمجه .... لغة في الشي هذا نسمي نحن دائما الروتين هذا على تستمر انك ، مساء والنوم

التكرار .

على ... بالكتب الخاصة مكتبك درج يحتوي قد الواقع في المصفوفات يسمي آخر شي هناكعلى يحتوي منها الثاني والدرج اإلسالمية الكتب على يحتوي منها االول الدرج أدراج عدة

83

Page 84: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

في ... مدرس أنك لنفرض أو الرياضيات كتب على يحتوي الثالث والدرج الرياضية الكتبالرياضيات مادة تدريس مثال لديك األولى الحصة ففي للحصص جدول ولديك المدارس إحدي

إن.... .... الكيمياء مادة تدريس لديك والثالثة العلوم مادة تدريس لديك الثانية والحصةاألخري عن تختلف حصة كل أن إال حصص تسمي كلها أنها مع معين بشكل مرتبة حصصك

،الثالثة ! ) .....( . الثانية ، االولى الحصة تصاعدي بشكل مرتبه وهي المادة في

من .... اكثر ولها ثابت اسمه متغير عن عبارة المصفوفات بالمصفوفات التقنية هذه نسميالقيمة رقم ثم المتغير تكتب فانك القيمة على تحصل ولكي معين رقم لها قيمة وكل قيمة

رقم قيمة ولكل قيمتين هناك يكون فقد متسلسلة القيم هذه تكون أن اليشترط فيه، التيرقم مثال الثانية القيمه عن البعد كل ويبعد تماما 258و 1يختلف تماما مختلف كالهما

االخر . عن البعد كل ويبتعدويساعدك للكود األسطر عدد توفير على يساعدك المصفوفات مع التكرارات ميزة دمج إن

األسطر . من ممكن عدد أقل في عجيبة أشياء صنع على

التكرارات الدوال سابقا اخذنا ولقد المرات من معين بعدد معين أمر تكرار عن عبارة التكرارات

الشرطية العبارات في نكتبه الذي الكود أن فوجدنا باألصح الشرطية العبارات أو الشرطية صحيحا الشرط يكون عندما إال تتنفذ ال

الكود بعمل تقوم فإنها صحيحة قيمته كانت فإذا الشرط تختبر فهي التكرارت أيضاالكود تنفيذ بإعادة تقوم فإنها صحيحا كان فإذا القيمة اختبار بإعادة تقوم ثم المطلوب

البرنامج اكمال ويتم الكود تنفيذ عن تتوقف فإنها صحيحا الشرط يكون ال عندما أما ، وهكذاالتكرارات ... . من أنواع ثالثة هناك عادي بشكلالدالة هي البداية في بأخذها نقوم دالة أول whileإن

whileالتكرار التكرار بأخذ قمنا هي :whileلقد التكرار هذا وصيغه جدا بسيط ألنه

While )condition شرط ) { code}

مثال : >?$d =10 ;

84

Page 85: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………while )$d>15( {echo “$d >br<”;$d++;} ?<

oال المتغير PHPسيقوم بإعطاء التكرار 10القيمة d$أوال ببدء بعد يقوم كان whileثم فإذاالرقم ) من أصغر المتغير أن وهو صحيحا بين( 15الشرط الذي الكود بتنفيذ يقوم فإنه

القيمة على واحد بإضافة يقوم ثم المتغير بطباعة يقوم أن الكود هذا وعمل األقواسالمتغير في فسيتم d$الموجودة صحيحا كان فإذا ثانية مرة الشرط اختبار سيتم ذلك بعد ثم

التي الكود إكمال ويتم التكرار عندها فيتوقف صحيح غير الشرط يكون حتي العملية نفساالقواس . بعد تقع

النهائي .... يكون وقد التكرار يتوقف فلن للتكرار حد بوضع تقم لم إذا

مثال : >?$d =10 ;while )$d>15( {echo “$d >br<”;} ?<

الرقم طباعة مايوقفه 10سيتم هناك وليس دائما صحيح الشرط ألن التكرار يتوقف ولنالقيمة على واحد نضيف كنا أننا بسبب الكود إيقاف استطعنا السابق الكود في بينما

الشرط يصبح حتي القيمة تتغير ما كل الكود اختبار اعادة يتم وكلما المتغير في الموجودةأن بسبب صحيح من d$غير .15أكبر

do - whileالتكرار البسيطة االختالفات بعض يوجد أنه إال األول التكرار طريقه بنفس يعمل التكرار هذا

كالتالى : وصيغته

do codewhile )conditionشرط (;

85

Page 86: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

مثال : >?$f=15 ;do {echo $f; $f++;}while )$f > 10( ; ?<

الشرط بإختبار بتنفيذ يقوم ثم أوال القوسين بين الموجود السطر بتنفيذ التكرار سيقومعلى واحد إضافة وهي القوسين بين الموجودة العملية بإعادة قام صحيحا الشرط كان فإذا

األول .. f$المتغير التكرار في أننا الحظ التوقف فيتم صحيح غير الشرط يكون حتي وهكذاثم أوال الكود بتنفيذ قمنا الثاني التكرار في بينما عمل أي صناعة قبل الشرط باختبار قمنا

االختبار . بإجراء قمنا

FORالتكرار عند األوامر تكرار وهي وظيفتهما نفس هي وظيفته لكن سابقيه عن التكرار هذا يختلف

معين شي حصول

الصيغة : For )counter عداد ; test value اختبار القيمة ; set counter اداء عمليه على العداد ( { code شفرة}

مثال :>?For )$u = 18 ; $u<10 ; $u--({echo $u."\t\t";} ?<

حيث .... قيمة على يحتوي متغير فيه نضع األول القسم أقسام ثالثة من التكرار هذا يتكونسيقوم الذي الشرط فيه نكتب الثاني والقسم القيمة هذه عند من العمل التكرار سيبدأ

الثالث ) ( والقسم االول القسم في المتغير لقيمة اختبار كالمعتاد هو والذي بفحصه التكرارسيقوم التي كود بكتابة نقوم ثم تكرار كل عند المتغير على سيجري الذي العمل فيه نضع

القوسين . بين التكرار بتنفيذها

86

Page 87: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

oلل نقول المتغير phpكأننا بإعطاء البداية في يقوم أن عامي ان 18القيمة u$بشكل وقبلبإنقاص يقوم فإنه صحيحا الشرط كان فإذا الشرط بتحليل يقوم أن عليه الكود بتنفيذ يقوم

المتغير من المتغير u$واحد يصبح حتي الكود تنفيذ الo 9قيمته u$ويتم آنذاك PHPفيقومالقوسين يلى الذي الكود الي والذهاب التكرار من .بالخروج

المصفوفات كيفية ونعرف لنعرفها اآلن الوقت وحان بسيط بشكل سابقا المصفوفات بتعريف قمنا لقد

عنصر . ) أو قيمة من أكثر على يحتوي المتغير وهذا متغير عن عبارة المصفوفات عملهاElement( )فهرسة له عنصر بتحديدها( Indexوكل تقم لم إذا الصفر من الفهرسة هذه تبدأ

مثال :>? $A[ ] = “Majed”;$A[ ] = 13; ?<

oال سيقوم المثال هذا فتصبح PHPفي الرقم بوضع فسيقوم تلقائيا الفهرسة بإعطاءكالتالى : فهرسته المتغير

$A[0] = “Majed”;$A[1] = 13;

oال ولكن أنفسنا تلقاء من األرقام هذه بإدخال نقم لم أن PHPإننا يمكننا أنه مع بوضعها قامكتبنا : لو فمثال عادي بشكل ندخلها

>? $A[0]= “Majed”;$A[1] = 13; ?<

oال أي PHPسيقوم نكتب أن أيضا يمكننا أخري فهرسة أي يضع ولن المعتمدة الفهرسة بأخذاالرقام في الترتيب على والنعتمد فهرسة

مثال :>? $A[10 ] = “Majed”;$A[ 25] = 13; ?<

oال وقام المصفوفة متغيرات نوع بتعريف نقم لم أننا أيضا الحظت PHPهل تلقائيا بتعريفها oال يقم فلم ذلك ورغم رقما استخدمنا ومرة حرفية قيمة استخدمنا فمرة منا بعمل PHPبدال

oال فإن ذلك إلى إضافة اعتراض فهو PHPأي تلقائيا المصفوفة عناصر عدد بتحديد يقومعنصرين . هو الكلي المصفوفة عناصر عدد أن السابق المثال من مثال يعرف

oال استخدام PHPيمنحنا يمكننا فمثال الفهرسة في باألرقام التقيد عدم وهي أخري ميزةعادية . حروف

مثال :>? $A[“a” ] = “Majed”;

87

Page 88: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………$A[“b” ] = 13; ?<

ال يعترض ولم الحرفية القيم استخدمنا أننا من oPHP الحظ عنصر أي طباعة ويمكننا بتاتابساطة . بكل المصفوفة عناصر

مثال :>? $r [“aa”] = “Majed sa”; $r [1] = 483;$r [20] = 1424;echo $r[aa] ."\t"; // "\t" ما هي الى مسافة فقطecho $r[20] ."\t"; // "\t" ما هي الى مسافة فقطecho $r["aa"];?<

الحرفي ) النص نكتب أن بين فرق بدون( aaال كتابته وعند الطباعه عند تنصيص عالمتي بين ... oال سيقوم تنصيص . PHPعالمات تلقائيا ذلك بمعرفة

أخري بطريقة أيضا المصفوفات تعريف يمكننا

$variable = array )elements( ;

مثال :>?$t =array )“Majed”, “SA”, “Mohammad”, “Ali”(; echo $t [0]; ?<

oال كالتالى : PHPيقوم فتصبح فهرسة رقم المصفوفة عناصر من عنصر كل بإعطاء

Element العنصر Index الفهرسهMajed 0

SA 1Mohammad 2

Ali 3

88

Page 89: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

oال سيطبعها التي القيمة هي PHPإذن النهايه الMajed oفي أن الحظ ،PHP رقم بإعطاء قام oال جعل يمكننا ولكن الصفر من بالبدء وقام واحد PHPالفهرسة الرقم من الفهرسة يبدأ

كالتالي :

>?$r = array )1=<”Majed”, “SA”,”Mohammad”, “Ali”(;?<

oال سيقوم األولى للقيمة الفهرسة لرقم تعريفك بشكل PHPعند فهرسة أرقام بإعطاء ، تسلسلي

كالتالى : الفهرسة ستصبح عندئذ

Element العنصر Index الفهرسهMajed 1

SA 2Mohammad 3

Ali 4

حروف : عن عبارة هي الفهرسة أيضا لتكون طريقة هناك

>?$r = array )“M1”=<”Majed”, “M2”=< “SA”, “M3”=<”Mohammad”, “M4”=< “Ali”(;?<

كالتالى : الفهرسة ستصبح عندئذ

Element العنصر Index الفهرسهMajed M1

SA M2Mohammad M3

Ali M4

ببساطه . ذلك عمل فيمكننا المصفوفة في عنصر أي تغيير نريد عندما

مثال :$r [M2]= “لمياء”;

من ) القيمة بتغيير قمنا أننا ( ....SAالحظ لمياء( ) كذلك : ( الى أليس بسيطة طريقة

القيم واستخراج المصفوفات قراءه89

Page 90: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

التكرار عن سابقا Forتكلمناالتكرارات طريق عن وقت وتوفير بساطة في وطباعتها مصفوفة عناصر استخراج يمكننا

المصفوفة : هذه لديك أن لنفرض>?$people =array )“Majed”, “SA”, “Mohammad”, “Ali”(; ?<

فيها المتواجدين االشخاص جميع أسماء تطبع أن واردت oال فإن لها فهرسة رقم بتعريف نقم لم إذا المصفوفة أن نعرف نحن ببداية PHPأوال يقوم

األول العنصر رقم فان ذلك وعلى الصفر من الرابع 0فهرستها العنصر ذلك ... 3ورقم علىكالتالى : المصفوفة بطباعة يقوم الذي التالي الكود كتابة بساطه بكل يمكننا

>?$people =array )“Majed”, “SA”, “Mohammad”, “Ali”(; echo “$people[0]. >br<”;echo “$people[1]. >br<”;echo “$people[2]. >br<”;echo “$people[3]. >br<”;?<

متعبة الطريقة هذه تبدو ألن مصفوفة في اسم آالف ثالثة أو ثالثين لديك أن لنفرضقليال !!!

التكرارات . طريق عن وهي أخري طريقة هناككتابة نستطيع فإننا عشرة الى واحد من االرقام بطباعة يقوم تكرار كتابة أردنا أننا لنفرض

التالى : بالشكل التكرار

>?For )$I=1;$I>11;$I++( {Echo "$I >br<";} ?<

عملية إجراء هو ماعلينا كل المصفوفة في عناصر األربعة طباعة نريد أننا لنقل واآلنذلك : يتم لكي الكود على بسيطة

>?$people =array )"Majed", "SA", "Mohammad", "Ali"(;

For )$I=0;$I>4;$I++( {Echo "$people[$I] >br<";} ?<

90

Page 91: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

من أقل يكون أن اشترطنا ثم صفر بالقيمة العداد بدأنا أننا في 4الحظ عنصر آخر ألنفهرسته رقم بقيمة 3المصفوفة يزداد بجعله قمنا عناصر 1ثم جميع طباعة نريد ألننا

طباع تكرار كل في سيتم ذلك وعلى الفهرسة خانة في العداد رقم بوضع وقمنا المصفوفةالعداد . رقم تساوي فهرسته الذي المصفوفة عنصر

مصفوفة . شكل على قائمة من القيم إخراج عن النماذج درس في سابقا تكلمنا لقدمثال :

>form action = “array.php” method = post<ما هو مشروبك المفضل ؟>br<>select name = “a[]” multiple<>option<شاي>/option<>option<قهوة>/option<>option<كابتشينو>/option<>option<توت>/option<>option<برتقال>/option<>/select<>br<>input type=submit value = “لذيذ” <>/form<

oال ملف اكتب : array.phpفي

>html< : لقد قمت باختيار التالى>?For )$I=0;$I>4;$I++( {Echo "$a[$I] >br<";} ?< >/html<

قوسين ... للقائمة المتغير اسم في وضعنا أننا الحظ عناصر خمسة القائمة في عرضنا ]لقد] oال يتعرف الhtml oلكي قام ذلك بعد تلقائيا البيانات تخزين سيتم أنه بفهرسة PHPعلى

تزيد لن بالطبع ولكنها أربعة أو ثالثة كانت سواء العميل قبل من إرسالها تم التي العناصرهو .... المصفوفة به تنتهي رقم آخر سيكون ذلك على خمسة .4على

.... أيضا المصفوفة طريق عن القائمة صناعة يمكننا المصفوفات تحب بدأت اآلن أنك أتوقع....

91

Page 92: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

مثال :>form action = “list.php” method = post<ما هو مشروبك المفضل ؟>br<>select name = “s” <>? $shrab =array)“ برتقال”,”توت”,”كابتشينو”,”قهوة”,”شاي ”(;For )$k=0;$k>4;$k++( {echo “>option<”.$shrab[$k].”>/option<”;}?<>/select<>/form<

المتغير في وضعها سيتم للقيمة المستخدم اختيار النماذج s$عند درس مراجعة يمكنكفي بإخراجها يقوم ثم للمشروبات مصفوفة بصناعة يقوم المثال هذا ، ذلك تفعل لكي

فيمكنك دولة مئة حوالى مثال لديك كان فلو الكود كتابة في الوقت علينا يوفر مما قائمةالتي القائمة ببناء تقوم سوف التي القائمة بناء ذلك وبعد مصفوفة في وضعها مثال

والتكرارات . المصفوفات طريق عن الدول هذه على ستحتوي

إمتداده ملف في التغييرات بحفظ الملف phpقم بكتابة على list.phpوقم اعتماداالنماذج . درس في السابقة معلوماتك

المصفوفات دوال keyالدالة

عنصرين : من مكونة مصفوفة لدينا أن لنفرضمثال :

$s= array )“ ماجد”,”على ”(;السطور هذه إليها لنضف اآلن

>?$s= array )“ ماجد”,”على ”(;$t=key )$s(;echo $t;?<

92

Page 93: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

األمر الفهرسه )keyيقوم رقم حيث( .... indexبإيجاد صفر الرقم وهو حاليا النشط العنصر oال وضعها التي الفهرسة هي وهذه فهرسة نضع لم نضع PHPأننا لم عندما تلقائيا

المصفوفة ... عناصر بين التجول نستطيع أننا ستعرف لكن النشط كلمة تحيرك قد فهرسةالحقا .

كلمات أو حروف الفهرسة رقم يكون قد

مثال :>?$s= array )“ ماجد”=<”م”,”على”=<“ع ”(;$t=key )$s(;echo $t;?<

)(currentالدالة الدالة الحالى )currentتقوم المصفوفة لعنصر القيمة ( .index valueبإيجاد

مثال :>?$s= array )” على”=<“ع” , “ماجد”=<”م ”(;$p=current )$s(;echo $p;?<

باألمر .... أوجدنا أننا الحظ النشط للعنصر الحالية القيمة بإيجاد قمنا السابق المثال keyفيباألمر أوجدنا بينما الفهرسة المفهرس .currentرقم للعنصر القيمة

! ؟ للمصفوفه االخري العناصر تنشيط يمكننا كيف

الدالتين طريق عن ذلك عناصر prevو )( nextيمكننا بين بالتجول تقومان اللتانعناصر ..... ثالثة من تتكون مصفوفة لدينا أن لنفرض المصفوفة

مثال :>?$s= array )"م"=<"ماجد","ع"=<"على","أ"=<"أحمد"(;echo key)$s(.">br<";echo current)$s( .">br<";

93

Page 94: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………?<

برقم ) اقصد وقيمته الحالى للعنصر الفهرسة رقم قيمة بطباعة المثال هذا في قمنا لقد( الحرف بالقيمة( )م الفهرسة المصفوفة( .... ماجدواقصد عناصر بين بالتجول اآلن لنقم

الطباعة . نتيجة ولنر

مثال :>?$s= array )"م"=<"ماجد","ع"=<"على","أ"=<"أحمد"(;next)$s(;echo key)$s(.”>br<”;echo current)$s( .”>br<”;?<

>?$s= array )"م"=<"ماجد","ع"=<"على","أ"=<"أحمد"(;next)$s(;next)$s(;echo key)$s(.”>br<”;echo current)$s( .”>br<”;?<

الدالة كتبنا أننا أول )(nextالحظ في الثاني العنصر تنشيط يتم لكي باإلنتقال نقوم أن قبلكتبنا ) أننا والحظ مثال ثالث في الثالث العنصر ولتنشيط مرتين ( .)(nextمثال

الدالة بوضع السابق العنصر لتنشيط الرجوع المثال )(prevيمكننا تعديل يمكننا فمثالالتالى :

>?$s= array )"م"=<"ماجد","ع"=<"على","أ"=<"أحمد"(;next)$s(;next)$s(;

94

Page 95: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………prev)$s(;echo key)$s(.”>br<”;echo current)$s( .”>br<”;?<

oال خطوه PHPفسيقوم التراجع تم ألنه الثالث وليس الثاني العنصر طباعة الحاله هذه فيطريق )(prevعن

! ؟ الفهرسة محدودة غير مصفوفة على عنصر بإضافة قمنا إذا سيحصل ماذاالفهرسة . محدد غير عنصر إليها وأضفنا مصفوفة لدينا أن لنفرض

مثل : >?$s= array )12=<“ احمد=<”44”,محمد=<”5”,ماجد ”(;$s[ ]= “هشام”;Next)$s(;Next)$s(;Next)$s(;Echo key )$s(.”>br<”;Echo current) $s (.”>br<”;?<

oال الفهرسة PHPسيقوم بإعطاء يبدأ ذلك وبعد فهرسة رقم أكبر عن بالبحث ببساطةوالحظ .. الرقم اعطاء في الصفر من بدأ حروفا الفهرسة أرقام كانت فإذا بعده تسلسال

الرقم العنصر بإعطاء قام بأنه المثال هذا هو 45في المصفوفة في عنصر أكبر 44ألنالرقم . هذا بعد تسلسال األرقام بإعطاء قام ذلك وعلى

Eachو Listالدالة

بالترتيب مفهرسة غير مصفوفة بصنع قمت قد أنك لنفرضمثال :

>?$s= array )12=<“ احمد=<”44”,محمد=<”5”,على ”(;?<

مع حياتك تجعل أن تستطيع أنك وهو سار بخبر نخبرك دعنا ذلك حياتك PHPعلى مع أسهلنفسك ! مع

While )list) الفهرسة Index,Element value ارقام العنصر )array( each = ) قيمة

95

Page 96: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

التكرار طريق وعن الدالتين هذه بواسطة الموجودة whileتستطيع العناصر جميع استخراجالمصفوفة في

While )list)$e,$r( = each )$s(({echo “$e \t\t >b<$r>/b<\t\t”;}

الفهرسة ) لرقم منهما واحد متغيرين بتسمية تقوم أنت للعنصر( )e$أوال ويمكننا( r$والثانيفقط العنصر معرفة أو فقط العنصر عرض أردنا إذا ما حالة وفي اسم بأي تسميتهما

حذف ) الفاصلة( e$فيمكننا النحذف ولكنناWhile )list),$r( = each )$s(({echo “ $e $r>br<”;}

الفهرسة ... رقم بوضع التكرار سيقوم والعنصر الفهرسة رقم فيه الذي المثال الى لنعد ) المتغير) في نصيا يكون قد هو e$الذي له الفهرسة رقم الذي العنصر قيمة e$وسيضع

المتغير جميعها ...r$في منها ينتهي حتي العناصر بطباعة سيقوم ثم

مهمة : ( مالحظة فسيتم ) كان أيا أرقام أو حروف للمصفوفة فهرسة بتعريف تقم لم إذاالفهارس التكرار يطلب عندما العناصر استخدام

مثال :>?$e=array)"M100","M101","M102"(;While )list )$I,$V(=each)$e(({echo ">br<$e[$I]";}?<

الفهرسة )أالحظ طباعة طلبنا )indexننا العناصر( أخذ تم أنه الفهرسة( elementsإال من بدال

مصفوفة لدينا أن لنفرض لذلك وكمثال مفيده أشياء صناعة الدالة هذه بواسطة يمكنناجدول على المصفوفة هذه نخرج أن ونريد هواتف هذا htmlأرقام صناعة فسنستطيع

سهولة . بكل السابق التكرار طريق عن الجدول :مثال

>table align='center' dir = "rtl" border="1" width="50%" cellspacing="0" bordercolorlight="#000000" bordercolordark="#000000" bordercolor="#000000"<>tr<

96

Page 97: lesson php

www.phpvillage.com KSA……………………………………………………………………………………………… >td align='center'<االسم>/td< >td align='center'<رقم التلفون>/td< >/tr<>?$s = array )658=<" 465873" , سالم=<"456546" ,ماجد (;While )list)$e,$r( = each )$s(({echo ">tr<>td align='center'<". $r . ">/td<>td align='center'<" .$e . ">/td<>/tr<";}?<>/table<

يمكنك ، بسيط تكرار بواسطه جدول في التلفونات أرقام جميع استخرجنا كيف أرايتالمئات على تحتوي المصفوفة كانت إذا ذلك على الوقت من الكثير واختصار األكثر صناعة

شكل على الكود تكتب أن من بدال الكود هذا بواسطة األرقام البيانات htmlمن وتكتبنفسك . وتتعب

وذلك عددها معرفة تريد كنت إذا معينة مصفوفة في العناصر عدد معرفة أيضا يمكنكالتالية : بالطريقة

>?$s= array )12=<“ احمد=<”44”,محمد=<”5”,ماجد ”(;$S=0;While )list)$E,$r( = each )$s(({$S++;}ECHO “عدد عناصر المصفوفه ” . $S++; ?<

المصفوفات فرز97

Page 98: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

oال لنا يوفرها التي الدوال من العديد عن . PHPهناك نظرة سنأخذ نحن المصفوفات لفرز: استخداما األكثر دوال الخمسة

)(Sortالدالة

محتويات بأخذ تقوم وهي أساسية جدا وهي المصفوفات فرز أساسيات من الدالة هذهالصغيرة .. ثم أوال الكبيرة األحرف على اعتمادا هجائيا بفرزها تقوم ثم ومن المصفوفة

الفرز عليها سيتم التي المصفوفة اسم الدالة هذه تتطلبSort )ArrayName(;

التالى : بالشكل مصفوفة بإنشاء قمنا إذا$NaNo=array )“ali”,“Majed”,“hythem”,“Khaled”,“Ammar”,“Hesham”);

الدالة طريق عن فرزها أردنا كالتالى :)(sortفإذا باستخدامها نقوم فإننا>?$NaNo=array )"ali","Majed","hythem","Khaled","Ammar","Hesham"(;sort)$NaNo(; While )list)$e,$r( = each )$NaNo(({echo "$e\t\t$r>br<";}?<

oال أن ستجد للمثال تنفيذك عند أنه PHPالحظ أوال الكبيرة األحرف على اعتمادا بالفرز قامالصغيرة . األحرف على اعتمادا بعدها بالفرز قام ثم

)(Arsortالدالة

98

Page 99: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

الدالة عملية نفس تعمل الدالة كتبنا )(sortهذه لو فمثال بسيط اختالف هناك ولكنكالتالى : المصفوفه

$NaNo=array ) “ad”=<”majed”, “kh”=< “khaled”(;

التالى : المثال في كما والقيم الفهارس وطباعة فرزها وأردنا

>?$NaNo=array ) “M”=<”majed”, “K”=< “khaled”(; sort)$NaNo(; While )list)$e,$r( = each )$NaNo(({echo "$e \t\t $r>br<";}?<

المثال : هذا مع السابق المثال ناتج قارن

>?$NaNo=array ) “M”=<”majed”, “K”=< “khaled”(; asort)$NaNo(; While )list)$e,$r( = each )$NaNo(({echo "$e \t\t $r>br<";}?<

الدالة قامت االول المثال ففي الفرق عرفت قد انك بأرقام sortاعتقد الحروف باستبدالتفعل كما فرزها وتم هي كما الحروف وضع تم فقد الثاني المثال في أما الفهرسة في

الفرز .sortالدالة فيبين فرق اليوجد الدالة asortو sortباختصار أن في الحروف sortإال فهرسة تستبدل

بأرقام .

99

Page 100: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

arsortو )(rsortالدالة

عمل بنفس التالية :asortو sortتقوم األمثلة جرب عكسي بشكل ولكنمثال :

>?$NaNo=array ) “M”=<”majed”, “K”=< “khaled”(; rsort)$NaNo(; While )list)$e,$r( = each )$NaNo(({echo "$e \t\t $r>br<";}?<

مثال :>?$NaNo=array ) “M”=<”majed”, “K”=< “khaled”(; arsort)$NaNo(; While )list)$e,$r( = each )$NaNo(({echo "$e \t\t $r>br<";}?<

الدالة أن الدالة rsortستجد عملية بنفس عكسي sortتقوم بشكل ولكنالدالة عملية arsortأيضا بنفس عكسي .asortتقوم بشكل ولكن

يدعم ) السيرفر كان إذا العربية الحروف مع الفرز في الدوال هذه كل استعمال يمكنكالعربية ( اللغة

100

Page 101: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

التالى : المثال بتطبيق قم>table border =1<>tr<>td<RSORT)(>br<>?$NaNo=array ) "M"=<"ماجد", "A"=< "أحمد"(; rsort)$NaNo(; While )list)$e,$r( = each )$NaNo(({echo "$e\t$r>br<";}?<>/td<>td<ARSORT)(>br<>?$NaNo=array ) "M"=<"ماجد", "A"=< "أحمد"(; arsort)$NaNo(; While )list)$e,$r( = each )$NaNo(({echo "$e\t$r>br<";}?<>/td<>td<ASORT)(>br<>?$NaNo=array ) "ad"=<"ماجد", " A"=< "أحمد"(; asort)$NaNo(; While )list)$e,$r( = each )$NaNo(({echo "$e\t$r>br<";}?<>/td<>td<SORT)(>br<>?$NaNo=array ) "ad"=<"ماجد", " A"=< "أحمد"(; sort)$NaNo(; While )list)$e,$r( = each )$NaNo(({echo "$e\t$r>br<";}?<>td<>/tr<>/table<

101

Page 102: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

ksortالدالة على نعتمد كنا أننا نظرك نلفت أن نريد ولكن المصفوفات فرز طريقة عن سابقا تكلمنا

الفرز ) في الفرز( elementالعنصر في الفهرسه رقم على باالعتماد تقوم الدالة هذه ولكن(index )

مثال>table border =1<>tr<>td<asort)(>br<>?$NaNo=array ) "M"=<"ماجد", "A"=< "أحمد"(; asort)$NaNo(; While )list)$e,$r( = each )$NaNo(({echo "$e\t$r>br<";}?<>/td<>td<ksort)(>br<>?$NaNo=array ) "M"=<"ماجد", "A"=< "أحمد"(; ksort)$NaNo(; While )list)$e,$r( = each )$NaNo(({echo "$e\t$r>br<";}?<>td<>/tr<>/table<

oال اعتمد الindex oعلى phpلقد على يعتمد الفرز . elementولم في

102

Page 103: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

اإلضافيه المصفوفات دوال oال إياها يمنحنا التي الدوال من الكثير اليكفي PHPهناك والتي المصفوفات مع للتعامل

وهي بكثره والمستخدمة دالتين أهم بشرح سنقوم اآلن لذكرها و )(array_pushالوقتarray_pop)(

التالى : بالشكل مصفوفة بإنشاء قمنا أننا لنفرض>?$arr[ 5]=”majed”;$ arr [ 85]=”khaled”;$ arr [ 35]=”mohmed”;$ arr [ 19]=”hajeer”;?<

بالتالى : فقمنا لها جديد عنصر نضيف أن وأردنا>?$ arr [ 5]=”majed”;$ arr [ 85]=”khaled”;$ arr [ 35]=”mohmed”;$ arr [ 19]=”ahmad”;$ arr [ ]=”ali”; ?<

oال سيعطيه الذي األخير العنصر إلى الفهرسة )PHPانظر رقم( indexرقم وسيكونهو .86فهرسته

أخري بطريقة المصفوفة على لعنصر إضافة عمل نستطيع بأننا نظرك نلفت أن وهي نريدالدالة طريق كالتالى :)(array_pushعن

array_push )ArrayName اسم المصفوفه,Elemnt1, Elemnt2, Elemnt3,…..(

في ونضع لها العنصر إضافة نريد التي المصفوفة اسم الدالة من األول القسم في نضعللمصفوفة . إضافتها سيتم التي وهي أكثر أو واحد عنصر الثاني القسم

مثال :>?$ arr [ 5]=”majed”;$ arr [ 85]=”khaled”;$ arr [ 35]=”mohmed”;$ arr [ 19]=”hajeer”;array_push )$arr,ali(?<

مثال : >?$ arr [ 5]=”majed”;$ arr [ 85]=”khaled”;$ arr [ 35]=”mohmed”;$ arr [ 19]=”hajeer”;

103

Page 104: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………array_push )$arr,ali,salem,sameer,thamer(?<

يمكننا أو جديد من المصفوفة بتعريف نقوم فإننا المصفوفة من عنصر مثال حذف أردنا ولوالدالة فقط array_popاستخدام تتطلب والتي المصفوفة من عنصر آخر بحذف تقوم التي

المصفوفة اسم

Array_pop)ArrayName اسم المصفوفه(

مثال :>?$ arr [ 5]=”majed”;$ arr [ 85]=”khaled”;$ arr [ 35]=”mohmed”;$ arr [ 19]=”hajeer”;array_pop)$arr(?<

العنصر حذف عناصر .hajeerسيتم ثالث غير المصفوفة في يكون ولن المصفوفة من

Implode و Explodeقيمة بإضافة وتقوم نصوص أو مصفوفة من معينة قيمة باقتصاص الدالتين هذه تقوم

نصوص . أو مصفوفة على معينة

Implodeالدالة المصفوفة . عناصر بين قيمة بإضافة تقوم

مثال :>?$stng =array )"majed", "salem", "ali", "alfarsi"(; $r =implode )"H",$stng(;echo $r;?<

explodeالدالة المصفوفة . من عناصر حذف اليعني وذلك مصفوفة من قيمة بحذف تقوم

مثال :>?$stng =array )"\tmajed\t", "\tsalem\t", "\tali\t", "\tahmad\t"(;

104

Page 105: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………$r =implode )"-",$stng(;echo $r;echo ">br<";

for)$i=0;$i>=4;$i++({$r = explode )"\t",$stng[$i](;echo $r[1];echo $r[2];echo $r[3];echo $r[4];}?<

HTTP_GET_VARS وHTTP_POST_VARS

؟ ولماذا نستخدمها ماذا في ولكن مصفوفات هذه نعم ، مصفوفات بل متغيرات ليست هذهعلى والحصول النماذج مع التعامل طريقة عن السابق الدرس في تحدثنا الواقع في

وهما البيانات لنقل أسلوبين عن وتكلمنا المستخدم من POSTو GETالبيانات oال صفحة إلى متغيرات في محفوظة البيانات تصل PHPعندما تلقائيا بتعريفها يقوم فإنه

.... oال في الميزة هذه ولكن تعريف غير من مباشرة وقيمها المتغيرات طباعة PHPويمكنكالملف طريق عن إلغاؤها ميزة PHP.INIيمكن بإغالق register_globalsوذلك

بوضع من offوذلك onبدال

هو لها االفتراضي خدمة onالوضع مزود عند مستاجرا تكون وقد إغالقها تستطيع ولكنالحصول .... يمكنك التقلق إال ليس الحماية باب من الميزة هذه بإغالق فيقوم وسيط ويب

المصفوفتين هذه بإستخدام تقوم أن عليك يجب ولكن موجودة زالت ما فهي البيانات علىالبيانات . تستخرج لكي

ميزة ) أغلق قد وكان ويب مزود عند اشتركت أنك لنفرض( register_globals لنفرض حسنااسمه متغير في قيمته ويحفظ نص مربع يستخدم نموذجا صنعت قد ذلك Dorrahأنك بعد ثم

األسلوب باستخدام القيمة هذه بإرسال الصفحة GETيقوم في الكود من جزء سيكون إذاكالتالى النموذج على تحتوي والتي األولى

>form method =get action = “try.php”<!! ما هو أول أيام االسبوع>br<>input type=text name = “Dorrah”<>br<

( الثاني الملف كالتالى( try.phpفي القيمة بطباعة سيقوم الذي الجزء بكتابة سنقوم>?

105

Page 106: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………Echo HTTP_GET_VARS[“Dorrah”];?<

نستخدم لم أننا ذلك $الحظ فيمكننا آخر متغير في المتغير بقيمة اإلحتفاظ أردنا إذا ولكنكالتالى : عادي بشكل

>?$Dorrah = HTTP_GET_VARS[“Dorrah”];?<

.... .... جدا حريص لديك الويب خدمة مزود أن لنفترض ولكن كذلك أليس بسيطة طريقهفي القيم هذه استقبال ميزة أيضا ألغي فقد الo .... ولذلك ملف في ذلك يمكنه المصفوفات

php.ini oال اعدادات المصفوفات track_varsفي هذه استخدام من السيرفر بمنع يقوم الذيفي) إلغاؤها يمكن الميزة إلى ( .... php4هذه وشكوي تذمر رسال بإرسال انصحك ذلك على

ال .. اصبح األمر أن فيها تعلن لديك الخدمة يحتمل . مزود

االبعاد متعدده مصفوفهالرياضية معلوماتك في ماتحتاجه حسب على مصفوفات بداخل مصفوفات صناعة يمكنك

) أنه ) حال أية على نخبرك أن نريد نفسيا ومقلقة معقدة أشياء إنشاء إلى مثال تحتاج فقدمتداخلة مصفوفة مائة حتي استخدام ويمكنك األبعاد المتعددة المصفوفات صناعة يمكنك

إن ) حال كل وعلى لديك السيرفر في المستخدمة الذاكرة حجم تراعي أن يجب ولكنمرض أو مشاكل أي بدون متداخلة مصفوفات عشر صناعة في بالتركيز تقوم أن استطعت

. ) جائزة .... تستحق فأنت أو نفسي

كالتالى : متداخلة مصفوفة كتابة يمكننا>? $mon= array )1=<array )"sharkeh al-jafali",154786( ,2 =< array )"majed sa",1257( (; while )list)$personnum( =each )$mon(({echo )">br<$personnum>br<"(;

while )list),$phone(=each )$mon[$personnum](( { echo )"$phone"(; }}?<

الشرح عن تعلم أنك افترض أوال بسيطة فكرته لكن جدا غامضا يكون قد المثال list..eachهذا جيدا

يستخدمهما . الذي التكرار صيغة وتعرف

106

Page 107: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

عنصره منهما واحد كل الرقمين هذين للفهرسة رقمين من تتكون مصفوفة لدينا اآلنعلى ) يحتويان أنهما ولنتناسي عنصرين على تحتوي المصفوفة هذه مصفوفة عن عبارة

هاتفه ( . ورقم شخص اسم وهما فهرسة أرقام

خطوة : أول فيwhile )list)$personnum( =each )$mon(({echo )“>br<$personnum”(;

التسلسلي الرقم هو يعتبر والذي للمصفوفة األساسي الفهرسة رقم بإخراج قمنامن ويبدأ التسلسلي الرقم هذا بطباعة يقوم ذلك بعد ومن الهواتف أصحاب لالشخاص

جديد . سطر

الثانية : الخطوة فيwhile )list),$phone(=each )$mon[$personnum](( { echo )"$phone"(; }

oال بإخبار فهرستها PHPنقوم رقم طباعة تم التى المصفوفة تحتويها الذي العناصر بطباعةوالحظ ،$,(phone) فهارس تجاهلنا ألننا فهارسها وليس مصفوفة عناصر إلى تشير أنها

الداخلية . المصفوفةان حاولت أنني وصدقني تتدرب أن وعليك ، فقط تدرب الى يحتاج ولكنه سهل األمر التقلق

فهمت ... . قد تكون أن أتمني أجلك من المثال أبسط

عملي تطبيقالتالي : الكود واكتب لديك النصوص محرر افتح

>?Echo ">form method =post action = 'exam2.php' " ; $boy=array )" حسن","سعد", "خالد" , "أحمد "(;while )list),$Name( = each )$boy(({echo "ماهي السنة الدراسية لـ $Name ؟";Echo ">select name = 'school[]'<>option<اول ثانوي>/option<>option<ثاني ثانوي>/option<>option<ثالث ثانوي>/option<>/select<";echo ">br<>br<";echo ">input type =hidden name =boy[] value ='$Name'<";}echo ">input type =submit <>/form<";?<

باسم الكود exam.phpاحفظ

107

Page 108: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

باسم ملف في واحفظه التالي الكود واكتب النصوص محرر exam2.phpافتح

>html dir = "rtl"<>?While )list)$I,$V(=each)$school(({ $friendschool[] = $school[$I].$boy[$I];}asort )$friendschool(;While )list )$I,$V(=each)$friendschool(({echo ">br<$boy[$I]"." ".$school[$I];}?<

السيرفر لمجلد نقله بعد بتشغيله قم

الشرح أشخاص ) لعده مصفوفة بإنشاء قمنا أننا هو السابق المثال في به قمنا أن( boy$الذي ونريد

التكرار ) بواسطة منسدلة قائمة طالب لكل فأنشأنا الثانوية في الدراسية مرحلهم نعرفlist-each ( )على تحتوي التي الحقول قيم تخزين يتم مخفية وحقول منسدلة قوائم بصناعة

( ) المصفوفة في األشخاص مصفوفة( )boy$أسماء في القوائم كل نتائج تخزين $وسيتمschool )استقبال سيتم البيانات وارسال تناسبه التي اإلجابات المستخدم يختار أن وبعد

المنسدلة ) القوائم نتائج فيها التي فيها( school$المصفوفة التي المصفوفة واستقبال108

Page 109: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

األشخاص ) باسم( boy$أسماء جديدة مصفوفة إنشاء يتم ثم ويؤخذ ][friendschool$ومنعناصر طباعة آخر بتكرار يتم ثم ومن فيها دمجها ويتم المصفوفتين معلومات منها

.school$و boy$المصفوفتين

countالدالة المصفوفة في الموجودة العناصر عدد بحساب تقوم

مثال :>?$c=array)"a","b","c"(;$v=count)$c(;echo $v;?<

البرمجي الكود ترتيبالروتين عن مثال واعطينا البرمجة أساسيات من أساسيات السابقة الدروس في تعلمناشرب مثل اليومية الحياة في مرة من أكثر شي بعمل تقوم أن وهو اليومية الحياة في

عن تقريبا ويتكلم الكود ترتيب عن يتكلم اليوم درسنا ، ذلك وغير القهوة شرب أو الشايروتيني بشكل األعمال بعض تكرر حياتك في فأنت اليومي الروتين فكره نفس

... فمثال الروتين هذا من التخفيف على يساعدك شي فأحضرت الروتين مللت تكون وقدلبرنامج استخدامك معينة MS Wordعند بطريقة نصوص عدة تنسيق من مللت تكون قد

خطوات عدة في تفعله كنت الذي العمل بفعل يقوم ماكرو بصناعة تقوم ذلك عند فأنتفقط !! واحد بخطوة

يا ) شامل تنظيف بعمل تقوم أن وقررت إجازة يوم وفي اليومية حياتك في أنك ولنقلوترتيب المكتبة وترتيب األرضيه وتنظيف األثاث وتنظيف الصحون أطباق غسيل عليك إلهيالمهمة ... ... ( هذه انجاز يتم لكي عملية طريقة عن تبحث فإنك ذلك عند الخ و و النوم غرفة

( ، ،الترتيب التنظيف أقسام عده على الكبيرة المهمة هذه بتقسيم فتقوم وقت أسرع في )..... مهمة منهم واخد كل على وتقسم اكبادك وفلذات أطفالك باستدعاء تقوم ثم ، الغسيل

.. oبال البرمجة عالم في يسمي التقسيم هذا بها القيام يستطيع أو ) functionبسيطة دالةوظيفة (

Function

معين شي تنفيذ ليتم المبرمج طريق عن تعريفه يتم البرنامج كود من جزء هي الدالةوتسمي ) قيم بأخذ الدالة تقوم ، تقوم ( argumentsبواسطتها ثم ،، كمدخالت معطيات

تقوم األحيان أكثر في أخري قيمة بإخراج وتقوم المدخالت هذه على التعديالت بعض بعمل( oبال تسمي أخري متغيرات في ووضعها القيم بأخذ اجراء( parametersالدالة يتم لكي

خاصه متغيرات أنها أي الدالة خارج التعمل المتغيرات وهذه الدالة داخل عليها العملياتفرز ! ... دوال مثل عديده دوال باستخدام قمنا السابقه دروسنا في فقط بالدالة

ومن ،، بنا الخاصة دوالنا ببناء سنقوم المرة هذه ،،،، البيانات نوع ايجاد ودوال المصفوفات

109

Page 110: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

ثم ومن عليها العمليات باجراء تقوم وهي والبيانات المعلومات باعطاءها نقوم صنعناالحلول ... اخراج

الدوال واستدعاء تعريفالكلمة بكتابة تقوم فإنك دالة بتعريف تقوم والبارمترات functionلكي الدالة باسم متبوعة

االزم الكود بكتابة تقوم ثم ومن قوسين بين عليها العمليات اجراء سيتم والتي االزمة {و }وسط

الصيغه : Function functionname )parameters( {function code }

من بدال الدالة اسم بكتابه المتغيرات functionnameتقوم أو المتحوالت بتعريف تقوم ثمparameters من بدال القوسين بين بالمطلوب يقوم سوف الذي الكود بكتابه تقوم ثم ومن

function code

متغيرين على الجمع عملية باجراء تقوم والتي إنشاءنا من دالة بكتابة نقوم اآلن دعناباسم الدالة بتسمية وهدف sumnoramlوسنقوم وظيفة على ويدل تأليفنا من اسم وهو

معين اسم بكتابه مجيرا ولست تريده اسم باي الدالة بتمسية تقوم أن ويمكن الدالة

>?Function sumnormal)$a({$a = $a + 100 ;return $a;}?<

إضافة عملية بإجراء الدالة هذه في تمريرها .100نقوم يتم التي القيمة أو المتغير علىبأسم الملف هذا نحفظ fun.phpسوف

بأسم التالي الملف بحفظ نقوم سوف االول val.phpاالن لملف المكان نفس في ونحفظه.

>?include "fun.php";echo sumnormal)5(;?<

التالي : نشاهد سوف الملف هذا تنفيذ وعند

Returnوظيفتها ان الداله بإعالم نقوم لكي الكلمة هذه نستخدم ، دالة كل نهاية في نضعها أن يجب

oال بإخبار نقوم أن ونريد قيمة من أكثر لدينا كان إذا نستخدمها وايضا ماهي PHPانتهت oال إخبار أردنا هذا مثالنا ففي اعتمادها سيتم التي المتغير PHPالقيمة بأخذ يقوم a$بأن

110

Page 111: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

النه النهائي الناتج هو اعتباره فسيتم المتغير نضع لم لو أنه مع النهائية القيمة هو بانهعمليات أي عليه تم اخر متغير اليوجد

التالى : بالشكل الكود كتبنا لو أننا اقصده الذي>?Function sumnormal)$a({$a = $a + 100 ;return ;}?<

لو ولكن غيرها قيمة اعتماد يتم لن واحدة قيمة إال لدينا يوجد ال ألنه ذلك من الضرر فإنهالتالى : المثال في كما قيمة من أكثر لدينا أنه افترضنا

>?Function sul)$a,$b({$a = $a + 100 ;$b= $b*100; return $a ;}?<

للدالة . النهائيه القيمة هو سيكون المتغيرين أي تحديد يجب هنا

>?include "fun.php";echo sul)10,2(;?<

القيمه بأخذ سقوم سوف المثال هذا على 10في والسبب 100ويجمعها الناتج لنا ويظهرالمتغير تحديد فقط a$هو المرجع

الداله ) (sumnormalشرحتمريره يتم الذي العدد بزياده تقوم فإنها ثم ومن قيمتين بأخذ صنعناها التي الدالة تقوم

100

األمرين أحد باجراء ذلك نسطيع ببساطة فإننا الدالة نتيجة بإخراج نقوم أو echoولكيprint.

مثال : >?Function sumnormal)$a({$a = $a + 100 ;return ;

111

Page 112: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………}echo sumnormal)500(;?<

الرقم من بدال متغير تمرير أيضا ويمكننا المتغير من بدال رقم بتمرير قمنا لقد مثال :

>?Function sumnormal)$a({$a = $a + 100 ;return ;}$f=100;echo sumnormal)$f(;?<

خاصة ) متغيرات للدالة أن األعلى في كالمنا يثبت مما الدالة في متغير استخدمنا أننا الحظالدالة( في المذكور االسم بنفس متغيرات استخدام النستطيع أننا ذلك معني وليس بها

كالتالى : مشاكل أي حصول بدون المتغير اسم نفس كتابة مثال فيمكننا>?Function sumnormal)$a({$a = $a + 100 ;return ;}$a=100;echo sumnormal)$a(;?<

بالطباعة تقوم هي كانت إذا عادي بشكل دالة استدعاء أيضا يمكننامثال :

>?Function sumnormal)$a({$a = $a + 100 ;print $a;return ;}

$a=100;sumnormal)$a(;?<

printاألمر الدالة printيقوم عمل الدالة echoبنفس أن سوى اختالف بينهما echoواليوجد

الدالة أما األصل وهي في printقديمة إنشاؤها تم بينهما php4فقد فرق أي واليوجداطالقا .

:مثال >?

112

Page 113: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………Print “ماجد”;?<

دالة نتيجة إخراج بها ويمكننا>?Function sumnormal)$a({$a = $a + 100 ;return ;}$a=100;

print sumnormal)$a(;?<

؟ الداله وضع يتم اين

بين : الفرق أنه أي آخرها في أو الكود أول في الدالة وضع يمكنك>?الحظ اننا قمنا بتعريف الداله اوال ثم استدعاءها//Function majed)$d({print “[email protected]”; }

majed)$d( ;?<

وبين :>? الحظ اننا قمنا باستدعاء الداله اوال ثم تعريفها//majed)$d( ;

Function majed)$d({print “[email protected]”; }?<

كالتالى : الدالة في متغيرات وضع عدم أيضا يمكنكHtml_header )( {

Print “>html<>head<>title<majed>/title<>/head<”; Return ; }

113

Page 114: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

صفحة من األول الطور بكتابة تقوم الدالة او htmlهذه متغيرات أي بوضع نقم لم أننا الحظشئت ) ( . كما سمها متحوالت او عوامل

>?include "fun.php";echo Html_header)(;?<

الدالة الى القيم تمريرالقيم تمرير من نوعين هناك

الداله - )1 الى مباشره القيمه ( passing by valueتمريرمتغيرات . في إدراجها بدون مباشرة القيمة نضع أن وذلك

مثال :>?Function majed)$f( {$f=$f+$f; return $f;}echo majed)100(; ?<

متغيرات . في وضعها غير من للدالة مباشرة القيمة بإدراج قمنا أننا الحظ

المرجع - )2 طريق عن القيمه ( passing by referenceتمريريتم لكي الدالة في المتغير هذا نضع ثم أوال متغير في القمية بوضع نقوم أننا بهذا نقصد

مثال : عليه العمليات اجراء>?Function majed)$f( {$f=$f+$f; return $f;}$r =1000; echo majed)$r(; ?<

للدالة افتراضيه قيمة اعداد oال تجعل أن إليه PHP4تستطيع متغيرات تمرير عدم عند إفتراضية قيمة بإدراج يقوم

114

Page 115: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

مثال : >?Function majed)$f=40( {$f=$f+$f; return $f;}echo majed)(;?<

هي القيمة أن ستفترض فإنها للدالة قيمة إعطاء يتم لم مباشرة .40إذا

القيمة من بدال تمريرها تم التي بالقيمة العمل سيتم فإنه متغير أو قيمة تمرير تم إذا أمااإلفتراضية

مثال :>?Function majed)$f=40( {$f=$f+$f; return $f;}echo majed)100(;?<

(variable scopeالمتغيرات )ىمدمحلية ) متغيرات عامة ) (localهناك تكون( globalومتغيرات التي المحلية بالمتغيرات نقصد ،

oال كود في تكون التي بالعامة ونقصد الدالة داخل عام PHPفي بشكلمثال

>? هذا متغير عام//$r= “Welcome”; function val)$s({هذا متغير محلى//$s = “progrramer”; } echo $r ;val)$s(;echo $s;?<

115

Page 116: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

مثال :>? هذا متغير عام//$r= “majed”; function val)$s({هذا متغير محلى//$s = “progrramer”; } echo $r ;$s=10;echo $s;?<

المتغير طباعة استطعنا األول المثال المتغير r$في طباعة نسطتع اليتم )s$ولم محلى ألنهعليه ( نحصل لكي الدالة ناتج نطبع أن يجب فإننا طباعته نريد وعندما الدالة داخل اال تنفيذه

مباشر) ( بشكل طباعته النستطيع أننا أيمثال :

>? هذا متغير عام//$r = “majed”; function val)$s({هذا متغير محلى//$s = “programmer”; } استطعنا طباعته بشكل مباشر//echo $r ;val)$s(; يجب استخدام الداله لكي يتم طباعته//echo val)$s(;?<

لكل ألن مختلف يكون فالناتج الدالة نفس من المتغير طباعة بعملية قمنا لو حتي أننا الحظبه الخاص عالمه متغير

116

Page 117: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

الطريقيتن بإحدي ذلك فيمكننا عاما متغيرا الدالة بداخل الذي المتغير بجعل نقوم لكيالتاليتين :

األولى : الطريقة>?function val)$y({echo $y. “>br<”; global $s;$s = "programmer";return $s;}$f =10; val)$f(;echo $s;?<

استخدمنا عندما أننا عام globalالحظ متغير المتغير أن تعريف يتم لكي الدالة داخل فيقامت ذلك بعد ثم ومن طباعته المراد المتغير بطباعة قامت الدالة باستخدام قمنا وبعدما

جديد ) متغير الكلمة( s$بتعريف قبله وضعنا ألننا عام متغير المتغير فاستطعنا globalوهذاسهوله . بكل طباعته

المستقره ) (static variableالمتغيرات

ثابتة قيمتها تكون التي هي المستقرة بالمتغيرات اقصدمثال :

>?Function add)$y({$y;$y=$y+1 ;return $y;}echo add)$y(;echo add)$y(;echo add)$y(;echo add)$y(;?<

117

Page 118: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

>?Function add)$y({static $y;$y=$y+1 ;return $y;}echo add)$y(;echo add)$y(;echo add)$y(;echo add)$y(;?<

بأنه المتغير عرفنا عندما الدالة . staticالحظ انتهت لو حتي بقيمته يحتفظ فانه

متداخلة دوالوالتكرارات القرارات بناء مع نفعل كنا مثلما للدوال تعشيش عمل يمكننا

مثال :>?Function sum)$sa({ $sa=$sa-1;function goadd )$r({

$r = $r+$r;return $r;}$sa= goadd )$sa(;return $sa;}echo sum )15(;?<

هي األولى الدالة دالتين لدينا هذا مثالنا هي sumفي الثانية goaddوالدالة

تقوم ثم واحد إليها يمرر الذي العدد من باإلنقاص تقوم أن هي األولى الدالة وظيفةهي فيها داخلية دالة بنداء .. goaddبتطبيق قمنا ثم ومن نفسه على العدد بزيادة تقوم

قيمتها ) ( . وطباعة الداخلية الدوال به يوجد التي االساس هي ألنها األولى الدالة118

Page 119: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

الملفات ( include files)اشتمالتريد أو معينة خطأ رسالة أو صفحة من أكثر في متكرر متغير برنامجك في لديك يكون قد

متعددة صفحات في الحجم كبير نص إدرج oال ملفات داخل في ملفات اشتمال يمكنك أو . PHPهنا نصوص على تحتوي قد الملفات هذه

كود htmlكود .PHPأو

هي : الملفات الشتمال تستخدمها التي الصيغة إنInclude )filename(;

مثال :

باسم احفظه ثم ماتشاء فيه واكتب نصي ملف بفتح a.txtقمملف بانشاء باسم phpقم احفظه ثم ومن فيه b.phpواكتب

>?Include )“a.txt”(;?<

.. oال ملف شغل السيرفر مجلد الى النتيجة .b.php انقلهما وانظرملف بإنشاء تقوم أن الPHP oيمكنك بجميع فيه وعند functionوتحتفظ لبرنامجك المطلوبة

استدعاءها . ثم ومن الملف باشتمال فقط تقوم منها واحدة أي الستخدام إرادتك

الكود تلوين دالهموقع مثل مذهل بشكل الكود بتلوين تقوم مواقع رايت .... zendهل كل بسيط األمر ؟

أوال ماعليكمثال ) اسم باي وسمه نصي ملف في الكود بوضع الدالة ( file.txtقم باستخدام قم ذلك وبعد

Show_sourceمثال :

>?show_source )"file.txt"(;?<

119

Page 120: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

االخطاء ومنع وتصيد تتبع (avoiding and handling errors)

oال مصطلح هذا debbug إن ، البرمجة عالم في والشيقة الشائعة المصطلحات من هومن أنواع هناك ، حدوثها قبل وتوقعها البرنامج أخطاء إصالح كيفية إلى يشير المصطلح

في ، المستخدم بسبب تحصل األخطاء من أنواع وهناك المبرمج بسبب تحدث األخطاءوإصالحها . األخطاء تتبع مصطلح مع متآلفا المبرمج يكون أن يجب العادة

أو عليه العمل الجاري البرنامج أهميه بقدر الحماية األخطاء تتبع أهداف من يكون قدأكبر . حمايته وجوب كان مهما الموقع كان فكلما الموقع

صغيرة كل يغطي الموقع صاحب أن هو للمواقع تدميرا تسبب التي األسباب من يكون قدأو كاف بسبب محمي غير هذا برنامجه يكون وقد موقعه في يركبه الذي برنامجه عن وكبيرة

دقة عدم بسبب األساسية الملفات من ملف بحذف شخص فيقوم ملفات بعدة مسير يكون. نهائيا الموقع دمار إلى يؤدي مما المعطاة التراخيص في

مما لموقعه السرية بالمعلومات يحتفظ فال ذاته الحد في مهمال الموقع صاحب يكون وقدكامل . بشكل الموقع احتالل مثل التدمير من أكبر مشاكل يسبب

oال في الخطا مثل PHPرسائل ليست فهي عليها تسير التي الخاصة وتقنيتها طريقتها لهامثل وليست cgiالجافا

oفالPHP. الخطأ مكان في خطأ رسالة بكتابة تقوم بل السيرفر إلى الخطأ بإرسال تقوم ال

أنك بسبب هذا يكون وقد ، األصل في مكانها معرفة أو تتبعها يصعب أخطاء هناك يكون قد oال عالمات PHPتستخدم وتضع سكربت الجافا معها وتشرك ديناميكي موقع صناعة في

وتجن بالحيره تشعر يجعلك قد مما الجافا في األخطاء بإخفاء تقوم التي الخاصة التعليقالخطأ مكان أين

>!- - رساله الخطا- - <

األخطاء أنواعاإلمالئية ) منها األخطاء من أنواع تحدث( Syntax Error هناك أخطاء ومنها المنطقية ومنها

التنفيذ وقت في

اإلمالئية األخطاء : ومثال1 >? 2 Eco “1”;: من المفترض أن تكت التالي // 34 Echo “1”;

120

Page 121: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………5 ?<

خطأ رسالة سيعطيك Parse errorهذا

المنقوطة ) الفاصلة نسيان اإلمالئية األخطاء الدالة( : semi-colonومن نهاية في1 >? 2 Echo “hello”: من المفترض أن تكت التالي // 34 Echo “hello”;5 ?<

oال يعطيك سوف فرسالة PHPهنا صحيح بشكل إياها يعطيك لن أنه العجيب لكن خطأ رسالةالثاني . السطر في هو الخطأ بينما الخطأ على يحتوي الرابع السطر أن إلى تشير الخطأ

oال نسيان بسبب يحصل آخر خطأ االقواس ) ( : braceوهناك وهي1 >? Php 2 for )$loop = 0 ; $loop > 5 ; $loop ++ ( 3 {4 Echo “”; 5 ?<

اليمكن اإلمالئية واألخطاء ، الشائعة األخطاء من فهذا القوس إغالق نسيت قد كنت اذا oال برامج في الشائعة اإلمالئية األخطاء أكثر لكن ، اللغة بقواعد أشبه إنها ، PHPحصرها

األقواس – 1 .نسيان :مثال

1 >?2 for )$loop = 0 ; $loop > 5 ; $loop ++ ( 3 {4 for )$loop1 = 0 ; $loop1 > 10 ; $loop1 ++ (

121

Page 122: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………5 {6 for )$loop = 0 ; $loop > 5 ; $loop ++ ( 7 {8 code ….9 }10 }11 ?<

األخير ) التكرار إغالق قوس ينقصنا السابق المثال ({في

المنقوطة - 2 الفاصلة .نسيان :مثال

1 >?2 Echo 10 3 >?

اسم - 3 في إمالئي . functionخطأ :مثال

1 >? 2 Htmlspecialchar)$I(;3 ?<

خطأ : رسالة سيعطيك

تكون : أن وتصحيحها1 >? 2 Htmlspecialchars)$I(;3 ?<

النص - 4 إغالق .نسيان122

Page 123: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

مثال : >?Echo “PHPvillage;?<

oال وسيعطيك . )"( نسي الكلمة نهاية Parse errorفي

المنطقية ) (Logical Errorsاألخطاءصحيح بشكل يعمل برنامجك تجد فقد التتتبع في صعوبة األكثر هي المنطقية األخطاء إن

منطقي خطأ على مثال لنضرب ، أنت تريد كما تنفيذها اليتم ما نقطة عند ولكنه سالمة وبكلالزر لهذا ضغطك عند ، وزر نص مربع من مكون نموذج بعمل قمت أنك لنفرض ، جدا بسيط

من أكبر الرقم كان إذا كبير كلمة كتابة يتم أن تريد الرقم 30فأنت كان إذا صغير وكلمةمن األول :30أصغر للمثال الكود بكتابة لنقم

>?echo "ادخل عمرك :" ;echo '>br<>form method = "post" action = "age.php"<>input type= "text" name = "age"<>br<>input type= submit value = "هل أنا كبير أم صغير ؟" <>/form<' ;?<

ملف التالي : age.phpفي الكود اكتب>? If )$age>30( echo “انت صغير”; If )$age<30( echo “انت كبير”; ?<

المنطقية .. العالمات كتابة في أنت تخطأ ربما ولكن صحيح بشكل السيكريبت سيعملخاطئ) ( بشكا النتائج فتأتي األحمر باللون التي

التشغيل ) وقت في تقع التي األخطاء المطنقية األخطاء تكون( Run times errorومن والتيكامل بشكل برنامجك بإيقاف تقوم قد

مثال :>?$t=0;$r=1; $f=$r/$t;

123

Page 124: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………?<

التالية الرسالة لك سينتج وعندها

المنطقية ) األخطاء من آخر نوع بل( unexpectedهناك نهائيا البرنامج بإيقاف يقوم ال وهوالبيانات وإخراج البرنامج بتنفيذ يقوم قد أو الخطأ مكان في الخطأ رسالة بإخراج يقوم

بيانات بإخراج يقوم ال قد أو صحيح غير بشكل. ) العمر ) تقييم سابقا ذكرناه الذي االول المثال وهو

التكرارات اخطاءالتكرار : هذا مثل نهائيا بالتوقف يقوم وال خطأ فيه تكرار أيضا لديك يكون قد

$c=1;$t=true;while )$t=true({ $c++;}

المتغير ) قيمة يختبر شرط تضع أن مثل التكرار يوقف شي بعمل نقم يقوم$( cلم ثميعمل ولن متوقف غير بشكل سيستمر التكرار فإن ذلك وعلى معين رقم تعديه عند بإيقافه

البرنامج .

من قيمه ارجاع functionعدممثال :

>? Function add)$d({ $d =$d+$d;}

oال نستخدم لم اننا هنا من returnالخطا أكثر على تحتوي الدالة تكون قد أو الدالة ننهي لكيللدالة النهائية القيمة بتحديد نقوم أن وننسي قيمة

والمنطقية الحسابية المعامالت في الخلطمثال :

If )$y=10( echo 12 ; تكون : أن والمفترض

If )$y= =10( echo 12 ;

األخطاء لتفادي جيدة أفكارالتعليقات

تعليقات وضع هو الخطأ عن فيها تبحث التي األماكن من للتقليل الجيدة األفكار من إنمثال . : معينة دالة وظيفة لوصف

>? هذه الكود يقوم بطباعة كلمة ماجد//Echo “ماجد” ; ?<

124

Page 125: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

الدوال دالة لكل أن بحيث دوال على البرنامج وظائف بتقسيم تقوم أن الجيدة األفكار من وأيضا

المعينة : وظيفتها>? /*

+- --------------------------------------------------------------+| 2هذه الداله تقوم بقسمه العدد علي | +- --------------------------------------------------------------+

* / function div)$U({$U=$U/2; return $U ;} ?<

Regular Expressionsما مستخدم يقوم أن مثل حدوثه عند صفحتك في األخطاء تفادي على تساعدك التقنية هذه

مثال ) : صحيح غير الكتروني بريد تقوم( a@[email protected]بكتابة أن وألجل صحيح غير البريد هذاتقوم فإنك المستخدم يدخلها التي العبارات وتقييد ذلك مثل خطأ أي حصول بمنع

ال يدخلها )oRE )Regular Expressions بإستخدام التي للكلمات قواعد تجعل باألصح إنكمن معين شكل أو فقط حروف أو أرقام سوي اليدخل المستخدم تجعل فمثال المستخدم

بادخالها . يقوم أن المستخدم تريد التي للكلمه نمط بإنشاء أوال تقوم ، الكلمات

( pattrenالنمط )وتريد كلمات عدة على تحتوي نص مربع في جملة المستخدم كتب إذا مارأيك ؟ النمط ماهوعلى معلومات من اخذناه ما حسب على ، الجملة هذه وسط معينة كلمة وجود من تتأكد أن

كالتالى : ذلك فعل نستطيع سابقا المصفوفات>?$words="one,two,three,four,five,";$ty =explode )",",$words(;foreach )$ty as $w( { if )$w == "five"( echo "found string 'five'";} ?<

125

Page 126: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

المتغير كان قمنا words$لقد فحصه أردنا وعندما كلمات عده من تتكون جملة على يحتويالتكرار باستخدام المصفوفة بفحص قمنا ذلك بعد ثم مصفوفة في ، foreachباستخالصه

قوه تبرز وهنا بتاتا عملي غير االستخدام هذا فإن فعلناه الذي ذلك RegularومعExpressions oال بواسطة نستخرجه كيف اآلن : Regular Expressions الحظ

>?$words=”one, two, three, four, five,”;if )ereg)“one”,$words((echo “لقد وجدت العدد ‘ one’ “ ; ?<

الدالة ) باستخدام قمنا المثال هذا النمط( )eregفي األولى خانتها في الذي( patternووضعنا ) المتغير ) الثانية الخانة في ووضعنا عنها البحث المراد أوالكلمة وجوده من نتأكد أن نريد

النمط . أو الكلمة عن فيه البحث سيتم الذيالدالة القيمة eregتقوم الكلمة .trueبإعطاء على العثور تم إذا

لألنماط . فعالية أكثر استخدامات هناك الواقع فيكالتالى : خاصة مصفوفة في وجودها تم إذا الكلمة تخزين مثال يمكننا

>?$words=”one, two, one, four, five,”;if )ereg)“one”,$words,$rok(( ;echo $rok[0];echo $rok[1]; ?<

يوجد .. أنه مع الحظ الثالثة الخانة في البيانات تخزين نريد التي المصفوفة اسم بوضع نقوممن يتأكد أن وظيفته أن إذ فقط واحدة كلمة أعطانا انه إال النمط توافق الجملة في كلمتين

الموضوع واعتبر استكفى واحدة مرة وجودها من تأكد فإذا فقط الجملة في النمط وجودانتهي . قد

التالى : نفعل فإننا ذلك عند ، كلمات عدة من التأكد من أردنا لو ماذا>? $words=”one, two, one, four, five,”;if )ereg)“one”,$words,$rok(( echo $rok[0];if )ereg)“two”,$words,$rok(( echo $rok[0];?<

126

Page 127: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

oال أن أنبهك أن حذرك eregواريد فخذ له استعمال كل عند جديد من المصفوفة بإنشاء يقومالنقط هذه من

oال فإن المثال :eregأيضا هذا الحظ األحرف لحالة حساس>?$words="one, two, vcx, four, five,";if )ereg)"One",$words,$rok(( echo $rok[0];?<

oال حرف ألن فقط شي أي بإخراج يقوم مختلف . Oلن

كالتالى : مثال فراغ يسبقها كلمة عن البحث يمكنك أيضا>?$words="one, two, vcxone, four, five,";if )ereg)"one",$words,$rok(( echo $rok[0];?<

آخر : مثال>?$words="oned, two, vcxone, four, five,";if )ereg)"one",$words,$rok(( echo $rok[0];?<

كلمة أن مع أنه المثالين هذين في من oneالحظ كجزء موجودة إنما بمفردها موجودة غيرvcxone و oned: كالتالى كتبنا لو بينما لذلك اعتبارا تأخذ لم الدالة فإن ذلك ورغم

>?$words="oned, two, vcxone, four, five,";if )ereg)" one",$words,$rok(( echo $rok[0];?<

أي بكتابة يقوم فلن كذلك كلمة يجد ولن حرف أي عن مفصولة الكلمة عن سيبحث فإنهشي .

كالتالى : متغير في موجودة قيمة نفحص أن يمكننا>?$reu = "one";$words="one, two, vcxone, four, five,";if )ereg)$reu,$words,$rok(( echo $rok[0];?<

المتغير قيمة فحصنا أننا الحظت أي word$مع eregبواسطة rue$هل ذلك منا يتطلب ولمالجمله . في قيمته عن البحث المراد المتغير اسم غير إضافي شي

oبال استعمالها Regular Expressionيمكننا لها التي خاص بشكل األحرف بعض استعمال oال بواسطة Regular Expressionsالخاص

oال في الخاصة كالتالى :Regular Expressionاألحرف هي127

Page 128: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

. * ? + [ ] ( ) { } ^ $ | \ oال في الخاص معناها لها األحرف Regular Expressionهذه

النوع نفس من متداخلة تنصيص عالمتي نستخدم أن يمكننا ال أنه نقول كنا مثال فقديماكالتالى :

>?$r=”u\””;?<

oال يتجاهل التنصيص )\( .PHPولكي عالمة قبل بوضع نقوم فإننا المعني هذا oال مع )eregايضا oلل )\( . فإن )oال نستخدم فإننا تجاهلها يتم ولكي قداستها

( oال التالى( : . تقوم المثال الحظ فمثال فراغ أو حرف مكان بأخذ>?$P="I love yamen";if )ereg )"love....",$P,$R(( echo $R[0];?<

؟؟ الناتج الحظت هل

( oال قداسة تجاهل يتم الo( . ولكي بوضع ) Regular Expressions في مثال( . : \نقوم قبلها>?$P="I love yamen";if )ereg )"love\.\.\.\.",$P,$R(( echo $R[0];?<

تطابق ) كلمة أي اليوجد ألنه شي أي طباعة يتم لن المثال هذا )....loveفي )oال فقدت( . ألن. حرفا حرفا الكلمة في التدقيق وبدأ قداستها

حروف فئة [xyz]صناعة

أي النطاق هذا في يكون أن الممكن من الكلمة من معين نطاق احدد أنني بذلك أقصدبتحديدها . أقوم التي الحروف أو بتحديدها أقوم التي الفئة من حروف

مثال :>? $y=”how are you ? “ ; if )ereg)“h[oe]” , $y(( echo “true”;?<

128

Page 129: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

oال قام بالحرف regular expressionهنا تبدأ كلمة أي عن أحد hبالبحث يتبعها ثم ومنالكلمات :eأو oالحرفين هذه مثال

Hey – He – Hew - Homerالتطابق : ولكنها

Hty – Hnt - Hlayإليه أرمي ما فهمت تكون أن أتمني

oال بإخبار نقوم أن أيضا على regular expressionيمكننا تحتوي كلمات باختيار يقوم ال بأنبإضافة ^ فقط وذلك معينة حروف

>?$y=”how are you ? “ ; if )ereg)“h[^oe]” , $y(( echo “true”;elseecho "false";?<

oال بإخبار هنا بre oنقوم تبدأ كلمة أي وجد فإذا الجملة بفحص يقوم على hبأن oوالتحتويبإعطاء eأو يقوم باعطاء trueفإنه يقوم يجد لم falseوإذا

التالية : الكلمات يطابق الكالم وهذاHay - Hana - Hkg

الكلمات : هذه واليوافقHome – Hore - Here

كنا رقم أي على التحتوي كلمة نريد كنا إذا فمثال األمور لبعض اختصارات استعمال يمكنناكالتالى سنكتب

^[123456789] كالتالى : الموضوع لهذا اختصار نستعمل أن يمكننا

^[0-9] oال مسح علينا فقط تسعه الى واحد من رقم وجود من يتأكد أن أردنا إذا ^وحتي

[0-9] من الصغيرة الحروف zالى aوأيضا

[a-z] وجودها عدم من التأكد نريد وإذا

^[a-z]الكبيرة . الحروف مع القصة نفس

كالتالى : الموضوع لهذا اخري اختصارات هناك

معناه ووظيفته المطابق لهاالختصار\d]0-9[ 9 الى 0أي رقم من

129

Page 130: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

\D[^0-9] 9 الى 0ممنوع األرقام من \w]0-9A-Za-z[_ أو حروف9-1أي رقم من

A-Z_او احرف صغيره او \W^]0-9A-Za-z[_عكس السابق\s\]t\n\r[يقبل مسافة أو سطر جديد

(tabأو عالمة جدولة )\S\^]t\n\r[عكس السابق

الكلمة مكان تحديد

في كانت إذا الكلمة مكان تحديد يمكنك أنه بذلك اقصد ، الكلمة مكان بتحديد نقوم أن يمكنناالعالمتين ) األمر لهذا ونستخد النص نهاية أو و )$( ( ^ بداية الجملة لبداية المكان لتحديد

الجمل . لنهايةمثال :

>?$y="how are you ? " ;if )ereg)"^h",$y(( echo "true";?<

oال سيقوم ال phpهنا في عن بحرف جبالبحث تبدا الجملة وجد فإذا الh oملة قيمة eregكانتالtrue oتساوي قيمة كانت يجد لم falseتساوي eregوإذا

>?$y="how gone?" ;if )ereg)"^g",$y(( echo "true";?<

oال قيمة ستكون المثال هذا بحرف eregفي التبدأ العبارة ألن gخطأعكس )$( ) عملها التي العالمه بواسطة العكس فعل الحرف( ^يمكننا كان إذا تفحص فهي

الجملة نهاية في موجود فحصه المرادمثال :

>?$y="how g" ;if )ereg)"g$",$y(( echo "true";?<

العالمة ) | ( بواسط صحيحا نمطين من واحد كان ما إذا اختيار أيضا يمكننا>?$y="how g" ;if )ereg)"^y | g$",$y(( echo "true";?<

oال سيقوم المثال هذا الPHP oفي قيمة كانت النمطين أحد وافقت فإذا الجملة eregبفحصذلك .trueعند

باستخدام واحدة مره أو المرات من بعدد متكررة جملة أو حرف كان ما إذا تحديد أيضا يمكننا + * ( ، ، رموز الثالث هذه ( ? أحد

موجود غير أو أكثر أو مرة مكرر يسبقها الذي الحرف أن من بالتحقق الضرب عالمه تقومبتاتا

مثال :Bea*t

وتوافق : BetBeatBeaat

130

Page 131: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

أكثر )+( : أو مرة عنصر وجود من بالتأكد الجمع عالمة تقومBea+t

وتوافق :BeatBeaatBeaaaaat

االستفهام عالمة : ) ? ( أما بتاتا وجوده عدم أو واحده مرة عنصر وجود من بالتأكد فتقومBea?t

وتوافق :BetBeat

بحرف . مسبوقه عالمات الثالث هذه أن دائما وتأكد

القوسين استخدام يمكنك تحديدي بشكل ثالث أو حرفين سبق من التأكد مثال إرادتك وعند:مثال

)wo(?man :ويوافق

man woman

أو المرات من معين عدد من أكبر أو المرات من معين بشكل حرف تكرر من التأكد يمكنناالقوسين باستخدام المرات من معين عدد من {x,y}أصغر

حرف ) أن من نتأكد أن أردنا لو مرات( :dفمثال أربع إلى مرتين مكررd{2,4}

المرات : من محدود غير عدد إلى مرتين من أكثر مكرر أنه من نتأكد أن أردنا إذا أماd{2,}

يتكرر أن أردناه إذا األكثر : 4أما على مراتd{,4}

المرات : من محدود بعدد يتكرر أن اردناه إذا أوd{8}

االختصار ) إلى النظر نلفت أن نريد الحروف( )b\أخيرا حرفا ليس ولكن شي أي معناه الذيبين (W\وبين w\التي تقريبا

131

Page 132: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

التالى : الجدول في تجدونه القواعد من أخذناه ما ملخص

المعنيالقاعده]abc[ أي حرف كانa او b او c

^]abc[ أي حرف غيرa و b و c]a-z[ كل الحروف منa الى z\d\D\d لالرقام و \D لغير االرقام \w\W \wللحروف جميعها و \W لغير الحروف \s\S\s( للفراغ spaceو )\S( لغير الفراغ no

space)\b الحروف التي بين\wو \W أي حرف.(abc) تقوم باعتبارabc.. كمجموعه حرف او مجموعة حروف مكرره مره؟

اوغير مكرره نهائيا حرف او مجموعة حروف تتكرر مره او+

اكثر حرف او مجموعة حروف تتكرر مره او*

اكثر او قد التتكرر نهائيا }x,y{.. تكرير بعدد معين من المرات,}y{.. تكرير بحد اقصي من المرات}x{,... تكرير بحد ادني من المرات}x{تكرير بعدد معين من المراتفي بدايه النص^في نهايه النص$

ايميل من للتاكد تعبير^[_a-zA-Z0-9-]+)\.[_A-Za-z0-9-]+(*@[a-zA-Z0-9-]+)\.[a-zA-Z0-9-]+(*$

التعبير شرح

الشرحالرمز يجب ان يبدا النص^_]A-Za-z0-9[- أي حرف منa-zكبيرا كان او صغيرا او

_او ارقام وقد يكون هذا الحرف متكررا اكثر من+

مره_].\(A-Za-z0-9)+[-باالضافه الى انه قد يتبع النقطه وحروف

وارقام وقد اليتبعه اوقد يتبعه ويتكرر اكثر من*

مره@وبعد ذلك يكون لديه حرف ال@

132

Page 133: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

]a-zA-Z0-9].\(+[-a-zA-Z0-9$*)+[- وايضا نفس القواعد في النهايه

:مثال>?Function mailcheck)$mail,$t({$T="^[_a-zA-Z0-9-]+)\.[_A-Za-z0-9-]+(*@[a-zA-Z0-9-]+)\.[a-zA-Z0-9-]+(*$";If )EREG)$T,$mail(({$r="the mail is true";echo $r;}else{$r="the mail is not true";echo $r;}return ;}mailcheck)"[email protected]",$t(;echo ">br<";mailcheck)"ad#[email protected]",$t(;?<

eregi)(والدالة الدالة هذه بين أنه eregالفرق أي صغيرة أو كبيرة األحرف لحالة حساسة غير أنه

كالتالى : السابق المثال كتابة يمكننا>?Function mailcheck)$mail,$t({$T="^[_a-zA-Z0-9-]+)\.[_A-Za-z0-9-]+(*@[a-zA-Z0-9-]+)\.[a-zA-Z0-9-]+(*$";If )eregi)$T,$mail(({$r="the mail is true";echo $r;}

133

Page 134: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………else{$r="the mail is not true";echo $r;}return ;}mailcheck)"[email protected]",$t(;echo ">br<";mailcheck)"ad#[email protected]",$t(;?<

ereg_replace)(ذلك أوغير جملة في متكررة تكون وقد معينة أحرف من ما عبارة تحرير أردت لو ماذا

التالية : العبارة لدينا أن لنفرضMajed love his game …….

العبارة نهاية في التي النقاط من نتخلص أن ونريدالمسار : هذا مثال لدينا أو

C:\windows\desktopالعالمة ) نستبدل أن ( /بo( )\ونريد

الدالة بواسطة ممكن ذلك الereg_replace oكل أخذناها rgular expressionوقواعد التيسابقا

كالتالى : للدالة نستخدمها التي البنيةEreg_replace)reg,string,var(;

مكان في للreg oنضع الregular expression oالقاعدة مكان الجديد stringونضع الحرف oال من بدال منه . varونضع الحروف استخالص نريد الذي المتغير

مثال :>?$path =" C:\windows\desktop";$tell= "Majed love his game .....";$newpath= Ereg_replace)"[\.]","/",$path(;$newtell= Ereg_replace)"\.","",$tell(;echo $newpath;echo ">br<>br<";echo $newtell;?<

األخطاء لتتبع أخري أساليبعباره echoاستخدام

134

Page 135: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

لديك أنت فمثال نموذج متغيرات بعض فحص في مثال يستخدم وكان االساليب أقدم من هوالتي المنطقية األخطاء اختبار في تستخدم وقد النموذج إلى معلومات بإرسال يقوم نموذج

الكود في متابعتها يستصعبمثال :

>? Echo “this is : $name”;Echo “>br<”;Echo “this is : $Email”; كود يقوم بمعالجة معلومات المتغيرين//طباعة المتغيرين بعد اداء عملية المعالجة ورؤية النتائج//Echo “this is after : $name”;Echo “>br<”;Echo “this is after: $Email”;?<

oال كود htmlفحصحينئذ فعليك التعليقات عالمات وسط األخطاء إخفاء ويتم سكربت جافا كود تستخدم قد

oال كود ال .htmlفحص أم المخفية األخطاء بعض هناك كان إن لرؤية

األخطاء تجاهلفكل األخطاء هذه تجاهل تريد ولكنك أخطاء بها صنعتها التي الدالة أن تعلم أنك لنفترض

بوضع تقوم أن حدوثه .@ماعليك عند الخطأ تجاهل يتم لكي الدالة أمام oال في مقبولة الغير األشياء من الصفر على القسمة أن نعلم نحن صنعت PHPمثال وأنت

يقوم أن تريد ولكنك خطأ باألصل ألنها تنفيذها يتم ولن صفر على بالقسمة تقوم PHPدالةوضع هو تفعله أن عليك ما فكل الدالة . @بتجاهلها أمام

مثال :>?function amail )$y({$y=$y/0;return $y;}$s= @amail)44(;echo $s;?<

العميل مع التعامل oال فإن ، السابقة الدروس في رأينا الPHP oكما عن المميزات من عظيم رقم htmlيوفر

أو ) الموثوقية هي اآلن حتي عنها نتكلم لم التي األساسيه األشياء من ، الويب مواقع لبناءوالصريح ( : الصحيح بالمعني وهو االستقرار

المستعرض ... في مختلفيتن أو منفردتين صفحتين بين بالمعلومات االحتفاظ على القابيلة

، إضافات أي مستقرة HTTPبدون وجعلها البيانات على للحفاظ ميكانيكيه أي اليوفراالنترنت ) في لصفحة طلب كل ، صفحتين بين تتم بأي( requestلمعالجة عالقة أي له ليس

فان ... العربي المطور منتدي ثم ومن العربي المطور موقع تتطلب عندما مثال آخر طلبببعضهما ... عالقه لهما ليس الطلبين كل

oال أن نقول أن يمكننا آخر لحالتها )HTTPبمصطلح أن( statelessفاقدة أي التعرف أنها أيمن صفحة بيانات بنقل تقوم عندما فهي ، الطلب انتهاء عند ينتهي الصفحة طلب أمر

نافذه أي وعلى البيانات يطلب الذي المستخدم هو من تعرف فهي المستخدم الى السيرفر135

Page 136: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

فطلب المستخدم عاد وإذا ينتهي الموضوع هذا كل فان ذلك انتهاء وعند البيانات نقل سيتمال ! أو المستخدم نفس هو كان إن التعرف فإنها أخري صفحة

oال على مقتصرة قوة او ميزة أو وسيلة ليست البيانات وجود على الحفاظ على القدرة إنPHP. فقط

أي خسران بدون صفحة إلى صفحة من معلومات ارسال استطعنا كيف رأيت فلقد oال طريق عن وذلك بإغالق htmlمعلومات يقوم عندما المستخدم فإن ذلك من وبالرغم

oال استخدام طريق عن ، لألبد فقدانها يعني ذلك فان للبيانات استقبالها عند PHPالصفحةمثلما ، عليها الحفاظ من تمكننا بطريقة البيانات بارجاع يقوم بأن السيرفر اخبار يمكننا

ذلك .... لعمل طرق ثالث هناك ، الدرس هذا في سنري

oلل الفهم قوة في الحقيقي الPHP oالتميز استعمال كيفيه في جيدة مفهومية منا يتطلب ،PHP الضعف نقاط على نتغلب لكي يستخدمه الذي والمتصفح المستخدم مع التفاعل في

oال في .http التي

عن : فيه سنتكلم والذي اليوم لهذا موضوعنا هو هذا

1 - oالHTTP oوالhtml oال يستطيع وكيف ، قدراتهم فيهم PHPومحدودية القصور علي التغلب.

مختلفيتن - .2 لصفحتين طلب بين نستخدمها أن نريد التي بالمعلومات االحتفاظالبيانات - .3 على الحفاظ مكنكةاستخدامها( .cookiesالكعكات - )4 وكيفية5 - PHP4 oوالnative session . – البيانات وجودية على للحفاظ الداخلية المكنكة

كبيرة – متوسطة متفاعلة مواقع انشاء على جديد هو لمن ظاهري بشكل مفيد الدرس هذا oال بواسطة ..PHPالحجم

تفيدك . التي األمثله بعض من الكثير على يحتوي إنه

عبر المستخدم معلومات على الحفاظ كيفية على تتعرف أن هو الدرس هذا من الهدفصفحة كل في ظاهر المستخدم اسم تجعل أن مثل ، صفحة من أكثر بين أكثر أو متغير

البيانات ... . وجود استمرارية يؤكد مما إليها بالولوج يقوم

هذا أن أو غذائية مواد وتسويق ببيع يهتم الموقع هذا االنترنت على موقعا لدينا أن لنفرضمعينة سلعة شراء بطلب المستخدم يقوم عندما العادة في ، ثقافية مسابقات يقدم الموقع

من أكثر بدخول يقوم فإنه الثقافية المسابقات من مسابقة في الدخول يختار عندما أوبالتتابع صفحة

الصفحة في السلعة معلومات برؤية يقوم ذلك وبعد األولى الصفحة في السلعة يختارمن ينتهي أن إلى ذلك غير أو للشراء معلوماته بتعبئة فيها يقوم الثالثة والصفحة الثانية

قام التي والسلعة معلوماته فيها صفحة النهاية في له تنتج ذلك وبعد المعلومات كافةشراء !! وفاتورة باختيارها

على بالحصول يقوم ذلك وبعد األولى الصفحة في الثقافية المسابقة نوع باختيار يقوم أوالنهاية في له فتخرج المسابقة من ينتهي أن إلي صفحات عدة على مقسمة أسئله عدة

!! خاسر أم فائز هو وهل ومعلوماته لألسئلة الدرجات مجموع

الجلسة ) على بالمحافظة مايسمونه هذا الواقع دخول( maintain sessionفي بذلك وأقصدوغير معلوماته على المحافظة مع صفحة إلى صفحة من وانتقاله صفحة إلى المستخدم

بأول . أوال متابعته نستطيع لكي ، البيانات من ذلك

136

Page 137: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

oال بروتوكول ما httpوالhtml oفي صفحة يطلب عندما الشخص كان ما إذا معرفة النستطيعما ) صفحة يطلب عندما المستخدم أن إذ الثانية الصفحة إلى يذهب عندما نفسه (requestهو

ويقوم الشخص هذا يتكلم بالعالم مكان أي من بمعرفة يقوم السيرفر فإن السيرفر منيطلبها ) كان التي الصفحة باعطاءه إليه استجابه فإن( responseبارسال ذلك بعد ولكن

الثالثة أو الثانية الصفحه بطلب يقوم الذي نفسه هو الشخص هذا كان إذا يعرف ال السيرفرالسيرفر . في

oال ميزة تأتي تفاعل PHPهنا إبقاء ميكانيكية لصناعة االنترنت برمجة لغات من وغيره oال طريق عن والسيرفر المستخدم بين الsession oمستمر نعقد cookieو ال ولكي ،

فائدة ال التي الثرثرة من الموضوع لفهم أفضل فذلك عمليا ذلك عن نتكلم دعونا الموضوعمنها .

المخفيه الحقول استخدام ، اسمه ادخال المستخدم من تطلب األولى الصفحة ، صفحات ثالث بإنشاء اآلن سنقوم

باعطاءه تقوم الثالثة والصفحة ، أسئلة ثالثة واعطاءه به بالترحيب تقوم الثانية والصفحةالنتيجة .

التالي : الكود واكتب لديك نصوص محرر افتح>p dir="rtl" align="center"< الكريم اسمك >p/< ادخل>form method="POST" action="quiz2.php"<>hr<>input type="text" name="name" size="20"<>br<>input type="submit" value=" رسالإ " <>/p<>/form<

باسم quiz.phpاحفظها

137

Page 138: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

التالي : الكود واكتب النصوص محرر بفتح قم>html dir ="rtl"<>?If (isset($name)) {Echo " يا بك ; name$ . "مرحبا Echo '>br<>form method="POST" action="quiz3.php" dir="rtl"<>input type="hidden" name = "thename" value = "’.$name.’"<"هو ؟ أمن الراشدين الخلفاء ول >/p< >p dir="rtl"<>input type="radio" value=" الصديق أ بوبكر " name="khlifa"< بوبكرأ>p/<. الصديق >p dir="rtl"<>input type="radio" value=" الخطاب بن checked "عمرname="khlifa"<عمرالخطاب >p/<بن >p dir="rtl"< ؟ الفاروق هو >p/<من >p dir="rtl"<>input type="radio" name="faroq" value=" بن عمر

بن"< عمر الخطاب>p/<الخطاب >p dir="rtl"<>input type="radio" name="faroq" value="سالم" checked<

بن سالم>p/<عامر >input type ="submit" value = " رسالإ " dir="rtl"<>/form<' ;}else{echo " الصفح هذه بدخول لك مصرح ةغير " ;}?<

باسم quiz2.phpاحفظها

138

Page 139: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

التالي : الكود واكتب المفكرة بفتح قم>?If ((isset($thename)) && (isset($khlifa)) && (isset($faroq))){echo ' يا المسابقه انتهت ; thename$ .' لقد$range=0;$co = 0; if ($khlifa ==" الصديق أ بوبكر ") { $range=$range+10; $co = $co +1; }

if ($faroq ==" الخطاب بن ("عمر { $range=$range+10; $co=$co+1; } if ( $range > 10) { echo " أي هناك ةصحيح ةجابإليس "; } else { echo ">br<"." االسئل عليها أالتي ةعدد جبت =" . $co ; echo ">br<" . " عليها ةالدرج حصلت التي " . $range ; }}?<

باسم quiz3.phpاحفظها

139

Page 140: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

بتشغيلها قم ثم السيرفر مجلد في السابقه الثالثه الملفات بوضع قم

الشرح أقوم أن أحاول أنني بمعني ، للبيانات تواصل مكنكة صنع بمحاولة المثال هذا في قمت

في اختبر كنت أنني الحظ ، متواصل بشكل صفحات الثالث عبر بالبيانات و quiz2باالختفاظquiz3 بالصفحة باالحتفاظ مثال المستخدم يقوم فقد شي أي طباعة قبل المتغيرات باختبار

ذلك اريد ال ولكني آخر وقت في المسابقة باكمال يقوم ثم المفضلة في إليها وصل التي ) لذلك ) طويلة المسابقة كانت إذا سيحصل الكالم هذا طبعا محدودا وقتها أجعل ان أريد بل

القيم هذه جميع كانت إن باختبار اقوم صفحة إلى صفحة من االنتقال عند كل في فإننيحقول في جديدة متغيرات في المتغيرات بقيم دوما اجتفظ كنت أنني والحظ موجودة

لهذه إن ، أكثر المخفية الحقول عدد كان مره كل في أكبر المعلومات عدد كان وكلما مخفية oال كود المستخدم يفتح فقد مشاكلها أيضا عبر htmlالطريقة مالحقته كيفية بتفحص ويقوم

الخدعة بهذه المسابقة اكمال يستطيع لكي الحق وقت في الكود هو يصنع وقد المسابقة ... تعقيدا اكثر السابقة المسألة بجعل وتقوم بذلك تقوم ال أن يفضل لذلك الماكرة

oال التلغيم regular expressionباستخدام هذا فك ثم ومن بواسطته البيانات تلغيم بمحاولةالبيانات . اليها تصل التي الصفحات في

بواسطة بيانات query stringsارسالالصفحة اسم الى بإضافتها نقوم التي االستعالمات بواسطة بسيطة بيانات ارسال نستطيع ) ( من أكثر هناك كان وإذا وقيمته متغير اسم ثم استفهام عالمة ؟ oب متبوعة األعلى في

المعلومات & . من لمزيد النماذج درس وراجع بعالمة بينهم الربط يتم متغير

وسمها صفحة بعمل فيها :ask.phpقم التالى الكود بكتابة وقم

>?If (isset($ask)) { If ($ask == login) { Echo " الدخول تسجيل الصفح إتم ةلى "; }}if (!isset($ask)) {echo " الدخول تسجيل يتم الصفح إلم ةلى " . “>br<”;Echo ">A HREF=$PHP_SELF?ask=login< دخولك تسجيل ليتم هنا ;">a<>br/< اضغط}?<

140

Page 141: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

يدعم موقع على المثال هذا بتجربة بشكل PHPقم يعمل لم إذا لينوكس تشغيل نظام علىالوندوز على جيد

الرابط على الضغط وعند استعالمات أي نستخدم لم الصفحة الى الولوج أول في أننا الحظال يقوم الذي المتغير قيمه بارسال الرابط ارسالها PHPقام تم قد انه وجد فاذا باختبارها

) ( ) قام) يجدها لم واذا الدخول تسجيل تم بطباعة قام عليه الضغط تم الذي الرابط بواسطهفي ) ( المتغير على يحتوي الذي الرابط طباعة إلى باإلضافة الدخول تسجيل يتم لم بطباعة

طياته

الكعكعات ) أو cookies)الكوكيز

البيانات من الصغيرة القطع أو المعلومات بعض عن عبارة هي الكوكيز ، الكوكيز ماهي إذاللمستخدم المختلفة الزيارات عند بها االحتفاظ يتم لكي العميل جهاز في بها االحتفاظ يتم ) أخري) أشياء في منها تستفيد لكنك ضخمة بقيم فيها باالحتفاظ تقوم ال أنت ، العميل

مثل :

1 ( - مثال للمستخدم تجعل أن أي صفحتك فيها يري التي الخاصة األلوان مستخدم لكل جعلموقعك ( لرؤية الخاصة األلوان إعدادات

لموقعك - 2 زياراته عند الخاصة بياناته في التحكم به يستطيع لكي للمستخدم مفتاح جعل. اخري مرات في

بشكل يستخدم اآلن لكنه ، خطيرة والغير البسيطة األشياء في لالستخدام مفيد الكوكيزتخزين أو ، منه علم بدون المستخدم عن معلومات معرفة في مثال استخدامه مثل ، سئ

السيرفر . على ملف في حفظها يتم أن األجدر من والتي فيه البيانات من كبيرة كمياتبالكوكيز متصفحاتهم تسمح موقعك زوار جميع أن تضمن عندما مفيدا استخدامه ويكون

انترانت) ( . شبكات أو المدارس طلبة مثلالعميل . بجهاز بالكوكيز السماح عدم عند منها الضرر بسيطة ألشياء فقط يكون عندما

الكيوكيز مع بدايتكالكيوكيز عن األساسيات بعض معرفة علينا نبدأ أن قبل

مع وقيمته متغير اسم لتخزين تستخدم التي البيانات من صغيرة قطعة عن عبارة الكوكيزانتهاءها . وتاريخ منه أتت التي الموقع حول معلومات

العميل ) جهة من للتخزين تقنية عن عباره ملفات( client-side storageالكوكيز في تتخزنالعميل جهاز في

منه . ارسلت التي المكان من ومسحها الكوكيز هذه إلى العبور يتم

فإن كوكيز بتتخزين تقوم الصفحة وهذه السيرفر من صفحة المستعرض يطلب عندماالحقا . لالستعمال كوكيز بوضع سيقوم بأنه المستعرض باخبار يقوم السيرفر

إنشاؤها تم التي البيانات بارسال المستعرض يقوم آخري مرة في الصفحة طلب يتم عندماالصفحه . طلب عند سابقا

فوريا مسحها ويتم السيرفر قبل من االمحدد صالحيتها وقت بإنتهاء الكوكيز مده انتهاء يتمالثواني . من صفرا صالحيتها وقت كان إذا الصفحة اغالق عند

141

Page 142: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

في به اتذكرك شي هذا لك يقول فإنه للمستعرض الكوكيز السيرفر يعطي عندما بإختصاربعد ) حتي زرتها التى الصفحة في آخر رابط ضغط من الوقت هذا يكون قد الحق وقت

أكثر ( . أو أسبوع

oال عبر الكوكيز بإرسال السيرفر من HTTP Headersيقوم مخرج أي قبل إرساله يتم الذي oال htmlمخرجات

oال عبر الكوكيز بإرسال يقوم أيضا المستعرض HTTP Headerوالمستعرض أن إلى باإلضافهالموقع قبل من مرسلة مثال الكوكيز كانت فلو الكوكيز بإرسال سيقوم من على يتعرف

www.php.net موقع إلى بإرسالها يقوم لن . www.phpbuilder.comفإنه

عملية اقتصار يتم لكي الكوكيز ارسال يتم مسار تحديد الكوكيز إنشاء عند باستطاعتكمعينة . أماكن إلى الكوكيز إلى العبور

قراءتها : وكيفية الكوكيز تخزين كيفية بتعريف اآلن سنقوم بسيط كود بوضع نقوم أن قبل oال الدالة PHPكون بواسطة للكوكيز كامل بدعم تأتي فإنها ويب سكربتات لعمل حديثه لغة

setcookie)( مخرجات أي طباعة قبل استعمالها يجب استعمالها عند أنك .htmlباستثناء

الدالة وهي )(setcookieتاخذ استخداما واألمثل األهم هي األولى الثالثة ، معامالت ثالثبالترتيب :

للمتغير كاسم تخزينها يتم حرفية قيمة المتغير لذلك كقيمة تخزينها يتم حرفية قيمةUnix timestamp الكوكيز إنتهاء تاريخ إلى باإلشارة يقوم الذي

Unix timestamp الثواني بحساب يقوم عشرية فواصل على يحتوي ال صحيح رقم عن عبارةليلة منتصف من . 01/01/1970من ساعة بعد الكوكيز بمسح نقوم أن مثال نريد كنا وإذا

الدالة باستعمال نقوم فإننا الtime)( oتخزينه بحساب تقوم عليه timestampالتي نضيف ثمتساوي الساعه حالتنا وفي نريده الذي ناتج 3600الوقت بإضافة سنقوم ذلك وعلى ثانية

واحدة ! 3600على timeالدالة ساعة بعد الكوكيز مسح يتم لكي

ولن االستخدام نادرة ولكنها الكوكيز في أيضا ستخدامها يتم التي األخري العوامل الثالثهي : هذا موضوعنا في نناقشها

الموقع نفس من الصفحة نفس فتح تم فلو إليه الكوكيز إرسال يتم الذي المساركان ) المسار مثال اخر مسار من إلى pag\url\oneولكن تغييره فان page\url\twoوتم

سيتم الذي المسار تحديد تم ألنه الصفحة إلي البيانات بارسال يقوم لن المستعرضاليه ( الكوكيز ارسال

من أكثر هناك كان إذا ما حالة في مفيد وهو إليه البيانات إرسال سيتم الذي الدوميناليه الكوكيز ارسال تريد دومين

نوع من بinteger oمتغير إليه اإلشارة عمليات secureيتم استخدام حالة في يتم oبال SSLتشفير

العامة المتغيرات ضمن تخزينه يتم ارساله يتم الذي فالمتغير جدا بسيط الكوكيز الى العبور(global )اسمه كوكيز لدينا كان لو فإنه متغير ahmedوعندئذ في مباشرة توضع قيمته فإن

!!ahmed$اسمه

الكوكيز مسح يستطيع المستخدم فإن بالطبع ، طريقة من بأكثر الكوكيز مسح يمكننافإننا بمسحها يقوم السيرفر نجعل أن أردنا إذا ما حالة في ولكن بنفسه محتوياتها وتغيير

الطريقتين هاتين إحدي نستخدم

142

Page 143: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

قديم : بوقت السيرفر بإخبار نقوم أن إما>?Set cookie (“majed” , “0”, time()-999);?<

فقط : اسمه بكتابة الكوكيز بمسح القيام وإما>? Setcookie (“majed”);?<

كوكيز وقراءة لتخزين مثال

التالي : الكود واكتب المفكرة بفتح قم>?If ($thename) setcookie ("rname", $thename, time()+3600);Echo '>form method="post"<>input type ="text" name="thename"<>input type="submit" value="تسجيل"<>/form<';echo " لديك الذي المتغير ;">thename .">br<>br$ ." " ."قيمهecho " الكوكيز ; rname$ . "= قيمة?<

الشرح مره الول الصفحه تشغيل عند

باالسم متغير هناك كان إذا ما اختبار سيتم للصفحة تشغيلك الحصول thename$عند تم فإذاباسم ) كوكيز في قيمته وضع فسيتم أول( ) rnameعليه في عليه الحصول يتم لن وطبعا

) وزر واحد نص مربع من نموذج طباعة ذلك وبعد بعد بيناات أي بارسال نقم لم ألننا مرةالمعلومات . إلرسال

باسم ارساله تم متغير أي هناك كان إذا المتغير قيمة طباعة فحص thename$ويتم ويتمالكوكيز كوكيز .rname$قيمة أي اآلن حتي يوجد ال وبالطبع وطباعتها

الثانية المرحلة ) سيتم ) االرسال زر بضغط قم ثم مثال اسمك اكتب النص مربع في شي أي بكتابة قم اآلن

يحمل الذي المتغير قيمة تسجيل سيتم المرة هذه ولكن الصفحة نفس الى البيانات ارسالالكوكيز ) في طباعة( rnameالبيانات وسيتم عادي بشكل النموذج طباعة سيتم ذلك وبعد

المتغير المتغير thename$قيمة قيمة طباعة يتم لن بتسجيله rname$ولكن قمنا فقط ألننا143

Page 144: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

الصفحة ) طلب عند الكوكيز ارسال يتم أنه نعرف ألننا الصفحة طلب عند ارساله يتم ولمالسيرفر يرسله فلم باألصل موجودا الكوكيز يكن لم الصفحة طلبنا عندما المرة وهذه

القادمة ( . للمرحلة استعدادا بتسجيله نحن وقمنا

الثالثة المرحلةومن ارساله ويتم متغير هيئة على ارساله فسيتم موجودا الكوكيز سيكون المرة هذه في

المتغير وقيمه النموذج طباعة بجهازك ! thename$ثم يوجد الذي الكوكيز وقيمة

oال الى sessionبدايتك oالsession oال ضمن موجودة وهي المستخدم مع للترابط تقنية عن عبارة ضمن PHP4هي موجودة تكن ولم

oلل فهمنا يعتمد ، التقنية هذه استخدام تستطيع لكي مكتبة بتركيب تقوم أن يجب كان بل قبله التي اإلصداراتsession ، السابق الدرس في جيد بشكل الكوكيز عن تكلمنا ولقد استعمالها وكيفية للكوكيز فهمنا على

oال الsession oيستخدم أن قلنا فلقد ، والسيرفر المستخدم بين تواصل ميكانيكية لنا httpلعمل يوفر الوينتهي أراد ما بإعطائه يقوم السيرفر فإن السيرفر من صفحة المستخدم طلب فإذا ، تواصل لعمل ميكانيكية

... oال تقنية انشاء تم ذلك ألجل هو ليس أو المستخدم نفس هو كان إن يعرف فال ذلك عمل sessionعند ألجلمعين مستخدم زيارات عدد بتحديد تقوم أن مثال فبإستطاعتك ، والموقع المستخدم بين تواصل تقنية

يستطيع .... بسيط إلكتروني متجر عمل يمكنك أو الوقت من معينة لمدة أو ألسبوع أو واحد ليوم لصفحتكبإضافة يقوم عندما الموقع وبين بينه تواصل على ويكون الموقع من واحدة دفعة أشياء عدة شراء المستخدم

. مشتريات حذف أو التسوق سلة إلي مشترى

oال استخدام كيفية عن أتكلم أن إعداد Sessionقبل كيفية عن بالتكلم سأقوم ، البسيطة األمثلة بعض وإعطاءoالsession oال .PHPمع

oال الsession oاعدادات PHPفي

oال مع التعامل تستطيع الsession oلكي ملف في التي اإلعدادات بعض على تتعرف أن عليك يجب جيد بشكلphp.ini

oبال فيه خاصا قسما ستجد الملف تفتح حوالى sessionعندما بل 19هناك كلها إليها نتطرق لن ولكن إعداد oال على للتعرف لنا كبداية فقط منها والمهمة األساسية عن عمله .sessionسنتكلم وكيفية

التخزين طريقة اعدادsession.save_handler (files | mm | user)

افتراضي : بشكل كالتالى الملف في مكتوبة العبارة هذه ستجدsession.save_handler = files

oلل التخزين طريقة بتحديد يقوم اإلعداد للتخزين :sessionوهذا حاالت ثالث وهناك

السيرفر : -1 على عادية ملفات في التخزينsession.save_handler = files

144

Page 145: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

السيرفر : -2 ذاكرة على التخزينsession.save_handler = mm

سوف -3 ما وهذا البيانات قواعد في التخزين مثل المستخدم قبل من ومعينة معرفة أخري بطريقة التخزينالبيانات : قواعد عن الكالم بعد عنه بالتفصيل نقوم

session.save_handler = user

oال سيقوم التي الملفات عدد اعتبارك في تأخذ أن األول sessionيجب لألعداد استخدامك عند بتخزينهااآلالف . أو بالمئات الزوار عدد يكون عندما خاصة واإلفتراضي

ببساطة . منها البيانات مسح السهل من أنه المشكلة ولكن أسرع الذاكرة استعمال يكون قد

البيانات لتخزين مرونة تعطيك وهي ، جدا وصعبة معقدة ولكنها ، مرونة الطرق أكثر تكون قد الثالثة الطريقة oال قبل من مدعومة وسائط أي بيانات PHPفي قواعد .oracleو mysqlمثل

إلى الخاصية هذه قيمة بوضع قمت أنك اآلن افترضه filesالذي

التخزين مكان إعدادsession.save_path (path/to/directory)

إلى السابق اإلعداد ضبط قد كنت إذا مفيدة الخاصية filesهذهعن بعيدا التخزين مكان بتحديد تقوم أن األفضل ومن السيرفر على التخزين مكان بتحديد الخاصية هذه تقوم

الملفات . هذه تصفح تمنع لكي السيرفر مجلد

oلل التلقائي sessionاإلنشاءsession.auto_start (0 | 1)

oال كان ما إذا بتحديد يقوم اإلعداد من sessionهذا صفحة ألي أو للموقع زيارة كل عند تلقائيا إنشاؤه سيتم oال كود إدراج بدون إلى ... )sessionصفحاته القيمة بوضع تقوم فإنك ذلك وعلى صفحة كل ذلك( 1في أردت إذا

.أن إلى تحتاج ال أنك إفتراض الo وعلى بعمل PHPتجعل طلب sessionيقوم غير ومن تلقائيا صفحة لكل

الى ) اإلعداد هذا قيمة بوضع (0فستقوم

SIDالـ oال فإن صفحتك بزيارة الزائر يقوم الزائر sessionعندما فيه قام التي المرات وعدد الزائر هذا تتبع يستطيع

oال يقوم ، الواحد لليوم افتراضي )SID )session identefierبعمل PHPبالدخول بشكل تلقائي معرف رقم أوإنشاء بطلب تقوم الذي sessionعندما المعرف رقم إن ، تماما اآلخر عن يختلف معرف رقم وكل ، بالزائر

oال التالى :PHPينشئه للشكل شبيه

fc94ad8b1ee49ef79c713ee98ac1fcc4

oال بها يستطيع طريقتين الPHP oهناك للمستخدم :SIDمتابعةالكوكيز . -1 في بتسلسل والتخزين المتابعة طريق عناالنترنت . -2 في الصفحة بعنوان المعرف رقم اتباع طريق عن

الطريقتين : كال عن أمثلة سنأخذ

الكوكيز - 1 استخدام

145

Page 146: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

يجب ولكن ، األسهل وهي والموقع المستخدم بين ترابط على للحصول شيوعا الطرق أكثر هي هذه بالطبعمتصفحه يكون قد أو المتصفح في الكوكيز ميزة منع أو ألغي قد يكون قد المستخدم أن اعتبارك في تضع أن

الكوكيز . يدعم العن الكوكيز حجم يزيد بأن تسمح ال المتصفحات بعض أن اعتبارك في كيلوبايت .5خذ

ملف في البسيطة اإلعدادات بعض الphp.ini oهناك باستخدام البدء قبل عنها معلومات معرفة يجب التي

session: الكوكيز معsession.use_cookies (0 | 1)

oال مع الكوكيز استخدام يمكنك كان ماذا تحدد الخاصية القيمة )sessionهذه وضع وعند ال من( 0أو يمنعك فهذا( oال مع الكوكيز قيمته( )sessionاستخدام كانت اذا الo( 1وأما مع الكوكيز باستخدام يسمح sessionفهذا

session.name (Default: PHPSESSID)

المعرف ) برقم سيحتفظ الذي الكوكيز اسم بتحديد يقوم اإلعداد هو( SIDهذا االفتراضي PHPSESSID واإلعدادقليل بعد سأطرحه الذي المثال فهم تستطيع لكي اإلعداد هذا بتغيير اقوم ولن

session.cookie_lifetime (Default: 0)

( oال بقيمة يحتفظ الذي الكوكيز فيها سيبقي التي المدة بتحديد اإلعداد هذا هو( SIDيقوم االفتراضي واإلعدادمباشرة المتصفح لنافذة المستخدم اغالق بعد تلقائيا الكوكيز مسح سيتم أنه أي ، صفر

session.cookie_path (Default: /)هو .. كما ودعه قيمته بتغيير تقم ال له الكوكيز تخزين يتم دومين مسار بتحديد اإلعداد هذا يقوم

session.cookie_domain (Default: null)هي .. االفتراضية والقيمة لصالحه الكوكيز تخزين يتم دومين اسم بتعريف اإلعداد هذا تقم nullيقوم ال ،

بتغييرها

االعداد ) قيمه كانت اذا انه اعتبارك في الستدعاء( session.use_cookiesضع داعي ال فان واحد تساويالset_cookie)( oالدالة بواسطة تلقائيا اعدادها سيتم بل الكوكيز PHPإلعداد

الصفحة - 2 عنوان إلى أوالكتابة اإلضافة oال عنوان إضافة في SIDإن ومفيدة سهلة طريقته أن رغم جدا البشعة األشياء من يعتبر الصفحة عنوان إلى

جيد بشكل المتصفح في مدعوم غير الكوكيز كان إذا ما حالةمثال :

<a href="configure.php?>?=SID?<"<Go to the configuration page>/a>المرجعي المتغير بإضافة نقوم الطريقة للمستخدم .SIDبهذه معرف رقم بإعطاء سيقوم الذي

oال sessionمتابعة oبال المسيره البرامج عالم ندخل تجعلنا معلومات اآلن حتي أخذنا في sessionلقد اآلن سأبدأ ، خوف بدون

oال في األساسيه المفاهيم بعض لديك تثبت التي البسيطة األمثلة بعض هذا ... sessionطرح في سأشرح oال إنشاء كيفية أن SIDالمثال المستخدم من نريد أننا للصفحة السيناريو وخالصة ، الحقا الستعماله وتخزينه

قيمة ... بتخزين سأقوم موقعنا صفحات به يشاهد أن يريد الذي الخلفية لون نخصيص يستطيع أنه يفهمالكوكيز : يدعم المتصفح أن طبعا افترض أنا ، الصفحة لون بتحديد يقوم الذي المتغير في مبدئية

متغير وتسجيل بانشاء يقوم sessionسكربت

>?session_start)(;session_register)"zx"(;session_register)"co"(;

146

Page 147: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………$zx=10;$co++;echo 'مرحبا بك في موقعنا أيها الزائر الكريم '.">br<";

echo "عدد زياراتك لهذه الصفحة=". $co ;echo ">br<";echo '>a href=" php2.php "<الصفحة الثانية>/a<';?<

( oال هي بالجلسة كمصطلح( .sessionاقصد نأخذه فقط ولكن صحيحة غير الترجمة كانت وإن( oال هو الجلسة الsession-variable )oمتغير متغير شئت .sessionأو ما سمه أو

الشرح اسمه ) متغير بإنشاء البداية في السكربت هذا اسمه( )zxيقوم القيمة( )coومتغير بإعطاء للمتغير( )10وقمنا

zx( ) في( ) الصفر وهي الموجودة القيمة بزيادة في( coوقمنا الكريم الزائر ايها بك مرحبا وكتبنا بواحد ( المتغير قيمة هي الصفحة لهذه زياراتك عدد إن له قلنا ثم ، الثانية ( .coموقعنا للصفحة رابط اعطيناه ثم

ملف من سابقا بتحديده قمنا خاص اسم له كوكيز في بها االحتفاظ يتم وقيمها المتغيرات هذه إن الواقع فيPHP.ini oال بقيمة يحتفظ الكوكيز وهذا ،SID oللsession.

oال بإخبار نقوم ال :PHPنحن oال بكلمة بدأنا ألننا المتغيرات بقيمة سيحتفظ أينsession_start();

oال فإن هذا بالPHP oوعلى الخاص الكوكيز في القيمة بتخزين سيقوم أنه .sessionسيفهمالمتغير بجعل تحديث coقمنا عمل فعند الصفحة يزيارة بها نقوم سوف التي المرات لعدد بسيط كعداد

واحد بمقدار العداد زيادة سيتم للصفحة

$c++;

يتم ... ثم ومن تلقائيا إنشاءه عند للمتغير السابقة القيمة حساب يتم فإنه واحد بقيمة العداد زيادة قبل وطبعاالقيمة . طباعة ذلك وبعد الزيادة

oال رقم SIDكتابةباسم واحفظه التالي الكود اآلن php2.phpاكتب

>?session_start)(;echo $PHPSESSID .">br<";echo $zx;?<

oال قيمة بطباعة نقوم الصفحة هذه المتغير SIDفي قيمه بطباعة الكوكيز ) PHPSESSID$وذلك اسم هو الذي oبال ( .sessionالخاصة

المتغير قيمة بطباعة النهاية في قمنا ذلك ولم zx$بعد بها يحتفظ زال ما الكوكيز بأن نظرك ألفت لكيملف في اإلعداد حددنا قد ألننا الphp.ini oيفقدها الكوكيز بوقت تلك 3600الخاص بعد ثم ساعة لمده أي

متغير : أي قيمة استرجاع يمكنك ولن الكوكيز مسح سيتم الساعة147

Page 148: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………session.cookie_lifetime = 3600

oبال الخاصة للكوكيز القيم قراءة يمكنك ال أنه معلوماتك إلى طريق sessionواضف عن إالاألمر إضافه

session_start();

الخاص الكوكيز بها يحتفظ التي المتغيرات قيم قراءة أردت إذا دائما األمر بهذا تبدأ أن يجبoبالsession .

oال من متغير sessionمسحالدالة : هذه استخدام هو فعله عليك ما كل

session_unregister(variable name);( oال مكان في المتغير اسم بوضع ( variable nameتقوم

مثال :session_unregister(“brn”);

المتغير ) بمسح األمر هذا )brnسيقوم )oبال الخاصة الoكوكيز ( sessionمن

oبال الخاصة الoكوكيز في المتغيرات قيم sessionقراءةالدالة : استخدام هو فعله عليك ما كل

session_encode();

مثال :>?session_start)(;session_register)"bgcolor"(;session_register)"name"(;session_register)"email"(;$bgcolor = "#8080ff";$name = "majed sa";$email = "[email protected]";$e = session_encode)(;print "The encoded string is: $e";?<

oلل بسيطة مقدمة عن درسنا أنهينا قد نكون السكربت مقدمة . sessionبهذا مجرد هذه oبال نتعمق أن نستطيع البيانات .sessionولكي قواعد عن شيئا نتعلم أن علينا فيجب

ملف في معلومات وكتابة txt قراءةملفات نستخدم أن يجب بيانات، قاعدة لدينا يكون ال المعلومات txt عندما لحفظ في .. عادية

oال PHP .. ! الدوال من عدد يوجد سهل أمر ملف، من معلومات قراءة أو إنشاء سنقوم - ،ذلك - عمل على تساعدنا اليوم .. بدراستها

بسيط، سكربت بإنشاء ( سنقوم ( ) نقوم ) ثم ومن لمستخدمين، بريد oوال االسم يحفظ .. بعرضها

----------

148

Page 149: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

)(fopen الدالة 1 -

هي األساسية بفتح )(fopen الدالة تسمح التي وهي يكن ، لم إن إلنشاءه أو للقراءة، ملف؛الشكل .. بهذا وتستخدم للكتابة أو موجودا، :تقريبا

fopen("File name & extention","mode");

= File name & extention وامتداده فيه الكتابة والمراد الملف .. اسم = mode الطور ..

المتاحة ** األطوار ** جدول

= r وقراءة .. فقط فتح = w ) ( موجودا يكن لم إن الملف بإنشاء تقوم الدالة فقط وكتابة .. فتح = a ( بإنشاء تقوم الدالة الملف نهاية في المحتويات إضافة مع فقط وقراءة إن فتح الملف

) موجودا يكن .. لم = r+ والكتابة للقراءة .. فتح = w+ فتح ) ( موجودا يكن لم إن الملف بإنشاء تقوم الدالة والكتابة .. للقراءة = a+الملف ) فتح بإنشاء تقوم الدالة الملف نهاية في المحتويات إضافة مع والكتابة للقراءة( إن موجودا يكن .. لم

:أمثلة

$fp = fopen("../file.txt","r"); 

$fp = fopen("ftp://localhost/pub/file.txt","w"); 

$fp = fopen("http://localhost/file.txt","a"); 

...... fopen الدالة الويب على ملفات بفتح تسمح إذن

149

Page 150: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

-2 ) ملف ) تحديث أو إنشاء

إذن .. يجب ملف في معلومات وضع يجب شيء، كل لم قبل إن وإنشاءه للكتابة ملف فتحطور .. بين االختيار لدينا إذن موجودا تبدأ "a "وطور" w "يكن ألنها الثانية، نفضل ولكن ،

كتابة تتم آخر؛ بمعنى الملف، آخر في بالكتابة سابقا المكتوبة المعلومات بعد المعلوماتالملف .. في

جيد: شيء بنجاح مالحظة فتحه تم الملف ان من التأكدif($fp = fopen("file.txt","a"))} 

  fputs($fp, "\n"); 

  fputs($fp, "$name|$email"); 

  fclose($fp);

{else} 

  echo "not file";

  exit;()

{

للدالة .. )(fputs الدالة مرادفة وهي ملف في بالكتابة نفس ،)(fwrite تسمح لهما أن العمل أي ! بالضبط

التالي بالشكل : وتستخدم

fputs;)...(

----------

150

Page 151: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

ملف 3 - من قراءةالمعلومات قراءة القراءة يمكنك بطور بفتحها الملف في :الموجودة

if (file_exists($file))

$fp = fopen("file.txt", "r") ; 

else} 

echo "not file".;

exit;()

{

while (!feof($fp))} 

$line = fgets($fp,4096); 

$liste = explode("|",$line); 

$name = $liste[0];

$email = $liste[1];

echo "Name: $name     email: $email>br"> ;

fclose($fp);

الدالة واحدة )( fgets نستخدم واحدة بالملف، الخاصة المعلومات .. السترجاع

الملف )(feof الدالة نهاية إلى نصل لم إذا بفحص لنا .. تسمح

:مالحظة oب فصلها يجب ولكن المعلومات، من تريده الذي الكم وضع وبين ، |يمكنك وللنهاية للبدأ

..المعلومات

151

Page 152: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

واالستعراض االضافه مثالالتالي باالسم ونحفظه االتي به ونكتب ملف بفتح index.htmlنقوم

<head><title> الشخصية <title>/المعلومات

/<head><body>

"<form method="post" action="add.php>"<div align="center>"

<center> <table bordercolor="#944E6D" border="2" cellpadding="0" cellspacing="2"

width="53%" height="1>" <tr>

<td width="200%" align="center" height="42" bgcolor="#E1F0FF>" <font color="#000080"<>b> الشخصية <b<>/font<>/td>/المعلومات

/<tr> <tr>

<td width="200%" align="center" height="109" valign="top" bgcolor="#FFFFFF>" <table border="1" cellpadding="0" cellspacing="0" style="border-collapse:

collapse" width="100%" height="103>" <tr>

<td width="100%" height="103" valign="top>" <table border="0" cellpadding="0" cellspacing="0" style="border-collapse:

collapse" bordercolor="#111111" width="100%>" <tr>

<td width="46%" align="left>" األولى <td>/األسم <td width="154%" align="right >"

<input type="text" name="T1" size="20"<>/p > /<td> /<tr>

<tr> <td width="46%" align="left>" األخير <td>/األسم <td width="154%" align="right >"

<input type="text" name="T2" size="20"<>/p > /<td> /<tr>

<tr> <td width="46%" align="left>"الدولـــة/<td> <td width="154%" align="right >"

<input type="text" name="T3" size="20"<>/p > /<td> /<tr>

<tr> <td width="46%" align="left>"المدينــة/<td> <td width="154%" align="right >"

<input type="text" name="T4" size="20"<>/p > /<td>

152

Page 153: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

/<tr> <tr>

<td width="46%" align="left>"العمـــر/<td> <td width="154%" align="right>"

<input type="text" name="T5" size="20"<>/p> /<td> /<tr>

/<table> /<td> /<tr>

/<table> /<td> /<tr>

<tr> <td width="200%" align="center" height="30" valign="top"

bgcolor="#E1F0FF"<>p> <input type="submit" value"=أرسل "name="submit"<&nbsp;>input type="reset"

value"=مسح "name="reset"<>/p> /<td> /<tr>

/<table> /<center>

/<div>/<form>/<body>

/<html>

153

Page 154: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

بأسم ونحفظه به التالي الكود بكتابة ونقوم أخر ملف بفتح نقوم add.phpاالن

>?لفتح الملف المحدد //$fp = fopen)"pro.txt","a+"(;if)!$fp({echo " اليمكن فتح الملف";exit;}$date = $T1."\t".$T2."\t".$T3."\t".$T4."\t".$T5."\n"; للكتابة في الملف//fwrite)$fp,$date(;echo ">center<>font color='#944E6D'<>b< لقد تم تخزين البيانات في الملف بي;">b<>/font<>center/<نجاحfclose)$fp(;الكود القادم ماهو الى كود لالنتقال أتوماتيكي الى الصفحه المحدد بثواني محدد //echo ">META HTTP-EQUIV='Refresh' Content=3;URL='index.html'<";?<

الملف تنفيذ حفظ add.phpوعند يأكد الذي التالي الشكل لنا يظهر سوف البيانات وتعبئةبنجاح الملف في البيانات

ملف أنشاء تم أنه تشاهد سوف الدليل نفس الى الذهاب بي قوم به pro.txtاالن ووضعوضعتها التي البيانات

154

Page 155: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

باالسم ونحفظه التالي الكود بكتابة نقوم الملف هذا في الموجوده البيانات والستعراضview.phpالتالي

>html dir="rtl"<>head< >title<ترتيب المصفوفات>/title<>/head<>body<>center<>h1<جميع البيانات>/h1<>?

$orders= file)"pro.txt"(;لحساب عدد البيانات المدخله كل مره // $number_of_orders = count)$orders(; if )$number_of_orders == 0( { echo ">p<>strong<ال يوجد أي بيانات في الملف>/strong<>/p<"; } echo ">table border=1<\n"; echo ">tr<>th bgcolor = \"#CCCCFF\"<االسم االول>/td< >th bgcolor = \"#CCCCFF\"<االسم الثاني>/td< >th bgcolor = \"#CCCCFF\"<الدولة>/td< >th bgcolor = \"#CCCCFF\"<المدينة>/td< >th bgcolor = \"#CCCCFF\"<العمر>/td< >tr<"; for )$i=0; $i>$number_of_orders; $i++( { $line = explode) "\t", $orders[$i] (; echo ">tr<>td<$line[0]>/td< >td align = center<$line[1]>/td< >td align = center<$line[2]>/td< >td align = center<$line[3]>/td< >td align = center<$line[4]>/td< >/tr<"; } echo ">/table<";?<>/center<>/body<>/html<

155

Page 156: lesson php

www.phpvillage.com KSA………………………………………………………………………………………………

156