الثوابت والمتغيرات تعرف على طريقة عملها







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

كيفكم اخواني ان شاء الله تكونوا بألف خير

عنوان درسنا لهذا اليوم هو:

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

1-القوانين الخاصة بكتابة لغة الـ PHP.
2-لماذا عليك الاهتمام بكيفية ظهور الكود الذي كتبتة؟
3-انشاء اول برنامج لك بهذه اللغة.
4-استخدام ال HTML في هذه اللغة .

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

فلنقل بسم الله ولنبدأ..

1-ما هي الثوابت وما هي طريقة عملها؟

*الثوابت هي تعتبر كصندوق يوضع به القيم التي تريدها.

*واهم ميزاتها:
1-انها تكون بأحرف كبيرة مثلا FAVMOVIE وهذا يسهل عليك ايجادها في الكود الذي تكتبة.
2-لا تبدأ ابدا بأرقام فقط تبدأ بأحرف او بـ ( _ ) underscore .
3-حساسة لحالة الاحرف.(اما جميعها كابيتال او جميعها سمال)

*تعرف الثوابت عن طريق الدالة :
رمز PHP:define() 
مثال: افتح محرر البي اتش بي واكتب الكود التالي:



احفظ الملف بأسم moviesite.php وقم بفتحه عن طريق المتصفح وشاهد ماذا حدث.^^

مالذي حدث في المثال السابق؟
الذي قمنا به هو بعد تعريف الثابت FAVMOVIE بأستخدام الدالة define قمنا
بوضع القيمة "فيلم الرسالة" به حتى نقوم بأستدعائه واظهاره لاحقا ومن اهم مميزاته بأنه لا يتغير ابدا

سأوضح الكلام بنقاط حتى تستوعبون اكثر:
1-قمنا بفتح الملف وكتابة الكود الذي تعلمناه في الدرس السابق
2-قمنا بأنشاء صندوق وسمينا "FAVMOVIE" ووضعنا في هذا الصندوق "فيلم الرسالة"
3-قمنا بأستدعاء الامر echo ووضعنا الثابت FAVMOVIE
4-اظهرناها على المتصفح.

فقط سهلة اليس كذلك ؟

لننتقل الى الجزء الثاني والمهم في درسنا وهو:

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

*ما هي طريقة كتابة المتغيرات؟
تكتب المتغيرات بداية بأشارة $ الدولار
مثلا:
رمز PHP:$mohammad
$ali
$turky 
مميزاتها:

1-انها تقبل التغير.

2-بأنها حساسة لحالة الاحرف مثلا:

رمز PHP:$mohammad يختلف عن $Mohammad 
3-وهي تبدأ ايضا بحروف او ( _ ) وليس ارقاما.

فالنذهب لمثال جديد :

1- افتح ملف moviesite.php الذي قمنا بأنشاءه وقم بعمل التغيرات التالية عليه:



احفظ الملف وقم بأستعراضه على المتصفح وانظر للنتيجة ^^

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

1-قمنا بأنزال سطر بأستخدام الامر <br> الخاص بأوامر ال HTML

2-قمنا بتعريف متغير وسميناه movierate ووضعنا اشارة المساواة
اي هي اداة النقل التي تقوم
بنقل القيم من خارج الصندوق الى داخل الصندوق ووضعنا به الرقم 5

لاحظ بأننا قد عرفنا المتغير movierate على اساس انه رقم ولم نقم بوضع الرقم في " 5 "
ملاحظة:
رمز PHP:$user = "Mohammad";
$Mohammad = "123";
echo $$user; 
سيقوم بطباعة الرقم 123

هنا قمنا بتعريف المتغير user بالقيمة Mohammad وقمنا بتعريف المتغير Mohammad بالقيمة 123

وعند طباعة المتغير $$user سيقوم بأظهار القيمة الخاصة بالمتغير Mohammad

*انتبة الى حالة الاحرف

انواع المتغيرات وهي :
-String اي مثل هذه الكلمة وتوضع بين علامات التنصيص "انا متفوق"
-numbers اي انها ارقام عادية مثل 123445
-intger مثل السابق
-double هي ارقام بفواصل مثل 123.1213
-boolean (true/fales) وهي تعطيك ناتج اما صحيح او خاطئ


تعرفنا على المتغيرات وتعرفنا على الثوابت للنتقل لشيء جديد الان وهو:

3-كيف اقوم بتمرير المتغيرات ما بين صفحات برنامجي؟

فالنفترض بأنك تسمح لزوارك بوضع اسمائهم في بداية صفحات موقعك ,
ولكن السؤال هنا هو كيف
يمكنك تمرير اسم الزائر من صفحة الى اي صفحة اخرى ؟

الاجابة بأنه يوجد اربع طرق لعمل ذلك وهي:

1-تمرير المتغير او الاسم من خلال الـ URL :هو تمرير المتغير من خلال شريط العنوان بأعلى المتصفح.
2-او من خلال session: هو تمرير المتغير من خلال الـstatus bar في اسفل المتصفح.
3-من خلال الـ cookie: هو تمرير المتغير من خلال ملف يقوم بأنشاءه جهازك وحفظة .
4-من خلال html form: هو مثل تسجيل الدخول وكلمة المرور في المنتديات.

بعض الدوال المهمة معرفتها قبل البدء بالشرح للطرق الاربعة:



الطريقة الاولى وهي :

1-تمرير المتغير او الاسم من خلال الـ URL :

هذا مثال بسيط لتتعرف الى هذه الطريقة..

رمز:
http://www.mydomain.com/news/articles/showart.php?id=12345
في هذا المثال قمنا بطلب الـملف المصاحب للـ ID رقم 12345 ليظهر في صفحة showart.php من هذا السكريبت.
النص ما بعد الـ URL يسمى query string .

هذه بعض الملاحظات على هذه الطريقة:

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

مثال على هذه الطريقة :

1- قم بفتح الملف moviesite.php وعدل عليه التالي:




2-احفظ الملف وقم بفتح ملف جديد واكتب به الكود التالي:




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



اضغط على الرابط لترى النتيجة..



سترى بأن القيمة التي ادخلناها للمتغير
رمز PHP: $favmovie 
عن طريق الرابط هي "القيصر" لكن لاحظ بأنه لايوجد شيء في الصفحة التي تليها يعني
فقط كلمة القيصر موجوده بالرابط وليست موجوده بالصفحة
اي ان المتغير قيمته فارغه ولا يوجد به شيء

ولنقم بحل هذه المشكلة قم بعمل التغيرات التالية على الملف moviesite.php




الان احفظ العمل وقم بتشغيل الملف movie1.php
واضغط على الرابط ولاحظ الفرق بالصورة التالية



لاحظ بأن كلمة القيصر قد ملأت الفراغ في المثال السابق ..


لنقم الان بشرح ما هية المثالين السابقين وما الذي قمنا بتنفيذة..

1-قمنا بتعريف متغير بملف moviesite.php بأسم $favmovie ولم نقم بأعطائة اي قيمة.

2-قمنا بفتح ملف جديد وكتبنا به رابط خاص بملف moviesite.php يقوم بأستدعاء
المتغير favmovie واعطائة القيمة "القيصر" بعد اشارة المساواة.

3-بعد اظهار النتائج لم تظهر النتيجة المطلوبة وقمنا بتعديل الملف moviesite.php.

4- في الملف السابق قمنا بأضافة متغير خاص يقوم بحمل متغير اخر ويأخذ قيمتة عن طريق
الرابط المرسل له بخلال المتصفح كما عرفناه بهذه الطريقة:
رمز:
moviesite.php?favmovie=القيصر

هنا قمنا بتعريف المتغير favmovie بأن قيمته هي "القيصر" ووضعناه في المتغير favmovie
عن طريق المتغير الخاص
رمز PHP: $_REQUEST['favmovie'] 
فأصبح بعد اخذ القيمة بالرابط من المتصفح وهي القيصر اصبح هذا المتغير الخاص بهذا الشكل
رمز PHP: $_REQUEST['القيصر'] 
----------------------------------------
تدريب بسيط على هذه الحالة:- قم بتجريب كلا من
رمز PHP:$_GET 
رمز PHP:$_POST 
بدلا من
رمز PHP: $_REQUEST 
----------------------------------------

ملاحظة مهمه جدا:

عند تمرير المتغيرات بطريقة الـ URL (الرابط) لا تقم بكتابة احرف خاصة مثل المسافة
او اي من الاحرف الخاصة.

* لنتعلم الان دالة جديدة وهي
رمز PHP:urlencode() 
ما هي وظيفة هذه الدالة؟

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

لنقم بتجربة هذه الدالة وقم بتحرير ملف movie1.php وقم بعمل التغيرات التالية:




قم بتشغيل الملف ولاحظ ماذا حدث للرابط في الاعلى..



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

لننتقل الان الى الطريقة الثانية من طرق تمرير المتغير وهي:

2-تمرير المتغيرات من خلال session :

الاسئلة المهمه في هذه الطريقة هي :
* ما هو الـ session ?
* ما اهم مميزاته ؟
* كيف يتم تعريفة بالسكريبت ؟

لنتعرف اولا الى ماهية الـ session :
الـ session هي الجلسات بمعنى اخر هي مجموعة من الحروف والارقام والاشارات
يحفظ بها معلومات العضو او الزائر الذي فتح صفحة موقعك وهي تختلف من مستخدم لأخر
مثلا قام احمد بالدخول للموقع وفي نفس الوقت قام علي بذلك سيكون ال ID لكل منهما مختلف

عند التطبيق العملي ستقوم بفهم الجلسات بسلاسة اكثر..^^

ما اهم مميزات الـ session او الجلسات؟

* اهم مميزه انها تدمر بعد اغلاق الزائر لصفحة موقعك
* ايضا انها تختلف اختلافا تاما من زائر الى اخر
* انها اكثر امانا اي يمكننا ارسال اسم المستخدم والباسوورد من خلالها ولا يكونا ظاهرين

كيف يتم تعريف دالة الـ session في صفحات موقعنا:
لتعريف الجلسات نستخدم الدالة التالية:
رمز PHP:session_start() 
واهم نقطة انها تكون في بداية اي صفحة وقبل كتابة اي كود HTML اي بهذه الطريقة

رمز PHP:<?php
session_start()
لنقم الان بعمل مثال يوضح الية عمل هذه الدالة وكيف يمكننا استغلالها:

لنفترض بأنك تريد تمرير اسم المستخدم والتأكد من انه يستخدم الشكل الاصلي بالدخول الى صفحتك..

1- قم بفتح ملف movie1.php واضف في بدايته الكود التالي :



2-قم بحفظ الملف
3-قم بفتح الملف moviesite.php وقم بعمل التغيرات التالية:





الان احفظ الملف وقم بأستعراض الملف moviesite.php هل لاحظت بأنه لم يسمح لك بالدخول للصفحة؟؟
وكتب لك بأنك قمت بالدخول بطريقة غير صحيحة وهذا ما قمنا بعمله عندما استخدمنا الدالة الشرطية if

قم الان بفتح الملف movie1.php واضغط على الرابط وانظر ما الذي حدث لقد قام
المتصفح بالمرور الى الصفحة الاخرى وقم بكتابة الاسم الذي وضعناه داخل المصفوفة
رمز PHP:$_SESSION['username'] = "محمد"; 
البعض سيتسائل لم نقم بتعلم الدالة الشرطية حسنا هذا ليس مهما فهذا المثال للتوضيح فقط
سأقوم بشرح الدالة الشرطية if في الدرس القادم بأذن الله ..

حسنا ما الذي تعلمناه في هذا المثال:

1- طريقة استخدام المصفوفه SESSION ومكان وجودها داخل السكريبت
2- كيفية التحقق من ان المستخدم قام بالدخول الى الصفحة بالشكل الصحيح

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

لننتقل الان الى الطريقة الثالثة وهي :
3- تمرير المتغيرات عن طريق ال Cookie :

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

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

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

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

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

اسئلة على الدرس :

اي من المتغيرات التالية خاطئة

رمز PHP:$_mohammad
$1mohammad
$User 


تدريب بسيط لما تعلمنا في درسنا هذا :
1- قم بتعريف ثابت اخر وقم بعرضة في المتصفح ..
2- قم بتعريف متغير جديد واعطائه اي قيمة ومرره من خلال الرابط بالمتصفح ويأخذ نفس قيمته..
3- قم بكتابة المتغير $favmovie ما بين الوسوم الخاصة بعنوان الصفحة ..

هذه تدريبات بسيطة لتقومو بكتابة الاكواد والتعرف عليها وتعلمها لما فيه فائدة لكم..

اتمنى بأن اكون قد وفقت في الشرح وان لا اكون قد اهملت اي شي

لدية اي ملاحظة او اي سؤال او استفسار فسأل ولا تتردد وسأقوم بالاجابة عليه

شكرا لكم اخواني وحسن متابعتكم وفقكم الله لما يحب ويرضى

ودمتم بألف خير

^^
نصيحة اخواني ارجوكم ثم ارجوكم ثم ارجوكم ان تقوموا بقراءة الدرس
مرارا وتكرارا حتى تيقنوا بأنكم قد استوعبتم كل ما جاء به

 

 

رابط الدرس

http://www.traidnt.net/vb/showthread.php?t=462819