القوالب هي دائماً اسرع واسهل طريقة لإضافة ميزة التفاعل (interactivity) لموقعك. القالب يسمح لك بأن تطلب من العملاء او الزوار العاديين ان يكتبوا ملاحظات عن بضاعتك او خدماتك اذا اعجبتهم. ولغة ال PHP ستقوم بتبسيط مهمة معالجة البيانات من القالب, كما سيوضح المثال الأول. هذا المثال يتكون من ملفين الأول اسمه form.htm ويحتوي على كود القالب وهو بلغة HTML والثاني يحتوي على الكود المسؤول عن معالجة المدخلات واسمه message.php, والتالي هو كود form.htm:
<html>
<head></head>
<body>
<form action="message.php" method="post">
Enter your message: <input type="text" name="msg" size="30">
<input type="submit" value="Send">
</form>
</body>
</html>
أهم سطر في هذا الكود هو علامة ال
<form> tag
<form action="message.php" method="post">
...
</form>
ربما انت تعلم مسبقاً, الخاصية attribute الخاصة بالقالب تحدد اسم ملف ال PHP الموجود على الخادم والذي سيقوم بمعالجة المعلومات التي تم ادخالها بالقالب. والخاصية method تحدد كيفية ايصال هذه المعلومات.
والآن النصف الثاني من اللغز : ملف message.php. هذه الكود يقرأ البيانات التي قام المستخدم بإدخالها و "يقوم بعمل شيء ما فيها". وكود هذا الملف كالتالي:
عندما تقوم بإدخال بعض البيانات في ملف form.htm لنقل مثلا "boo" وتقوم بعد ذلك بعملية الإرسال, قوم الملف المسؤول عن المعالجة message.php بقرائة البيانات وطباعة الجملة "You said: boo". بمعنى آخر في كل مرة يتم ارسال البيانات للقالب, جميع قيم المتغيرات الموجودة بالقالب تصبح متاحة لكود ال PHP الذي قام بإستلامها من خلال $_POST. بعد ذلك يمكنك الوصول لهذه المتغيرات من خلال وضع اسمها في $_POST كما فعلت انا في الكود أعلاه.
من الواضح ايضاً ان لغة ال PHP تدعم ايضا طريقة الإرسال GET. كل ما عليك القيام به هو تغيير خاصية طريقة الإرسال method لتصبح get وقم بعد ذلك بإستلام البيانات من خلال $_GET بدلاً من $_POST. ال $_GET وال $_POST هما عبارة متغيرات خاصة بلغة PHP من نوع المصفوفة Array. لا تقلق كثيراً الآن, فقط تأكد بأنك فهمت وتمكنت من عملية استلام البيانات من القالب داخل كود ال PHP. وأكمل الدرس لتتعلم المزيد عن العمليات في ال PHP.
لحد الآن الكود الذي قمنا بمناقشته كان غبي نوعاً ما. لإضافة بعض الذكاء الى الكود, يجب عليك معرفة كيف تعمل ما يسموه العباقرة الجمل الشرطية (conditional statement) الجملة الشرطية هي الجملة التي تمكنك من عمل شيء معياً بناء على نتيجة عملية مقارنة معينة. وبما ان اساس هذه المقارنات هي المساواة, يجب عليك معرفة كيف تقارن بين متغيرين وتقرر هل هم متشابهات ام لا.
سبق لك ورأيت بعض كودات لغة ال PHP في العمليات الحسابية والعمليات على النصوص. أيضا لغة ال PHP جائت أيضاً بإشارات مصممة بشكل خاص للمقارنات بين قيم المتغيرات: تسمى هذه الإشارات إشارات المقارنة (comparison operators). والتالي هو مثال على كيفية عمل هذه الإشارات:
جميع نتائج هذه العمليات هي نتائج منطقية : بمعنى إما صحيح (true) (1) او خطأ (false)(0) - صفر تعني لا تطبع اي شيء. هذه يجعل المقارنة اداة لا يمكن الإستغناء عنها في عملك, لأنه يمكنك استخدامها في الجمل الشرطية لتوجيه خط سير عمل الكود للمكان الذي تريده.
في الإصدارة PHP 4.0 تم إستحداث إشارة جديدة تقوم بمقارنة القيم بالنسبة للمساواة وأيضاً تقوم بالمقارنة بالنسبة لنوع المتغير وهي ===. المثال التالي يوضح ما تقوم به:
إقرأ المزيد عن عمليات المقارنة على الموقع http://www.php.net/manual/en/language.operators.comparison.php
بالإضافة الى إشارات المقارنة التي قمت بإستخدامها في الأمثلة السابقة, لغة ال PHP تدعم ايضاً عمليات منطقية, والتي تقوم بدمج عمليات منطقية بعضها مع بعض. وهذه العمليات الأربعة هي : و المنطقية (AND), أو المنطقية (OR), إما المنطقية (XOR), لا المنطقية(NOT). جميعها مستخدمة في المثال التالي:
العمليات المنطقية تلعب دور مهم جداً في بناء الجمل الشرطية, لأنها تستطيع ان تدمج شروط معينة بطريقة سهلة ومنمقة. قم بزيارة الموقع التالي لمشاهدة أمثلة أكثر عن هذه الموضوع http://www.php.net/manual/en/language.operators.logical.php.
والآن بعد ان تعلم كل ما يتعلق بالمقارنات واشارات المقارنة, يمكنني ان اعلمك ما يخص الجمل الشرطية. كما أسلفت سابقاً, الجمل الشرطية تسمح لك بالإختبار ما اذا كان شرط معين صحيح ام لا, ومن ثم تنفيذ شيء معياً بناء على نتيجة هذا الإختبار. في لغة PHP ابسط شكل للجمل الشرطية هي جملة إذا (if). والتي تبدو تقريباً مثل الآتي:
المدخلات (argument) لجملة if هي عبارة منطقية, وهي التي تعطي نتيجة اما صواب واما خطأ. اذا كانت تيجة العبارة المنطقية صحيحة فإن الكود الموجود داخل القوسين المعقوفين سيتم تنفيذه , واذا لم تكن النتيجة صحيحة فإنه سيتم تجاهل المود والإستمرار بالتنفيذ من الجملة اسفل الجملة الشرطية.
شاهد كيف تقوم جملة if بالعمل اذا ما دمجت بقالب. في المثال التالي يطلب من المستخدم إدخال عمره او عمرها:
<head></head>
<body>
<form action="ageist.php" method="post">
Enter your age: <input name="age" size="2">
</form>
</body>
</html>
Depending on whether the entered age is above or below 21, a different message is displayed by the ageist.php script:
<?php
// retrieve form data
$age = $_POST['age'];
// check entered value and branch
if ($age >= 21) {
echo 'Come on in, we have alcohol and music awaiting you!';
}
if ($age < 21) {
echo "You're too young for this club, come back when you're a little older";
}
?>
</body>
</html>
بالإضافة الى الجملة الشرطية if, يوجد في لغة ال PHP جملة إذا-إلا (if-else), تستخدم لتعريف جزء من الكود يتم تنفيذه في حالة كان نتيجة الجملة الشرطية هي خطأ false.
شكل جملة if-else هو كالآتي:
هذه الجملة يمكن استخدامها بشكل فعال جداً في المثال السابق: يمكن دمج الجملتين الشرطيتين بجملة if-else واحدة.
إذا كنت تعقتد ان القيام بتضليل من هم يقرأون كودك يجعلك تشعر بالدفء والقوة, اذن ستحب الجملة الثلاثية(ternary operator) والتي تمثل ب علامة استفهام . هذه الإشارة تمكنك من عمل جملة شرطية في سطر واحد, بحيث جواب الشرط وعكسه عبارة عن جملة واحدة تغنيك عن جلمة if-else. يمكنك عملها كما بالمثال التالي :
يمكنك عمل المثال السابق كالتالي , كلا الجملتين متشابهتين وتعطي نفس النتيجة (لكن ليس نفس المتعة).
تسمح لك لغة ال PHP أيضاً بدمج الجمل الشرطية بعضها في بعض. مثل الكود الصحيح التالي:
أيضاً يمكنك كتابة الكود السابق بطريقة انيقة أكثر كالتالي:
تمكنك الغة ايضاً من السيطرة على احتمالات كثيرة: جملة if-elseif-else. الشكل الإفتراضي لجملة if-elseif-else هو كالتالي :
وهذا المثال يوضح كيفية استخدامها
<html>
<head></head>
<body>
<h2>Today's Special</h2>
<p>
<form method="get" action="cooking.php">
<select name="day">
<option value="1">Monday/Wednesday
<option value="2">Tuesday/Thursday
<option value="3">Friday/Sunday
<option value="4">Saturday
</select>
<input type="submit" value="Send">
</form>
</body>
</html>
كما ترى هذا قالب بسيط يسمح لك بإختيار يوم من الأسبوع, العمل الحقيقي هو ما يقوم به كود ال PHP الكود cooking.php:
هذا كل شيء للآن. لمشاهدة أمثلة اكثر عن الجمل الشرطية قم بزيارة الموقع http://www.php.net/manual/en/language.control-structures.php .
في الدرس الثالث سنتحدث عن جمل تحكم اكثر, عمليات اكثر وكودات اغرب اكثر إن شاء الله, لذا احرص على عدم تفويته.