PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ...

43
PHP ﻟﻠﻤﺒﺘﺪﺋﲔ ﺇﻋﺪﺍﺩ ﺍﻟﺒﺎﺯ ﳏﻴﻲ ﺑﺎﻻ ﺃﺭﺣﺐ ﻋﻠﻰ ﺍﻻﻗﺘﺮﺍﺣﺎﺕ ﺳﺘﻔﺴﺎﺭﺍﺕEmail : [email protected] MSN : [email protected]

Transcript of PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ...

Page 1: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

PHP للمبتدئني

إعداد

حميي الباز

ستفسارات و االقتراحات علىأرحب باال

Email : [email protected] MSN : [email protected]

Page 2: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

مقدمةبسم اهللا الرحمن الرحیم و الصالة و السالم على سیدنا محمد صلى اهللا علیھ و سلم تسلما كبیرًا ، أما بعد ،

كل من یتعلم أو على األقل یكون فالعالم في تطور مستمر و التكنولوجیا في عطاء بناء لكل من یسایرھا و ور ، لذا فمن الواجب على كل من لدیھ العلم لدیھ من الفضول ما یكفي لیجعلھ یفكر مجرد التفكیر في ھذه األم

أسھل و PHPأن یساعد غیره ممن یریدون التعلم على ذلك ، و ھا أنا أضع بین یدیك أولى الخطوات نحو .أفضل إن شاء اهللا

و ما أرجو منك إال الدعاء يل و لوالدي

لمزید من المعلومات و االستفسارات

Email : [email protected]

MSN : [email protected]

Page 3: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

PHPاستكشاف بيئة عمل صفحات االنترنت ھي في األصل عبارة عن مجموعة من السطور البرمجیة یتم تحلیلھا لتظھر مره أخرى للمستخدم عن

تمكنك من التحكم PHP، و لغة Internet Explorerعرضھا على أي برنامج من برامج استعراض الویب و من أھمھم العادیة و التي تكون فیھا الصفحات صفحات ثابتة Htmlفي صفحات الویب الخاصة بك بشكل غیر ثابت بعكس صفحات

. static documentأو

یجب أن نھیئ بیئة العمل للتعامل مع تلك اللغة ، من برنامج محرر إلى المحلل الخاص باللغة و PHPو في إطار تعاملنا مع :ھذا ما یجب علیك أن تقوم بتثبیتھ أوال قبل البدء

• Apache Server

• PHP

PHPإعدادات •

• PHP Editor

Page 4: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

إعداد اخلادم الشخصي للمرة األوىلالبرنامج مزود ، AppServو تحمیل آخر إصدارة من برنامج www.appservnetwork.comقم بالدخول على موقع

:بكل البرامج و التطبیقات و المحلالت التي تحتاج ألیھا لبیئة العمل الخاص بك و ھي

• Apache

• PHP

• MySQL

• phpMyAdmin

Microsoftفي نظام PHPو ھذه المكونات الزمھ بشكل ضروري للقدرة على تكوین بیئة عمل مناسبة للتعامل مع Windows و اآلن لنتابع عملیة تركیب ،AppServ :

Page 5: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ
Page 6: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ
Page 7: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

:التحكم في الخادم الوھمي •

جاح التثبیت و عمل الخادم الوھمي، و ھذا یتم عن طریق مدیر اآلن و قد تم تثبیت الخادم الوھمي یجب أن تقوم بالتأكد من ن، و منھا أیضًا یمكنك إیقاف أو تشغیل أو تعطیل أو إعادة بدأ خدمة الخادم الوھمي في Windows XPالخدمات في النظام

:النظام ، كما أنھ یوجد طریقة أخرى لذلك و لك الطریقتین

: Windows Serviceالطریقة األولى من

Control Panelمن لوحة التحكم -١ Administrative Toolsثم -٢ Servicesثم -٣ منھا تجد النافذة الموجودة بالصورة -٤ Apacheمن القائمة مع العلم أن اإلصدار قد یختلف أي أنھ من المھم فقط وجود Apatche2.2قم بتحدید -٥لكل من تلك األزرار وظیفتھا حیت أنھا مرتبھ عند التحدید سوف تجد األدوات التالیة ظاھرة باألعلى و ھي محددة -٦

من الیمین إلى الیسار، الزر األول و ھو على شكل مربع جواره مثلت و ھذا یقوم بعمل إعادة تشغیل للخدمة ، الرز الثاني على شكل خطین متوازیین و ھو یقوم بإیقاف الخدمة مؤقتًا ، الزر الثالث و ھو على شكل مربع و یقوم

.مة عن العمل، الزر الرابع و األخیر یقوم بتشغیل الخدمة في حالة توقفھابإیقاف الخدلتتأكد من عمل الخدمة سوف تجد حالة من أثنین ، أما أن زر التشغیل غیر مفعل و إیقاف التشغیل ھو المفعل و -٧

في ھذه الحالة یجب أن بذلك فإن الخدمة تعمل في وقتھا و إال فإنھا تكون الحالة الثانیة و ھي أن الخدمة ال تعمل و .تقوم بتشغیلھا من الزر الرابع ناحیة الیسار في المربع المحدد باللون األحمر

Page 8: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

: Apache Monitor الطریقة الثانیة

Startمن قائمة البدا -١ All Programsثم -٢ AppServثم -٣ Control Server by Serviceثم -٤ Apache Monitorثم التطبیق -٥ ستجده كما بالصورة -٦

Page 9: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

:التأكد من عمل الخادم الوھمي • قم بفتح المتصفح الخاص بك -١ http://localhostأكتب عنوان الموقع كالتالي -٢ إذا تم فتح الصفحة بالصورة أعلم أن خادمك المحلي یعمل بنجاح حتى اآلن -٣

Page 10: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

و كذلك التأكد من عملھ بنجاح و كذلك لیدك اإلمكانیة للتحكم في حالة بھذا تكون قد قمت بتركیب الخادم الوھمي على نظامك .ھذا و بعد أن تم التأكد من عمل المحلالت الالزمة لبیئة العمل PHPو في انتظار كتابھ أول سطر برمجي بلغة عملھ

:كیف یعمل الخادم الوھمي •

و لنتحدث داخل . حلي یخدم نفسھ و الشبكة الموجود فیھا الخادم الوھمي عبارة عن برنامج یقوم بتحویل جھازك إلى خادم مدون الدخول في تفاصیل الشبكات ، لذا فإن أي صفحة من صفحات االنترنت التي تدخل علیھا تكون PHPنطاق البرمجة ب

ى موجودة على خادم أو جھاز ذات مواصفات عالیھ لخدمة أكبر عدد ممكن من المستخدمین ، الصفحة تكون موجودة علالخادم و عندما تقوم أنت بالنداء علیھا بواسطة كتابھ عنان الصفحة في المتصفح الخاص بك فإن الخادم یقوم بتحلیل اللغة

لیتم إرسال تلك اللغة إلى المتصفح یتم عرضھا بالصورة المناسبة لیظھر الموقع على ما Htmlإلى أبسط ما یمكن و ھي .یبدو ھو علیھ

الخاص بالخادم IPأو عنوان www.google.comم أما باسم الموقع أو أسم النطاق للموقع مثال یتم الدخول على الخادكافیة لیسبب وجود أسماء النطاقات IPو لكن كان من األفضل أن یكون باالسم حیث أن صعوبة تذكر 209.85.135.103

مثال النطاق، أي أنھ عندما تقوم بكتابھ أسم نقل لیس إال كوسیلةأسم النطاق ال یعمل إال الحقیقةوفي . Domainsأو www.google.com یتحول إلى االسمفإن ھذاIP 209.85.135.103 الخادملیتم التعامل مع .

و IPلدیھ اسم نطاق و كذلك AppServالھدف من كل ھذا ھو أنني أرید أن أنبھك إلى أن الجھاز الخاص بك و بعد تثبیت و لو قمت بكتابھ Localhostكالھما وھمي ، و ھذا واضح جدًا في الصورة باألعلى حیث أنك تجد أن عنوان الصفحة ھو

.فسوف تجد ھذه الصفحة 127.0.0.1

، تالحظ أنھ عندما قمت بتثبیت البرنامج طلب منك !! و یبقى السؤال من أي یقوم الخادم الوھمي باستقبال تلك الملفات .تثبیت و ھو موجود في الصورة باألسفلعنوان ال

Page 11: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

لكي ال یحدث أي لبس نتیجة [E:\AppServ]إذا فنقوم بالدخول على ھذا العنوان مع العلم أنني قمت بتثبتھ على ھذا المسار :اختالف مسار التثبیت ، اآلن لنقم بالدخول على المسار الذي قمت بتثبیت البرنامج فیھ

بكل AppServمجلدات و ملف تنفیذي واحد ، ھذا الملف ھو معالج إلغاء تثبیت الخادم الوھمي أي أنھ إلغاء التثبیت ٤لدینا .بساطھ

: wwwالمجلد .١

و ھو المجلد الذي یحتوي على الصفحات التي یتم عرضھا عند الدخول على الخادم الوھمي أي أن ملف موجود داخل ھذا . http://localhostیتم عرضھ من المسار المجلد من الممكن أن

: php5المجلد .٢

یتم تحلیلھا أوال بواسطة المحلل PHPصفحة مكتوبة بلغة أي، PHPو ھو المجلد الذي یحتوي على المحلل الخاص بلغة إلى اللغة المبسطة و PHPیتم تحویل األكواد المكتوبة من ، و PHP.exeو یسمى الموجود في ھذا المجلد Compiler أو

.لیتم عرضھا في المتصفح Htmlھي لغة الویب األولیة

: MySQLالمجلد .٣

و الذي PHPو الذي یستخدم في لغة MySQLو ھو المجلد الذي یحتوي على المحلل الخاص بقواعد البیانات من نوع .سأتناولھ بالشرح فیما بعد

: Apache2.2المجلد .٤

و ٨٠ Postعن طریق المنفذ Httpعلى البرامج الخاص بالخادم الوھمي و التي تنشئ اتصال و ھو المجلد الذي یحتوي .Httpھو المنفذ الخاص

Page 12: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

: PHPإعدادات •

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

اإلمكانیات مفتوحة أو مغلقھ ، ھذه اإلمكانیات تتحكم بشكل كامل في الحمایة الخاصة ببرمجتك ، و على سبیل المثال :و ھذا یتم كالتالي OFFو ھذه الخاصیة مھم جدًا إغالقھا أي جعلھا تساوي Register Globalالخاصة

( c )أذھب إلى قرص النظام و لنفترض أنھ -١ ( C:\Windows )أذھب إلى مسار مجلد النظام -٢ Notepadبواسطة برنامج PHP.iniقم بفتح الملف المسمى -٣ Findثم Editأو من القائمة ( Ctrl+F )قم بالضغط على -٤ في محرك البحث دون القوسین ( register_globals )قم بإدخال -٥ ( register_globals = On )سوف تجد السطر ھكذا -٦ Offإلى Onقم بتغییر -٧ على الخادم لتطبیق اإلعدادات المذكورتین مسبقًا قم بعمل إعادة تشغیل للخادم الوھمي بأحد الطریقتین -٨

یقوم باستقبال PHP.exeأي أن PHP.exeئیسي یوجد بھ التحكمات الكاملة في المحلل الر PHP.iniجدیر بالذكر أن الملف على البیانات PHP.exeتلك اإلعدادات في كل مره یتم تشغیل الخادم فیھا و لھذا تم عمل إعادة تشغیل للخادم لیحصل

.و یتم تطبیقھا على الصفحات التي یتم تحلیلھا PHP.iniالجدیدة من

ي یمكن استغاللھا في معظم البرمجیات القدیمة و من أخطر الثغرات الت Register Globalجدیر بالذكر أیضا أن الخاصیة فضل في كل األحیان ال في أغلبھا االعتماد على إغالق تلك یو ،PHPالتي كانت تعتمد على اإلصدارات القدیمة من

.الخاصیة

Page 13: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

<?php echo "Hello PHP !! ."; ?>

PHPأول برنامج لك يف

، و لكن ھل سألت PHPبرنامج لك في اآلن بصدد كتابة أول لذا فإنك ،PHPاآلن و قد أصبح جھازك معد كلیا للتعامل مع !!. PHPما ھو البرنامج المحرر الذي سوف یتم استخدامھ للتغییر و لكتابھ ملفات !! . نفسك سؤاًال

برنامج ممیز جدًا للتعدیل و PHP Expert Editorالبرنامج المفضل لدى المعظم عمومًا و لدي أنا خصوصا ھو برنامج Microsoft Front، و أیضا سوف نحتاج لبرنامج آخر و ھو برنامج PHPاإلضافة في عده من اللغات األخرى غیر

Page 2003 و ھو أنسب و أفضل و أسھل برنامج للتعامل معHtml و ضبط الصفحات و تنسیقھا و غیر ھذا.

بك و إال فإن الكتاب مرفق معك كال البرنامجین یمكنك تثبیتھم و كذلك شرح تثبیت اآلن قم بتثبیت برامج التحریر الخاصة .كل برنامج مرفق معھ باإلضافة إلى شرح مبسط لكیفیة التعامل مع كل برنامج

، اآلن لتنفذ تلك الخطوات PHPأنت مستعد تماما إن شاء اهللا لكتابھ أول سطور برمجیھ لك في لغة بعد تثبیت كال المحررین :بتركیز

PHP Expert Editorقم بفتح برنامج -١ جدیدة PHPقم بإضافة صفحة -٢ PHPسیكون لدیك صفحھ فارغة جدیدة مھیأة لكتابة أكواد -٣ قم بكتابة تلك السطور -٤ testباسم wwwبعد كتابتھا قم بحفظ الملف في مجلد -٥ http://localhost/test.phpقم بفتح المتصفح الخاص بك و أدخل على العنوان التالي -٦

:، لنقم بفك و تحلیل الكود الموجود باألعلى خطوه خطوة PHPیخرج لنا المتصفح بتحلیل كود الـ

١- "<?php "مبرمجھ بواسطة دائمًا في كل صفحة برمجیة و ھذا ھو وسم البدایة الذي یوجدPHP و ال یشترط كتابة الـ"php " و ینتھي الكود في نھایة الصفحة بـ . فقط" ?>"أي انھ تستطیع كتابتھا بھذا الشكل "?>"بعد"?>."

Page 14: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

و ھو بكل بساطھ عبارة عن دالة ، و ھذه الدالة تقوم بطابعة ;". !! echo "Hello PHPنأتي إلى السطر الثاني -٢و تم عرضھ فعًال ، یأتي السؤال . !! Hello PHPأي نص تقوم بتحدیده ، نجد أنك قمت بتحدید ھذا النص للعرض

.؟ ما معنى كلمة دالة ؟

ا و الحصول على المخرجات ، تنفیذ أمر ما تنفیذ أمر م: تنفیذ أمر ما : الدالة ھي عبارة عن سطر برمجي ، أمر یتم بھ إما .و إضافة المدخالت ، أو تنفیذ أمر ما و الحصول على مخرجات

و في المثال السابق قمت بإدخال نص و تنفیذ الدالة و الحصول على المخرجات في نفس الوقت أي أن الدالة بكل بساطة یشترط حصولھ على المتغیرات و ال حتى على إعطاء عبارة عن أمر برمجي یأخذ متغیرات ویعطي نواتج و ال: تعني

.النواتج

Page 15: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

مالحظات هامة قبل البدءیتم استخدامھا دومًا في األمثلة ، یجب أن تتعرف على بعض من األمور الھامة و التي PHPفي أولى الخطوات لدراسة

.یجب أن تكون واعیا جدًا ألي من ھذه األمور فتذكرھا باألمر الواجب

:التعلیقات •

تعتبر أمر بدیھي أو أمر أعتاد المبرمج أو ھاوي PHPالتعلیقات في البرمجة أو حتى المطور أو المستخدم العادي ، ھذا ألنھا تستخدم أحیانا لشرح شيء ما في الصفحة ، كما في الصورة تجد أن التعلیق یكون لونھ مختلف عن لون البرمجة حیث أنھ یكون ذات لون فضي و

مائل و ھو ال یؤثر على البرمجة حیث أن ما یكب بداخل النص .التعلق ال یتم تنفیذه برمجیًا

التعلیق یكون في صورتین ، فیمكنك كتابھ التعلیق في سطر واحد ) */(، أو أنك تقوم بكتابة (//) مثال بأن تسبق الجملة أو التعلیق ب

حظ أنني بعد كتابتھ كما ف الصورة ، ال )/*(قبل بدایة التعلیق و .قمت بتلوین األجزاء المذكورة بالصورة

:نھائیة السطر •

على إنھاء السطر البرمجي و بدون PHPو ھذا لیتم إعالم ) ;(یتم إنھاء كل سطر ب PHPالحظ في األمثلة السابقة أنھ في ھذه العالمة فإنك تمتلك خطأ في السطر البرمجي الذي ینقص ھذا الرمز بنھایتھ، و لكن إذا كان لدیك سطر برمجي واحد

.فلن یحدث الخطأ ، أو أنك قمت بإدخال الرمز على كل سطور الصفحة عدا السطر األخیر فلن یحدث الخطأ

: PHPخطأ •

ھذا یحدث عند الخطأ في كتابة كود برمجي معین، ، PHPنك قد تواجھ خطأ من األكید أ .في نھایة سطر برمجي) ;(و لنفترض كما سبق أنك لن تقوم بإدخال الرمز

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

الخطأ و المحدد باللون األخضر عنوان الصفحة التي بھا . ٣و كذلك رقم السطر الموجود بھ الخطأ و ھو السطر

Page 16: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

: PHPالمسافات في •

ھل یحدث أي ، و القیمة Echoتذكر المثال األول ، اآلن قم بكتابتھ مرة أخرى و لكن ھذه المرة قم بعمل فواصل كبیره بین تغییر في تنفیذ السطور البرمجیة ؟ الجواب ال بكل تأكید ، حیث

.ال یتأثر بالمسافات PHPأن

و یمكنك طباعة مسافة كبیره عن طریق الضغط على المفتاح )Tab ( و المسافة العادیة عن طریق الضغط على ) المسطرة (

.كما تعلم

: PHPتلوین أكواد •

ا ملونھ بشكل منظم جدًا حیث أن الدوال لھا ألونھا و المتغیرات لھا ألونھا و النصوص لھا ألونھا، أنھ PHPتالحظ في أكواد .كل شيء ملون و مرتب بحیث یسھل علیك التعامل مع البرمجة و السطور البرمجیة

Page 17: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

<?php

$value = "Hello PHP !! ." echo $value ;

?>

<?php Define ( "value", "Hello PHP !! ." ); echo value ; ?>

Function

define ( Name , Value ); define ( القیمة , االسم );

<?php

$value = "Hello PHP !! ." echo "My Value Is : $value";

?>

<?php ; القیمة = أسم املتغري$?>

املتغرياتمن أولى األمور التي یجب أن تتعرف علیھا فھي ضروریة PHPالمتغیرات في

ففي البرنامج الموجود جدًا في التعامل مع أي برمجة صغیرة كانت أو كبیرة ،یمكن أن مع المتغیرات ( ;". !! echo "Hello PHP )باألعلى كتبت

.تجعل الكود كما یلي

صورة عبارة عن أناء فارغ و لھذا سمي متغیرًا ، یمكن أي تقوم المتغیر بأبسط بتعبئتھ بأي نوع من البیانات لیتم االحتفاظ بھا أثناء تنفیذ الصفحة و یتم إفراغھ

.عند إغالقھا

في بدایة أسم المتغیر و ھذا لتحدیده ($)یتم كتابة PHPتالحظ أن المتغیرات في .كمتغیر و إال فكیف سیتعرف المحلل علیة كمتغیر

man$غیر المتغیر Man$أسم المتغیر حساس للحروف ھذا یعني أن : الحظ أن .و ھذا یعني أن المتغیرین مختلفین M (Capital(ففي األول حرف

و أیضا من a-zأي یمكنك تسمیتھ بأي شكل و لكن في حدود من ( man$ )یمكنك كتابة المتغیر بھذا الشكل: أسم المتغیر )و لكن و لكن ال یمكنھ أن یكون رقمًا فقط ( man5$ )حیث یمكنك أن تقوم بإدخال أرقام مع المتغیرات بھذا الشكل 0-9 .( man_5$ )أي أنھ قد یكون ( _ )و یمكنك أن تدخل رمزًا واحدًا فقط في أسم المتغیر و ھو ( $5

: My Value Is )المتغیر كامًال داخل عالمات التنصیص كما یلي، و سوف یتم عرض اآلتي من الممكن أن یتم تضمین Hello PHP !! . ) في المتصفح عند تشغیل الصفحة بعد تعدیل الكود، أنھ

.یتم استبدال المتغیر بقیمتھ

: المتغیرات نوعین

:متغیر عادي •

و ھو المتغیر المذكور في المثل أعاله

:متغیر ثابت •

و ھو عبارة عن متغیر یتم تصریحھ كمتغیر عام على مستوى الصفحة كاملة، و الفرق بینھ و بین المتغیر العادي أن المتغیر

فقط االسم و $إنما المتغیر الثابت یكون بدون $العادي یسبقھ ینطبق علیھ ما ینطبق على المتغیر العادي من حیث طبیعة االسم حیث أنھ ال یمكن أن یكون رقما فقط كما أنھ ال یمكن أن

.( _ )یحتوي على رموز خاصة غیر

ھو المتغیر، و یستخدم ) value( حیث أن ،یتم تعریف المتغیر الثابت بھذا الشكلات الھامة ، كتحدید لنوع عملة مثال على مستوى معظم األحیان في حفظ المتغیر

أي أن ھذه ( Define )صفحة أو برنامج كامل، و فتح ھذا المتغیر مرتبط بالدالة الدالة ھي التي تقوم بفتح المتغیر و تعریفھ على مستوى الصفحة كاملة ، تحتاج الدالة

:لمدخلین و ھما

Page 18: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

اء على المتغیر و استدعائھ بھو ھو الذي یتخذ كاسم یتم الند: أسم المتغیر • .و ھي القیمة التي یتم وضعھا للمتغیر لیتم أستخدمھا بأي شكل من األشكال فیما بعد: قیمة المتغیر •

:تضمین متغیرات أكثر من نوع في صفحة واحده : مثال

: الصورة باألعلى ھي الكود الخاص بالمثال المطلوب و سوف أتناول الكود بالشرح سطرایًا

یقوم بتحویل الصفحة من الیمین إلى الیسار أو العكس و ذلك بواسطة تغییر Htmlھو عبارة عن كود : )١(السطر • Right Toاختصار إلى RTLحیث تجد أن . و العكس LTRإلى RTLمن Htmlالموجودة تحت الوسم Dirقیمھ Left و كذلكLTR اختصار إلىLeft To Right و ،Dir تعني اتجاه أو مسار.

مھم جدًا و ھو كود یقوم بتعریف لغة صفحة الویب باألسفل و ھذا یساعد على التحدید Htmlكود : )٢(في السطر •، نجد Headerاألوتوماتیكي للترمیز حیث أنھ في أغلب األحیان و مع متصفحات معینھ یجب أن یتم تحدید ھذا الـ

. Htmlمعلومات صفحة الـ خاص بو ھو وسم Metaأنھ تحت الوسم

برنامج " و ھو عنوان الصفحة في شریط العنوان و كما نالحظ أن كلمھ Titleو الذي یحتوي الوسم : )٣(السطر • .قد ظھر في المتصفح عند عرض الصفحة" األسعار

و الذي تم شرحھ مسبقًا PHPو ھو رمز بدایة كود الـ : )٤(السطر •

جنیھ "على مستوى الصفحة كلھا و نعطیھ القیمة mtypeتم تعریف متغیرنا األول و في ھذا السطر ی: )٧(السطر • .الثابتة، و ھذا المتغیر من نوع المتغیرات " جنیھ مصري= "mtype أي أن " مصري

".شاشھ"و إعطائھ القیمة product$یتم فتح المتغیر ) : ٩(السطر •

ھل یجوز لي أن أقوم بتضمین لغة ! ، یأتي السؤال Htmlیتم طباعة نص و لكن النص مزود بوسم ) : ١١(السطر •Html في المتغیرات و طباعتھا فيPHP برنامج "نعم ، حیث أنھ في ھذا السطر قمنا بعرض النص : ؟ اإلجابة

أي رأس أو عنوان Headingاختصارا لكلمھ Hو ھذا الوسم ھو وسم العناوین و H1و لكن بین الوسم " األسعار .ھو األصغر حجمًا H6ھو األكبر و H1حیث أن H6إلى H1و یوجد الوسم من الموضوع ،

مقسمة على Echoفي ھذا السطر نجد شيء من التعقید نوعًا ما ، حیث أن القیمة المعطاة للدالة ) : ١٢(السطر •ف تكون سو) ; "Echo "He"."llo( مراحل ، نعم مقسمھ و مضافة على بعضھا فلنفترض مثال أن لیدنا الكود

و سیتم توضیح ھذا الموضوع تقوم بجمع نصین،( . ) أي أن النقطة ) ; "Echo "Hello( نتیجتھ مماثلھ للكودفي السطر الثاني من ، لذا ففي المثال وو بھذا نجد أن المعروض أكثر في موضوع آخر على وجھ الخصوص ،

Page 19: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

" : " مضاف إلیھا " المنتجنوع "ي التنصیص الصفحة المعروضة في المستعرض یكون النص الموجود بین عالمت: المنتجنوع : ( لیكون النص الظاھر في النھایة " شاشھ"و التي تساوي product$باإلضافة إلى قیمة المتغیر

.)شاشة ھذا الوسم یقوم بتكون سطر جدید أسفل <br>فقط و ھو Htmlو في ھذا السطر تم طباعة وسم ) : ١٣(السطر •

.<p>الكتابة مباشرة للكتابة، و یوجد طریقة أخرى و لكن ھذا الوسم یقوم بأخذ سطرین و ھو

و فیھ یتم عرض النص و بعد ذلك یتم إضافة ) ١٢(ھذا السطر البرمجي مشابھ نوعًا ما للسطر رقم ) : ١٤(السطر • . mtypeقیمة المتغیر الثابت

، و بھذا أكون قد انتھیت من شرح المثال، مع العلم أن التحدید PHPیتم إغالق التعامل مع كود ) : ١٥(السطر •باللون األحمر الشفاف في الصورة باألسفل ھو تأثیر على الصورة لیس نتیجة الكود البرمجي، فقط للتوضیح لیس

.مع إضافة أي درجات صعوبة لتقوم بتقییم نفسكبقى علیك أن تقوم بتنفیذ ھذا المثال بطریقتك الخاصة .. إال ، اآلن

Page 20: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

املتغرياتأنواع بعد أن قمت باإلطالع على المتغیر و كیفیة العرض و التعامل المبسط للنوعین ، یكون الوقت كان حان لمعرفة تقسیمات أو

:أنواع المتغیرات العادیة و ھي

) :Integers ( المتغیرات الرقمیة أو العددیة •

تم Valueفي سطر برمجي فإن مثال ( ;value=10$ ) عریفھا كمتغیر رقمي بمجرد كتابتھا، أي أنك لو قمت بكتابھت و یتم، و بمجرد إدخال الرقم إلى المتغیر فإن لدیك أمكانیة كاملة للتحكم بالمتغیر فیمكنك تعرفیھ على أنھ متغیر رقمي أو عددي

تم فتح ) 3,4,5( و في السطور : التالي لمثال، في اآخره كما في الصورةالطرح و الجمیع و القسمة و الضرب إلى تم تنفیذ العملیات الحسابیة المبسطة األربع ، ١٤حتى ٧و ابتدئا من السطر ( y , $x , $val$ )المتغیرات الرقمیة الثالثة

بعد أن كانت قیمتھ val$ھا في المتغیر تم جمع المتغیرین و القیمة التي تم الحصول علیھا یتم تحزین) ٧( ففي السطر .تساوي صفر

، و تم val$و بعدھا في السطر الثامن یتم طباعة محتوى المتغیر y$و x$یساوي مجموع المتغیرین val$أي أن المتغیر شكل تعلیقات بجوار كل عملیة لتسھیل الفھم ، و ھكذا بالنسبة لكل عملیة من العملیات الحسابیة تحدید قیمة كل عملیة في

:المبسطة و المبینة في الجدول التالي

مثال الرمز العملیة الحسابیة ;Echo 2+2 + جمع

;Echo 4-2 - طرح

;Echo 4/2 / قسمھ

;Echo 2*2 * ضرب

;++val$ ++ على المتغیر ١إضافة رقم

;--val$ -- من المتغیر١طرح رقم

Page 21: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

<?php $first = "أمحد"; $second = "حممد"; echo $first.$second; ?>

<?php $blnt = true; $blnf = false; ?>

) : String( المتغیرات النصیة •

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

، المتغیر var$و متغیر أخیر second$و متغیر آخر first$تغیر تعني الجمع أبدا ، و للتوضیح ، نفترض أنھ لدیك مإذا أردنا أن نقوم بإضافة المتغیر األول على الثاني فاحزر كیف " . محمد"و الثاني لدیھ القیمة " أحمد"األول لدیھ القیمة

.أعتقد أني قمت بشرح ذلك مسبقا. سیكون الكود

بھ كما یلي فأنك تتابع بشكل جید و إن كان الكود الذي قمت بالتفكیر . إذًا إال فینبغي علیك التركیز أكثر و التطبیق على كل ما تعرفھ من جدید عن

.عد على الفھم بنسبھ كبیره جدًاھذه اللغة فالتطبیق یسا

إلضافة متغیر نصي على آخر، و كذلك " . " لذا فإنھ تم استخدام الرمز ن یكون الناتج ھو مجموع یمكن استخدامھ للمتغیرات الرقمیة و لكن ل

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

) : Boolean( المتغیر المنطقي •

و یعني ھذا صواب Falseأو Trueو ھذا المتغیر تكون لھ قیمان فقط أما كیف أقوم بتصریح المتغیر على أنھ منطقي ! أو خطأ عامیًا ، یأتي السؤال

.؟ Booleanأو

كما في یتم ھذا بمجرد إعطائھ القیمة و لكن لیس بین عالمتي تنصیص Trueالمتغیرات النصیة أو رقم كما في المتغیرات العددیة و لكن فقط إما

یجب أعطائھ قیمھ من االثنین bln$أي أنك لو أردت فتح المتغیر ، Falseأو .كما یلي

Page 22: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

دوال املتغريات : ( Intval )الدالة •

بتحویل المتغیر من جمیع أحوالھ إلى متغیر صحیح، الدالة تقوم كان نصیا و یوجد بھ رقم یتم استخراج الرقم عن طریق فإذا

، عند إدخال ھذا النص على "504Man"الدالة فلو لدیك مثال و إذا كان رقمیا . رقمًا 504الدالة المذكورة فإن الناتج یكون

.عشریا یتم تحولھ إلى رقمي صحیح

:مثال

في ھذا المثال و بدون الحاجة إلى تحلیل البرمجة بشكل قد تم تنفیذ الدالة على مجموعة من األرقام موزعة في كل ) 3,5,7,9,11( ي، فإنك تجد أنھ في كل من السطور سطر

كما <br>تم طباعة أو إضافة سطر جدید لیفصل بین كل سطر و اآلخر و ھو الوسم ( 4,6,8,10 )سطر، و في السطور .Intvalأن النتائج مساویة للنتائج التي كتبت بجوار كل نداء للدالة ذكرت مسبقًا ، حاول أن تقوم بتنفیذ ھذا التطبیق، و ستجد

) : Floatval( الدالة •

رقام على أو استخراج األتقوم ھذه الدالة بالحصول .العشریة من المتغیرات

:مثال

على الدالة المذكورة فأنك تحصل على عند إدخال ھذه القیمة" 4.5Mohamed"قیمتھ تساوي مثال متغیرًا نصیًا لو لدیكیتم مسح كافة النصوص و استخراج األرقام العشریة من النصوص، Floatvalعند تنفیذ الدالة : في ھذا المثال ، 4.5الرقم

Manنجد أنھ قام بحذف –موجود بالتعلیق - 500.4حیث أنھ عند تنفیذ الكود الموجود بالصورة یتم عرض الرقم .عد الرقمالموجودة ب

) : Gettype (الدالة •

أو Stringتقوم ھذه الدالة بإخراج قیمھ ھي عبارة عن نوع المتغیر إما نصي واسطة تمریر المتغیر ب، و ذلك Booleanأو منطقي Integerرقمي عددي

.على الدالة

: مثال

Page 23: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

، أي أن الدالة Integerو طباعتھ ، و یكون الناتج intvar$في ھذا المثال بالصورة یتم الحصول على نوع المتغیر .أي رقمي Integerأخرجت نوع المتغیر و ھو

) : Settype( الدالة •

ھذه الدالة تقوم بتغییر نوع المتغیر الممر إلیھا إلى أي نوع آخر ، ترید أن تقوم بتحویلھ من Bol$فلنفترض أن لدیك متغیر منطقي

! .نوعھ الحالي إلى متغیر رقمي ، كیف ذلك

:مثال

في ھذا المثال یتم تغییر نوع واحد فقط من المتغیرات وھو المتغیر المنطقي من نوعھ إلى متغیر نصي و رقمي و علیك تم تعریف المتغیر ٢ج ، اآلن في السطر بتجربة تغییر المتغیر الرقمي و النصي إلى النوعین اآلخرین و التجاوب مع النتائ

$Bol على أنتھ متغیر منطقي یساويTrue تم تحویلھ إلى ٤و في السطر تم تحویلھ إلى متغیر رقمي ٣، و في السطر Bol$أیضا و لكن نصي ، الحظ أن قیمھ ١و في الحالة الثانیة یكون الناتج ١متغیر نصي ، في الحالة األولى یكون الناتج

أیضًا ، فھو كرقم افتراضي عند تحویل أي ١لكان الناتج عند تحویلھ إلى متغیر رقمي تساوي Falseكانت تساوي لو .متغیر من عادي إلى رقمي و كذلك بالنسبة للمتغیر النصي

) : Unset( الدالة •

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

.الصفحة یبطئ من عملھا و لكن بقدر غیر ملحوظ

:مثال

، بعد ذلك یتم طباعھ Unset، یتم تمریر المتغیر على الدالة Valueو إعطائھ القیمة var$في ھذا المثال یتم فتح المتغیر .ء یتم عرضھ ، ھذا ألن المتغیر تم إلغائھال شي! المتغیر ، تالحظ

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

Page 24: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

املصفوفات :مقدمة عن المصفوفات

إلى أكتوبر ، لذا فینبغي أن ١٠ترید عمل كود یقوم بعرض الشھر المیالدي بعد إدخال رقمھ، یعني مثال تحویل إذا كنت یكون لدیك جدول بمعنى جودل وھمي لیس جدوًال مرسوما ، ھذا الجدول یحتوي على عمودین العمد األول الشھر بالرقم و

.العمود الثاني الشھر باالسم

لدیك أسماء الشھور على األقل و بشكل مرتب و ھذا كاف، و عند إذ فإنك بأمس الحاجة إلى على كٍل ، یجب أن یكونسم یتضح أن المصفوفة عبارة عن مصفوفة من المتغیرات التي یتم اإلضافة و التعدید و المصفوفات ، فمن مجرد قراءة اال

.التعامل معھا بشكل سھل جدًا

:المغیرات بشكل أسھل

، المصفوفة عبارة عن متغیر عادي أي ! كر المتغیرات إن شاء اهللا، جید ، اآلن كیف یكون شكل المصفوفة طبعًا ما ذلت تتذمثل المتغیر العادي و أیضًا یتم اختیار أسم للمصفوفة كالمتغیر العادي ، و لكن عند التعامل سواء في فتح $أنھا تبدأ بـ

.المتغیر أو العرض فإن الطریقة تكون مختلفة

و لكن ال یتم إعطاء المتغیر القیمة = و myarray$فعند فتح المتغیر للمرة األولى یتم كتابة المتغیر بالشكل العادي مثال و التي تقوم بفتح Arrayكما في المتغیرات، و لكن یتم مساواتھ بناتج الدالة Falseأو Trueالعادیة سواء رقم أو نص أو

للمتغیر العادي و بذلك یتم تحویلھ إلى مصفوفة، أعتقد أن األمر صعب نسبیًا مع الشرح المتغیر و إعطاء قیمھ المصفوفة .الكتابي اآلن تابع المثال

: المثال

في myarray$في ھذا المثال تم فتح المصفوفة و " عمرو"و " محمد"و تم إعطائھ القیم ٢السطر

تحتوي myarray$أي أن المصفوفة " مصطفى"اء الثالثة، و یكون شكل المصفوفة على ھذه األسم

: الوھمي كما بالجدول

أعلم أنك تتعجب الجدول و لكن ، ھذا شكل المصفوفة الوھمي حیث أنھ في المثال متغیرات في المصفوفة كل منھا یحمل القیمة المعینة و المبینة ٣السابق تم إنشاء

، ھذا العمود ھو ترقیم تلقائي ! indexالعمود ھو، و لكن ما Valueفي العمود ة فبكل إضافة للمتغیرات أو القیم المنشأة ، حیث أنھا تبدأ من الصفر إلى ما ال نھای

. ١یتم زیادة الرقم

Page 25: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

.، نعم تستطیع و ھذا عن طریق المثال التالي Keyأو الـ Indexھل أستطیع أن أضع بنفسي قیم ! یأتي السؤال الثاني

على myarray$بعمل اآلتي ، أوال قمت بتعریف المتغیر الحظ أنني قمتأنھ مصفوفة ، و ھذه المصفوفة فارغة ، و بعد ذلك قمت بفتح أو إیداع

، ھذه األرقام أدخلتھا )٦(و ) ٤(و ) ٢( Keyالصفوف الثالثة ذات المفاتیح كمثال ، حیث یمكنك إدخال الرقم الذي ترید و لكن رقم صحیح ، و طریقة

[Key]الصفوف سھلھ على ما أعتقد ، فقط قم بكتابة المتغیر و بعدھا إیداع ر عادي یتم بالمفتاح الذي ترید ، و كأي متغی Keyمع استبدال الكلمة

) .٦(و) ٤(و) ٢(إعطائھ القیمة، و ھذا ما حدث في الصف

امل تماما مع المتغیرات في ناحیة اآلن لحظت أنك تتعامل بسھولھ مع كل صف في المصفوفة ، حیث أن التعامل معھ كالتعھل أستطیع أن أستخرج منھ القیم ؟ نعم طبعًا و كأي متغیر عادي ، في ! إدخال و عرض البیانات، لذا یأتي سؤال جدید

المثال اآلتي سوف نستخدم الدالة Echo في طباعھ قیمھ كل متغیر في

.صف منفرد

:مثال

في ھذا المثال تم فتح المصفوفة و إدخال البیانات كما أشرت من قبل و

لعرض محتوى صفوف معینھ من Echoتم استخدام الدالة ) ٩(لكن الجدید أنھ في الصف و بداخلھما تم كتابھ ( " ) الحظ تم كتابھ عالمتي التنصیص myarray$المصفوفة و أعتقد أنك تتذكر استخدامھ من قبل في <br>و بین كل متغیر و متغیر الوسم المتغیرات

تقم بعرض المتغیر األول و قیمتھ Echoأمثلة سابقة ، تحلیل السطر البرمجي أن الدالة و بعد یتم االنتقال لسطر جدید و " عمرو"و یتم االنتقال لسطر جدید و یتم كتابة " محمد"

.مصطفى لتظھر ھكذا"أخیرًا كتابھ

).a["man"]$(نص و لكن شرط أن تضعھ بین عالمتي التنصیص ، كھذا Keyیمكنك أن تقوم بجعل الـ : ملحوظة ھامة

Page 26: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

دوال املصفوفاتبعد دراسة المصفوفات أرجو أن تكون ما ذلت متذكرًا المغیرات و دوال المتغیرات فكالھما مھم ، و اآلن لننتقل إلى الدوال

:بالمصفوفات العامة المتعلقة

) : Print_r( الدالة •

أي أطبع المصفوفة ، أظن أن Print Arrayھذه الدالة تحویر للنص أسم سھل مع شخص قد یمتلك القلیل من اللغة االنجلیزیة ، بھذه األمر یكون

.الدالة یتم طباعة المصفوفة على شكل متشعب أو ھرمي

:مثال

في ھذا المثال یتم إضافة القیم إلى المصفوفة بعد فتحھا و من ثم یتم الحظ لعرض المصفوفة كلھا في شكل متشعب، Print_rاستخدام الدالة

) ٩(أعتقد أنك تفھمھ جیدًا و لكن من ) ٧(حتى السطر ) ٢(من السطر فیھ ) ١٠(فھي ما یتعلق بعرض المصفوفة على شكل ھرمي ، السطر ) ١١(حتى

و التي تقوم بعرض المصفوفة على شكل ھرمي و لكن یكون الفاصل Print_rدالة الالعادیة و لكن Htmlو ھذا ال یظھر في صفحات الـ n\بین كل سطر و اآلخر ھو

لذلك فإن التاج أو الوسم Htmlو ھي األداة الموجودة في Textareaیظھر فقط في )<PRE> ( یقوم بتحویل الـ\n إلى<br> و بھذا المنظر الموجود في الصورة ، بدلت

.الحظ أن الدالة تقوم بطباعة المفتاح بجوار القیمة

) : array_merge(الدالة •

و ھذا یعني دمج Array Mergeاالسم المستمد منھ أسم الدالة .المصفوفة ، أي أن ھذه الدالة تقوم بدمج مصفوفتین في واحده

: المثال

و نرید دمجھما في (ar2$)و ) ar1$(لدینا المصفوفتین بناتج الدالة ar$)(، نقوم بمساواة المتغیر ) ar$(المصفوفة

array_merge كما بالمثال لتصبح)$ar ( مصفوفة تجمع، و تالحظ عرض عناصر المصفوفتین Print_r، و یتم طبعتھا للتأكید باستخدام )ar2$(و ) ar1$(صفوف المصفوفتین

.معًا

Page 27: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

) : array_reverse(الدالة •

.تقوم ھذه الدالة بعكس ترتیب عناصر المصفوفة

:مثال

في المثال یتم تعریف المصفوفة و إضافة العناصر بھا یتم عكس array_reverseو بعد ذلك بواسطة الدالة

ترتیب العناصر التي تم إضافتھا في المصفوفة، سوف .تالحظ ذلك بعد تجربة تنفیذ الكود كما سبق من األمثلة

) : array_pop(الدالة •

تقوم ھذه الدالة بحذف آخر عنصر بالمصفوفة

:المثال

في المثال یتم تعریف المصفوفة و إضافة العناصر بھا و یتم حذف آخر عنصر array_phpالدالة بواسطةبعد ذلك

في المصفوفة، تالحظ طباعة كل عناصر المصفوفة عدا ) .C(العنصر األخیر و قیمتھ

) : array_shift( الدالة •

تقوم الدالة بعكس الدالة السابقة ، حیث أنھا تقوم بحذف أول .عنصر بالمصفوفة

:المثال

في المثال یتم تعریف المصفوفة و إضافة العناصر بھا و بعد یتم حذف أول عنصر في array_shiftذلك بواسطة الدالة

المصفوفة، تالحظ طباعة كل عناصر المصفوفة عدا العنصر ) .A(األول و قیمتھ

Page 28: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

IF ( حالة الشرط ) { تحقق الشرط}

IF ( حالة الشرط ) { تحقق الشرط} Else { عدم تحقق الشرط}

العبارات الشرطيةPHP كلفة برمجھ یتوفر بھا كأي برمجة أخرى أوامر الشرط و التي تساعد على التعامل مع المستخدم ، و المقصود

:و ھي PHP، یوجد عدد من أوامر الشطر في phpبالمستخدم ھنا ھو الشخص الذي یتعامل مع صفحة الـ

) : IF ( العبارة الشرطیة •

، إذا ماذا أستفید بالترجمة ، علك تتذكر أن ) إذا(بالعربیة و ھي IFأكید أنك تعلم معنى IF تنفیذ فعل الشرط(و ) التحقق من الشرط(في اللغة االنجلیزیة تتكون من جزأین ( ،

. PHPفي IFھكذا تكون ) لن أذھب فالن أمطرت السماء لو (فنقول مثال

قد تكاثرت فوق راسك ، و لكن ال تكترث ، اآلن لندع أعتقد اآلن بأن عالمات التعجب :األمثلة تخرج لنا ما بجعبتھا، إلیك بالمثال التالي

: مثال

مرتبطة بالمتغیرات ، بكل بساطة دعني IFفي ھذا المثال أستخدم الدالة ، و بعد ذلك تم فتح IFأترجم لك ھذا السطر البرمجي و ال تتعجل ، بدأنا بـ

val$القوسین لیتم تحدید حالة الشرط ، في حالة الشرط الحظ وجود المتغیر val$لو أن المتغیر ( في جملھ برمجیة معناھا ، – ١٠التي تساوي قیمتھ -

، و في جواب الشرط أو تنفیذ الشرط یتم طباعة كلمة یساوي ) ١٠یساوي .Echoباستخدام الدالة

أنك لو : (لو قدمت كانت ھذه الجملة مقدمھ لك بھذا الشكل بكل بساطھ ، فإذا كانت سعید حقًا و ھذا ما أتمناه ، فماذا ستفعل ، ) أحمد اهللا سعیدسوف تقول الحمد هللا ، ھكذا تعمل الدالة فوق ، إذا كانت قیمھ المتغیر طبعًا

$val تساوي"أعرض كلمة ١٠تساوي."

للتحقق من مساواة قیمة المتغیر للرقم ( == ) المقارنة الحظ استخدام أداة .، و ھناك أدوات أخرى للمقارنة و ھي كما بالجدول ١٠

بشتى الطرق و val$ھذا یعني أنك تستطیع أن تتحقق من محتوى المتغیر ! ھي أمامك بالجدول ، اآلن أمامك الجدول و المثال باألعلى ، ماذا تنتظر

.لكل أداة من ھذه األدوات اآلن قم بتجربة مثال

) : IF Else( العبارة الشرطیة •

و قد یكون ھو اآلخر جزء من ھذا األمر ، اآلن و IFھو في جزء منھ كأمر الشرط إذا كنت تشعر بالجوع كل و : ( یة لنفترض أنك تشعر بالجوع ، لو وجھت لك الجملة التال

، فماذا ستفعل ، طبعًا سوف تقوم للكل ، ھذا على سبیل المثال ، إذا ھذا ) إال أبقى جالسًا :اآلن إلى المثال IFاألمر ھو متابعة لألمر

Page 29: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

Switch ( قیمة ) { case قیمة ; ; تنفیذ أمر break; case قیمة ; ; تنفیذ أمر break; }

:المثال

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

Else عدم تحقق {( ،و بعدھا و إال ةو التي تعني باللغة العربیو في ١٠تساوي val$، كما بالصورة، اآلن قیمة ) }الشرط

، طبعًا ٢٠أكبر من val$حالة الشرط أسألھ إذا ما كان المتغیر ھو ال یساوي إذا فلن یقوم بتنفیذ فعل الشرط بل أنھ سوف یتوجھ

.مباشره لعدم عدم تحقق الشرط

أكبر من val$إذا كانت قیمة : و الترجمة المبسطة للسطور ھي ، إذا كتابھ "أصغر"فقم بطباعة إالو "أكبر"فقم بطباعة إذا 20

عرضھا ، ما سوف یتم السطور في المحرر و حفظ الصفحة و، و ما یتم تنفیضھ ھو ٢٠لیست أكبر من val$، أي أن قیمة٢٠لیس اكبر من ١٠ھذا ألن " اصغر"عرضھ ، طبعًا كلمة

.عدم تحقق الشرط و تم اإلشارة إلیھا بالسھم األحمر

) : Switch( یةالشرط العبارة •

الحظ تخطیط أو شرح العبارة الشرطیة ، یتم كتابة أسم العبارة أوال ، بعد یتم طباعة و لكن ھنا یتم وضع قیمة ، أي أنك تستطیع وضع قیمة عددیة نصیة IFالقوسین كما في

إلغالق العبارة ، و بداخلھما یتم كتابة ما تراه {}أو منطقیة ، بعد ذلك یتم طباعة القوسین بـ الرمز و بعد ذلك قیمة معینھ و إغالق السطر ،أي في حالة Caseفي التخطیط ، أوال

أو الخروج Breakالحالیة عن العمل باستخدام Caseیقاف ، ثم تنفیذ أمر معین ، و إ );( .منھا ، و ھكذا مع كل حالة

و فیھا كان IF Elseو العبارة الشرطیة IFتعلمت في الموضوع السابق العبارة الشرطیة ، )حالة عدم تحقق الشرط(و ) حالة تحقق الشرط(و ) حالة الشرط ( ھناك

و ترید أن تقوم بإخراج قیمتھ حرفیا و val$و لكن إذا كان لدیك متغیر یسمى أثنین ) ٢(یسمى حرفیا واحد و العدد ) ١(لیس عددیا ، أي أن العدد

لتنفیذ ذلك فسوف یكون لدیك IFو ھكذا ، عند استخدامك العبارة الشرطیة المزید من السطور البرمجیة المعقدة التي ال داعي منھا مع الدالة

Switch.

: مثال

الحظ ، IFنجرب معًا تنفیذ ھذا المثال باستخدام العبارة الشرطیة اآلن فل، اآلن الحظ ) ٢(التي تساوي قیمتھ value$معنا المتغیر . في الصورة

أجعل ١یساوي value$العبارات الشرطیة الثالث ، إذا كان المتغیر یساوي value$، ثم إذا كان المتغیر " واحد"یساوي القیمة var$المتغیر

، ثم إذا كان المتغیر " أثنین"یساوي القیمة var$أجعل المتغیر ٢$value أجعل المتغیر ٣یساوي$var و في " ثالثة"یساوي القیمة ،

، یتم تنفذ عبارة الشرط الموجودة بین العبارتین األولى و األخیرة، حیث var$قم بطباعة المتغیر ) ١٧(النھایة و في السطر

Page 30: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

FOR ( بدایة الجلسة الشرط ; } (حالة تحقق الشرط ; تنفیذ أمر أو مجموعة أوامر}

و بالتالي طباعتھ في السطر " أثنین"القیمة var$ر یتم إعطاء المتغیفعًال، و اآلن لنجرب المثال مع ٢تساوي value$، حیث أن ) ١٧(

.Switchالعبارة الشرطیة

:مثال

مامًا، و لكن ھذه كما في المثال ت ٢یساوي value$المتغیر الحظ .لتتحقق من المتغیر Switchالمرة نستخدم

فلو أنھا value$تحقق من قیمة : بسیطة جدًا ألیس كذلك ، و ترجمتھا و أغلق الحالة ، ثم إلى الحالة التالیة إذا ١یساوي var$أجعل المتغیر ١

و أغلق الحالة و أخیرًا ، إذا ٢یساوي var$أجعل المتغیر ٢أنھ یساوي النھایةو في . و أغلق الحالة ٣یساوي var$أجعل المتغیر ٣أنھ یساوي

عند تنفیذ السطور بالصورة ، ماذا سیعرض ؟ var$طباعة محتوى ".اثنان"بالضبط الكلمة

) : For( عبارة التكرار •

في كثیر من األحیان و في أي لغة برمجھ و خصوصًا برمجة الویب تحتاج إلى عمل مجموعة من األحداث ذات األعداد الكبیرة ، قد

IF، طبعًا لن تقوم باستخدام العبارة الشرطیة ١٠٠٠و ١٠٠تتعدى و لكن ھنا نكون في أمس الحاجة لتدخل العبارة Switchأو حتى

For ، رة كما بالشكل، سیكون األمر أسھل إذا كان ھناك مثال، و اآلن مع المثال و تخطیط تلك العبا.

:مثال

تم فتح المتغیر و بدأ العبارة في ھذا المثال ، الحظ :، و كما بمخطط العبارة ، یتم اآلتي FORالتكراریة

١و إعطائھ القیمة val$فتح المتغیر -١ )val<5$( ٥لو أقل من val$التحقق من قیمة -٢

نفذ حالة تحقق الشرطالتي تم (++) ، و ھذا باستخدام ٢، أي أن قیمتھ حالیا تساوي ٢إلى ١إضافي لتصبح قیمتھ من ١عدد val$زیادة -٣

.أي إضافة واحد صحیح على المتغیر ) val = $val+1$ : (شرحھا مسبقًا و التي في عملھا تشبھ للتوضیح val$و في المثال تم طباعة قیمة FORیتم تنفیذ األوامر تحت العبارة -٤

، أي أنھ تم تنفیذ السطر ٤و٣و٢و١، فكما تشاھد في الصورة أنھ تم طباعة .أصغر من الخمسة val$في كل مره تكون فیھا قیمھ ) ٤(البرمجي رقم

، و الخمسة لیست أكبر من االثنین ، لذا فسوف یتم تنفیذ ٢و ٢= val$طبعًا -٥ ١قة مره أخرى مع تخطي الخطوة رقم الخطوات الساب

، و أكید ٥تساوي val$یتم عمل تكرار حتى تصل إلى النقطة التي تكون فیھا -٦ . FOR، لذا فلن یتحقق الشرط و بذلك یقف عمل ٥= ٥، و لكن ٥لیست أصغر من ٥أن الـ

Page 31: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

While ( الشرط ) { تنفیذ أمر أو مجموعة أوامر}

و االنتقال إلى السطور FORارة یتوقف على تحقق الشرط و إال فإنھ یتم الخروج من العب FORأي أن عمل العبارة .البرمجیة األخرى

) : While( عبارة التكرار •

حیث أنھا مرتبطة PHPھي من أسھل عبارات و طرق التكرار في ، ) بینما(باللغة العربیة تعني Whileبالشرط فقط ، و ترى أن كلمھ

.، و ھذا ما یوضحھ التخطیط}قم بتنفیذ كذا{) یحدث كذا(أي بینما

:المثال

:في ھذا المثال البسیط جدًا و المماثل للمثال السابق في ھدفھ تم اآلتي

).صفرًا( ٠قیمتھ تساوي val$تم فتح المتغیر -١ Whileنفذ األوامر تحت ٥أقل من العدد val$طالما -٢یتم تنفیذ األوامر و من ضمن تلك األوامر یتم زیادة المتغیر -٣

$val حیث أن ١عدد أضافي أي أن المتغیر تصبح قیمتھ ،١=١+٠.

val$و بعدھا طباعة قیمة -٤ ٢مره أخرى یتم العودة إلى الخطوة رقم -٥إذا ، ١ال طبعًا فقیمتھ المسبقة ھي : ؟ الجواب ٥أقل من val$و یسأل ؟ ھل قیمة -٦

و عندھا لن یتحقق ٥إلى العدد val$یتم تنفیذ األوامر و ھكذا حتى یصل المتغیر .لشرط و یقف عمل الدالا

یأتي بعد التحقق من الشرط ، و ھذا ما حدث Whileتنفیذ األوامر تحت : و لكن تذكر أن و عرضھ في تنفیذ األوامر ١تم زیادة ٤تساوي val$في المثال حیث أنھ عندما كانت قیمھ

.أرجو أن تكون تلك النقطة واضحة FORلیس كما ھو الحال مع ،) ٥(

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

و أنتھ أھبة االستعداد للدخول إلى الموضوع التالي ، و لكن أحضر و PHPأتوقع اآلن أنك قد خطوت عدة خطوات في لغة ، جید اآلن قم بكتابة كل من ما یأتي سطرًا تلو اآلخر، و بعد كتابة كل سطر ماذا تنتظر أحضرھما فورًا!! رقة و قلمًا ،

أغمض عینیك و تذكر الموضوع الذي یشیر إلیھ السطر ، فإذا كنت تتذكره جیدًا علم بالقلم علیھ و إال فعد إلیھ مرة أخرى :لتأكید فھمھ

.إغالق و تشغیل و إعادة تشغیل الخادم الوھمي -١ .عھا و الدوال العاملة المستخدمة مع كل نوعالمتغیرات و أنوا -٢ .المصفوفات و الدال المستخدمة في التعامل معھا -٣ .عبارات الشرط -٤ .عبارات التكرار -٥

.و أتمنى من اهللا أن تكون ھذه الموضوعات راسخة في ذھنك و إن كان كذلك ، إذا لننتقل إلى المرحلة التالیة

Page 32: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

الوقت و التاريخالوقت و التاریخ ، من األمور الھامة جدًا فقد ال تخلو برمجة من احتیاجھا لدوال الوقت و التاریخ ، فتسجیل عنوان موضوع

.عرض تاریخ الیوم بآخر الصفحة كل ھذا مرتبط بدوال الوقت و التاریخ بمنتدى أو انتھاء مدة إعالن معین أو

: Time Stampما ھو •

تعلم جیدًا أن جاھز الكمبیوتر الخاص بك لھ توقیت ، أي أن اللوحة األم خاصتك لدیھا توقیت ھذا التوقیت یعمل باستمرار و ساعة الحائط كذلك لھا توقیتھا و أیضًا خوادم الویب كذلك لدیھا التوقیت الخاص بھا ، و ھذا ما یتم الحصول علیھ باستخدام

فما معني ھذا ؟ Time Stampتعتمد على ، و معظم ھذه الدوال PHPدوال

، فلو أنك Unixدومًا في خوادم و المستخدمة PHPھو عبارة عن التوقیت المعتمد من قبل Time Stamp: الجواب ، حتى اآلن ٠٠:٠٠:٠٠الساعة ١/١/١٩٧٠اآلن ، فسوف تحصل على عدد الثواني من تاریخ Time Stampاستخرجت

.ًا نوعًا ما لذا فسوف یكون رقما كبیر

: مثال

قم بفتح المحرر لدیك و أكتب السطور اآلتیة الموجودة بالمثال على ما ستحصل ؟ Timeھذا كما وضحت مسبقًا ) ١٢٢٢٣٥٠٢٦٩(، الجواب رقم كبیر مثل ھذا

Stamp . أي أن الدالةTime تقوم بإخراجTime Stamp الوقت الحالي.

:عرض التاریخ و الوقت اآلن •

نتعرف اآلن على الدالة Time Stampو التي تقوم بإخراج وقت الخادم في صورة Timeاآلن و بعد إطالعك على الدالة Date و التي تقوم بإخراج التاریخ في صورتھ العادیة الغیر مشفره ، ھذه الدالة في أبسط صورة تحتاج إلى قیمة ، ھذه

أوضح لك كل قیم صیاغة في الصفحة التالیة ي تریده ، و في الجدول القیمة تحتوي على صیاغة التاریخ أو الوقت الذ .الوقت و التاریخ التي تحتاج إلیھا

:مثال

و التي تقوم بإخراج الوقت الحالي Dateفي ھذا المثال یتم استخدام الدالة حسب الصیغة المطلوبة و ھنا الصیغة التاریخ باألیام و بدون أصفار لتكون

، و بھذا تقوم الدالة (j/n/Y) ، الحظ الصیغة المدخلة للدالة ھي ) 1/9/1986( ھكذا تاریخ لیكون الناتج كما بالصورة ، قم بتجربة الرموز باستبدال كل رمز بقیمتھ من ال

.الموجودة بالجدول

:إلى تاریخ عادي Time Stampالتحویل من •

:إلى الصیغة العادیة و ذلك بطریقتین Time Stampتحویل التاریخ من الصیغة یمكن

) : Date( الدالة : أوال

Page 33: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

<?php Mktime( ثانیة ,دقیقة, ساعة, , شھر , یوم ;( سنة?>

اآلن یمكنك عرض التاریخ أو الوقت أو أي بیانات متعلقة ؟ ، لم Time Stampبالتاریخ أو الوقت ، و لكن ماذا عن

ھل یمكن ! أھملھا و لكن ھذا دورھا ، و یأتي السؤال الثاني یة یمكن فھمھا ، غلى صیغة عاد Time Stampتحویل الـ

.التي استخدمت مسبقًا في عرض التاریخ و لكن ھذه المرة بطریقة مختلفة Dateنعم و باستخدام الدالة

:مثال

إلى Time Stampلتقوم بتحویل التاریخ من Dateفي ھذا المثل یتم استخدام الدالة الصیغة العادیة ، و أیضًا یتم عرض التاریخ أو الوقت حسب الصیغة الممررة إلى

.الدالة كما یلي و یكون الناتج كما بالصورة

إلى الصورة العادیة و Time Stampالحظ أنھا قامت بتحویل التاریخ من صورتھ .Dateحسب الصیغة الممررة إلى الدالة

) : Getdate (الدالة : ثانیًا

حویل التاریخ و الوقت من باستخدام ھذه الدالة یتم تإلى الصیغة العادیة ، و تكون Time Stampالصیغة

مخرجات ھذه الدالة على شكل مصفوفة تحتوي على الثانیة و الدقیقة و الساعة ( عناصر التاریخ و الوقت أي

، فلنجرب معًا الدالة ) و الیوم و الشھر و السنة Getdate.

:مثال

ى الصیغة العادیة من غل) ١١٢٢٣٥٠٢٦٩(في ھذا المثال یتم تحویل الرقم و یتم وضع مخرجات الدالة في المتغیر Getdateالتاریخ باستخدام الدالة

$timearray لیتحول إلى مصفوفة تحتوي بیانات التاریخ و الوقت المستمد، و ھذا لطباعة المصفوفة Print_rمن الرقم، و في النھایة یتم استخدام الدالة

یعني أنھ یمكنك استخراج الیوم أو السنة أو أي عنصر من المصفوفة كما تم .شرح ذلك مسبقًا

: Time Stampالتحویل من تاریخ عادي إلى •

Timeو اآلن ھل یمكن التحویل من التوقیت أو التاریخ العادي إلى Stamp ؟ نعم یمكن ذلك عن طریق الدالةMktime و ھذه الدالة

السنة و الشھر و الیوم و الساعة و ( تطلب عدد من المدخالت و ھي ) .الدقیقة و الثانیة

Page 34: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

الرمز الوصف مثال على المخرج

am , pm الوقت صباحا أو مساءSmall a

AM , PM الوقت صباحا أو مساءCapital A

d رقم الیوم في الشھر يبدأ بصفر ٣١إلى ٠١من

Mon , Sun أسم الیوم بشكل مختصر D

August اسم الشھر بدون اختصار F

g ساعة ال يبدأ بصفر ١٢رقم الساعة اآلن بصیغة 1-12

G ساعة ال يبدأ بصفر ٢٤ رقم الساعة اآلن بصیغة 0-23

h ساعة يبدأ بصفر ١٢رقم الساعة اآلن بصیغة 01-12

H ساعة يبدأ بصفر ٢٤رقم الساعة اآلن بصیغة 00-23

i عدد الدقائق في الساعة 00-59

مساء ٢و صباح ١ I ١أو٠تحديد النھار و المساء على شكل رقمین

j رقم الیوم في الشھر و ال يبدأ بصفر 1-31

Friday اسم الیوم كامًال بدون اختصار l

غیر كبیسة ٢و كبیسة ١ L حالة السنة كبیسة أو ال

m و يبدأ بصفررقم الشھر في السنة 01-12

Jan أسم الشھر في السنة مختصر M

n الشھر في السنة على شكل رقم ال يبدأ بصفر 1-12

s الثواني في الدقیقة على شكل رقمین 00-59

TH , ST , ND اسم الیوم مختصر S

t عدد األيام في الشھر 28-31

1222352049 Time Stamp U

w الیوم من األسبوع على شكل رقم 0-7

y السنة على شكل رقم مكون من رقمین 88,89,90

Y السنة على شكل رقم مكون من أربع أرقام 2007,2008

z الیوم في السنة على شكل أرقام 0-365

Page 35: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

و استقبال البياناتإرسال

:أنواع طرق إرسال البیانات •

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

في صفحة أتصل بنا ، تالحظ أنك تكتب البیانات و بعد كتابتھا : إرسال بیانات من صفحة إلى أخرى ، و أكبر مثال لذلك تنقر إرسال ، فیتم تحمیل صفحة أخرى ، في ھذا الوقت یتم إرسال البیانات التي قمت بكتابتھا من الصفحة األولى إلى

فبعد الضغط على إرسال سیتم نقل كل ھذه ) تف و عنوان الرسالة و الرسالة البرید و الھا( األخرى ، فإذا كتبت مثال : الحظ ھذه الصورةلصفحة األخرى لیتم التعامل معھا ، المعلومات إلى ا

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

Page 36: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

، و ھذا ما عنیتھ بنقل dosend.phpو بعد اإلرسال كانت form.htmفي الصورة األولى كان العنوان أسم الصفحة لیتم التعامل معھا dosend.phpغلى الصفحة form.htmالبیانات ، حیث أن البیانات التي كتبتھا تم نقلھا من الصفحة

بأي طریقة كانت ، و نالحظ أنك لم ترى أي من تلك البیانات ، ھذا ألن ھذا النوع من إرسال البیانات یقوم بإرسالھا بشكي ، اآلن فلتالحظ معي ھذه POSTغیر مرئي ، أي ال یستطیع المستخدم رؤیة البیانات ، و ھذا النوع من اإلرسال یسمى

:الصورة

ل أسم المستخدم من صفحة إلى أخرى ، الحظ صفحة استقبال البیانات و لنموذج مبسط كمثال فقط ، یقوم بإرساھذه صورة .الحظ األسھم و النصوص التي تم تحدیدھا جیدًا

Page 37: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

و في ھذه الصورة تالحظ أن عنوان الصفحة غریب نوعًا ما ، فلیس أسم الصفحة فقط كما في طریقة اإلرسال األولى و لكن إلى form.htmا بعض األسماء و الرموز ، ھذه األسماء و الرموز عبارة عن البیانات التي تم نقلھا من الصفحة متضمن

، و ھذا النوع بعكس النوع األول یتم نقل البیانات فیھ بشكل مرئي ، أي أن dosend.phpالتالیة و الموجودة بالصورة .GETع من اإلرسال یسمى دم یستطیع رؤیة البیانات المرسلة، ھذا النوالمستخ

اآلن و بعد أن اطلعت على المثالین السابقین ، ماذا استنتجت ؟ ، نعم صحیح ، أن ھناك نوعین من طرق نقل البیانات لیتم :نقل البیانات من صفحة إلى أخرى

) : POST( الطریقة •

، تستخدم في معظم نماذج اإلرسال التي و ھي طریقة تستخدم لنقل البیانات من صفحة إلى أخرى بشكل مخفي عن المستخدمتحتوي على بیانات ال یجب على المستخدم رؤیتھا ، كنماذج الشراء بالبطاقات االئتمانیة و نماذج التسجیل في المواقع و

.نماذج إرسال البیانات و كذلك النماذج التي تحتوى على كم كبیر من المعلومات

) : GET( الطریقة •

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

، الحظ التلوین و تمییز العنوان ) dosend.php?fname=mohey&lname=elbaz(باألعلى ، فكان عنوان الصفحة ، ھذه العالمة عالمة االستفھام )؟ ( جید ، فلننتقل إلى الرمز التالي ، ، dosend.phpجیدًا ، كالمعتاد أسم الصفحة ھو

، و ھذا )fname=mohey&lname=elbaz(، ) ؟ ( ، الحظ ما بعد GETتھیئ الصفحة الستقبال البیانات بالطریقة ) fname(و ھذا یعني أن المتغیر ) fname=mohey( بالنسبة لـعبارة عن البیانات المرسلة و لكن بطریقة شبھ مركبھ ،

ھذا ف )lname=elbaz( أما بالنسبة إلى ،فھو لیتم إضافة متغیر آخر للصفحة) &( ما الرمز أ ،) mohey(یساوي القیمة . )elbaz(یساوي )lname(یعني أن المتغیر

Page 38: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

، ماذا لو أردت أن تقوم بإضافة متغیر آخر على المتغیرین الموجودین في الرابط باألعلى ؟ ، نعم صحیح : یأتي ھنا السؤال .بعد ذلك و قیمة المتغیر )= (الرمز فاسم المتغیر ثم )& ( ، جید ، أجل سوف یتم إضافة الرمز

؟ ، أجل ، جواب ) & ( لو أنك ترید أن ترسل متغیر واحد لصفحة ما ، فھل سوف یتم استخدام الرمز : یأتي السؤال الثاني .صحیح ، لن یتم استخدامھا طبعًا حیث أنھ لیدك متغیر واحد فقط فما الحاجة غلیھ إذا

:ما ھو النموذج •

مكونھ من Htmlالتي تقوم بإرسال البیانات من صفحة إلى صفحة أخرى ، تعلم أن الـ Htmlالنموذج ھو عبارة عن أداة أي نموذج باللغة العربیة ، و اآلن لدینا صفحة فارغة جدیدة Fromیسمى Htmlو وسم النموذج في Tagsأوسمھ أو

Html تالیة قم معي بالخطوات ال: ، الجواب ! ، كیف أقوم بإضافة النموذج بھا ؟ سؤال جید:

Front Pageأفتح البرنامج التحریر الخاص بك و یفضل أن یكون -١ أذھب إلى صفحة كتابة الكود و أكتب ما یلي في الصورة -٢

یحتاج إلى إمداده ببعض البیانات و ھي الملونة باللون Fromو النموذج أو الـ Htmlھذا ھو شكل النموذج في -٣ .في الصورة ، حیث أن كل منھم مھم األخضر

• Name :و ھو أسم النموذج في الصفحة.

• Method : و ھي طریقة إرسال البیاناتGet أوPost.

• Action : الصفحة التي یتم إرسال البیانات إلیھاعنوان و ھي. بھذا یكون قد تم إضافة النموذج و لكن فارغًا ، فلو حفظت الصفحة التي قمت بكتابتھا و عرضھا في المتصفح فلن -٤

.حیث أن النموذج فارغ لیس بھ أي أدواتیتم عرض شيء

:أدوات النموذج •

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

:تلك األدوات كما یلي إدخال النصوص كما في نموذج أتصل بنا أو راسلنا ، أسرد لك

) :text(مربع النص .١

ة عن أداة إدخال النصوص و لكن في ھو عبار، كما في الصورة سطر واحد فقط و بشكل محدود :ھي Tag، البیانات التي یحتاجھا ھذا الـ

- Name : أسم المربع و ھذا مھم جدًا .و أرجو أن تتذكره جیدًا

- Type : و ھو نوع الـInput أي

Page 39: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

كمربع نصتعرفھ - Value : و ھي قیمة المربع النصي االفتراضیة ، أي أن أي قیمة تكتبھا فیھ سیتم عرضھا في مربع النص

، أي فارغ ، و ھذا = "" Valueكنص افتراضي ، الحظ أن مربع النص في الصورة فارغ حیث أن قیمة .أیضًا مھما فحاول أن تتذكره بشده

) :hidden(مربع نص مخفي .٢

عن أداة تساعد في إدخال النصوص و لكن بشكل مخفي ، حیث أنھا ال تظھر للمستخدم و لكن یتم إرسال بیاناتھا ة ھي عبار .كما غیرھا من األدوات

- Name : األداةأسم. - Type : و ھو نوع الـInput أي

تعرفھ كمربع نص مخفي- Value : و ھي قیمة المربع

. تكتبھا فیھ ستصبح كنص افتراضي النصي المخفي االفتراضیة ، أي أن أي قیمة

) :password(مربع كلمة المرور .٣

، و ، و تبقى القیمة كما ھي لكي ال تبدو للمستخدم (*) أداة تساعد في إدخال النصوص و لكن ھنا یتم تحویلھا إلى الرمز ھي ھذه األداة تستخدم معظم األحیان في البیانات المھمة التي ال یجب أن یعلمھا سوى المستخدم ، فو أنك تجلس بجوار صدیقك

و لم تكن ھذه األداة متوفرة ، فسیتم عرض كلمة المرور بریدك االلكتروني،و أردت أن تدخل على الخص بكعلى الجھاز .كما ذكرت(*) ن على شكل تكو بھاالخاص بك بكل بساطھ ، و لكن

- Name : أسم األداة. - Type : و ھو نوع الـInput

لكلمة أي تعرفھ كمربع نص .المرور

- Value : و ھي قیمة مربعاالفتراضیة ، أي كلمة المرور

. أن أي قیمة تكتبھا فیھ ستصبح كنص افتراضي

) :textarea(مساحة إدخال النصوص .٤

تستخدم عادة في إدخال النصوص الكبیرة مثل نص رسالة أو النصوص الكبیرة التي تكتب في عدد من السطور لیس في أداة <textarea>و لھا الوسم الخاص بھا في النماذج و ھو Textboxسطر واحد فقط ، كما في

- Name : أسم األداة. - Rows : السطورو ھي ارتفاع المربع بالصفوف ، أي صفوف الكتابة أو - Cols :و ھي عرض المربع باألعمدة ، أي أعمدة الكلمات

Page 40: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

) :button(الزر .٥

من أھم أدوات النماذج ، فبواسطة الرز یتم تنفیذ األوامر من قبل المستخدم ، فبعد كتابة النموذج أو ملئھ ، یقوم و یعتبر :بالضغط على الرز لیتم اإلرسال ، و الزر لھ ثالث أنواع

o اإلرسال زر )Submit : ( و یكون مجھز إلرسال البیانات من النموذج غلى الصفحة الثانیة مباشرة ، .مثال السطر األول في الصورة

o زر المسح)Reset : (راضي و مسح أي بیانات تم كتابتھا، مثال و یقوم بإعادة النموذج للوضع االفت .السطر الثاني في الصورة

o رز عادي )Normal Button : (وجھ ألیھ أو مكتوب تحتھ ، أي أمر، مثال السطر و یقوم بتنفیذ أمر م .الثالث في الصورة

- Name : أسم األداة. - Type : و ھو نوع الـInput أي تعرفھ على انھ زر من أي

.نوع من الثالث أنواع- Value :و ھي النص الذي یتم كتابتھ على الرز.

:) radio(الواحد مربع االختیار .٦

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

و VColorمرات ، لھا أسم واحد و لنفترض ٣مجموعة اختیارات للون المفضل من ثالث ألوان ، سوف تضیف ھذه األداة :مثال التالي ، كما بال Blackو الثالث تكون قیمتھ Greenو الثاني تكون قیمتھ Redلكن تختلف القیمة فاألول تكون قیمتھ

Page 41: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

- Name :اختبارات بنفس ٣أسم مجموعة االختیارات، الحظ تسمیھ ال .vcolorاالسم

- Type : و ھو نوع الـradio من واحد أي تعرفھ على انھ أداة اختیار .متعدد

- Value :و ھي عبارة عن القیمة الممثلة لالختیار. مجموعة االختیارات ھنا تتكون من ثالث عناصر ، إذا : إضافات -

أردت أن تحدد عنصر مثال لیكون محددًا افتراضیا ، فقم بوضع كلمھ checked أي محدد قبل إغالق الوسم أو الـTAG.

) :checkbox(مربع االختیار المتعدد .٧

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

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

:أدوات كل واحده لھا أسمھا و قیمتھا كما بالصورة ٣الریاضات التي یمارسھا ، تقوم بإدراج

- Name :أسم األداة الواحدة. - Type : و ھو نوع الـcheckbox أي تعرفھ على انھ أداة

.اختیار متعدد- Value :و ھي القیمة التي ترسل عند تحدید األداة. أذا أردت تحدید أداة من radioكما ھو األمر في : إضافات -

ھذه األدوات من ھذا النوع بشكل افتراضي فقم بكتابة الكلمة checked قبل إغالق الوسم أو الـ

Tag الخاص باألداة التي ترید .تحدیدھا

) :select(القائمة المنسدلة .٨

تستخدم لالختیار من متعدد ، إما و ھي أداةاختیار واحد فقط أو عدة اختیارات ، تجدھا كثیرًا لتحدید البلد التي أنت منھا في نماذج

الشراء مثال ، فیستحیل أن تستخدم أكثر من ١٠٠ radio في صفحة واحده ، من حیث

اإلمكان فممكن و لكن مظھر الصفحة لكن یكون

Page 42: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

ھي الحل األمثل لذلك، األداة لھا الوسم الخاص بھا و ذلك أن تحتھا أكثر من وسم كذلك، جیدًا ، و لذلك كانت تلك األداة .الحظ الصورة

: selectالوسم الرئیسي -

ھو أسم األداة : Nameارغة من االختیارات ، و ھو الوسم الذي یقوم بإنشاء األداة و لكن فل افتراضي لتم عرض صفین بشك ٢بالصف ، أي أنك لو أدخلت ھو ارتفاع األداة Size، و

.في األداة عند فتح الصفحة

: optionالوسم الفرعي -

اختیار ، الحظ عدد االختیارات ھي مجموعة من الدول العشوائیة العربیة كل دولھ في أي ھي قیمة االختیار ، و یتم كتابة القیمة المعروضة للمستخدم في :Valueوسم خاص ،

قبل إنھاء بدایة الوسم selectedمنتصف الوسم ، لتحدید عنصر بشكل افتراضي قم بكتابة . "مصر"التحدید كما ھو الحل مع

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

.شاء اهللا ي معتمد على ما سبق إنمفھومة جیدًا فما یل

: PHPالنماذج و •

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

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

ت إلى عناصر في مصفوفة واحده ، حسب نوع یتم تحویل تلك البیانا PHPمن أنواع األدوات و بعد تحویلھا لصفحة الـ و إذا كانت GET_$فإن البیانات الموجودة تتحول إلى المصفوفة GETاإلرسال ، فإذا كانت طریقة نقل البیانات بالطریقة

، و ھاتین المصفوفتین عبارة عن مصفوفتین ثابتین من POST_$فإنھا تتحول إلى المصفوفة POSTطریقة اإلرسال . PHPوعة من المصفوفات الثابتة في ضمن مجم

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

و POSTكان النموذج الموجود فیھ ینقل البیانات بالطریقة و nameدیك نموذج یحتوي على مربع نص أسمھ فمثال لو ل، فإنھ یمكنك الحصول على قیمة مربع النص من ) Submit( قمت بإدخال أسمك مثال في المربع و قمت بعمل إرسال

، و لو أنك قمت بعرض قیمتھا لعرض ) POST["name"]_$( بھذا الشكل POST_$الصفحة السابقة في المصفوفة .االسم الخاص بك الذي كتبتھ في النموذج عند اإلرسال

Page 43: PHP - Cjoint.comMicrosoft مﺎﻈﻧ ﻲﻓ PHP ﻊﻣ ﻞﻣﺎﻌﺘﻠﻟ ﺔﺒﺳﺎﻨﻣ ﻞﻤﻋ ﺔﺌﯿﺑ ﻦﯾﻮﻜﺗ ﻰﻠﻋ ةرﺪﻘﻠﻟ يروﺮﺿ ﻞﻜﺸﺑ

:مثال

االسم ( ھذا المثال سوف أقوم بعمل نموذج بسیط مثال یطلب في ، و ) األول ، االسم األخیر ، البلد ، النوع ، الھوایات ، مالحظات

.الحظ الصور form.htmlھذا في صفحة أسمھا

تم form.htmlفي الصورة األولى و ھي صفحة النموذج إضافة األدوات و في الصورة الثانیة و ھي صفحة االستقبال

send.php.

الصفحتین موجودتین في مجلد األمثلة ، في الملفات المرفقة مع .الكتاب ، أرجو أن تحاول تنفیذ المثال دون الرجوع إلى الكود