امتحان PHP 3: الدوال، النماذج، والتحقق (10 تمارين مركبة)

امتحان PHP 3: الدوال والنماذج

اختبر مهاراتك في تنظيم الكود باستخدام الدوال، واستقبال ومعالجة بيانات المستخدم من النماذج.

تمرين 1 إنشاء دالة بسيطة (Basic Function)

أنشئ دالة ترحيب:

  1. عرف دالة باسم `writeMsg`.
  2. تطبع الدالة جملة "Hello world!".
  3. استدعِ الدالة لتنفيذها.
الحل
<?php
function writeMsg() {
    echo "Hello world!";
}

writeMsg();
?>
تمرين 2 دالة مع وسائط (Function Arguments)

أنشئ دالة لجمع رقمين:

  1. عرف دالة `addNumbers` تقبل وسيطين `$a` و `$b`.
  2. الدالة تعيد (return) مجموع الرقمين.
  3. اطبع نتيجة استدعاء الدالة مع الرقمين 5 و 10.
الحل
<?php
function addNumbers($a, $b) {
    return $a + $b;
}

echo addNumbers(5, 10); // 15
?>
تمرين 3 القيم الافتراضية للوسائط (Default Arguments)

أنشئ دالة مع قيمة افتراضية:

  1. عرف دالة `setHeight` تقبل وسيطاً `$minheight` بقيمة افتراضية 50.
  2. تطبع الدالة "The height is : $minheight".
  3. استدعِ الدالة مرة بقيمة 350 ومرة بدون وسائط.
الحل
<?php
function setHeight($minheight = 50) {
    echo "The height is : $minheight <br>";
}

setHeight(350);
setHeight(); // ستستخدم 50
?>
تمرين 4 المتغيرات العامة (Global Variables)

الوصول لمتغير خارج الدالة:

  1. عرف متغيراً `$x = 5` خارج أي دالة.
  2. داخل دالة `myTest`، حاول طباعة `$x`.
  3. استخدم الكلمة المفتاحية `global` للوصول إليه.
الحل
<?php
$x = 5;

function myTest() {
    global $x;
    echo $x;
}

myTest();
?>
تمرين 5 معالجة النماذج (POST Method)

استقبل بيانات من نموذج:

  1. افترض وجود نموذج يرسل `name` و `email` بطريقة POST.
  2. اكتب كود PHP لاستقبال هذه البيانات وعرضها.
  3. استخدم `$_POST['key']`.
الحل
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $name = $_POST['name'];
    $email = $_POST['email'];
    
    echo "Welcome $name<br>";
    echo "Your email is: $email";
}
?>
تمرين 6 معالجة النماذج (GET Method)

استقبل بيانات من الرابط:

  1. افترض الرابط: `test.php?subject=PHP&web=W3schools.com`.
  2. استخدم `$_GET` لاستقبال وعرض قيم `subject` و `web`.
الحل
<?php
echo "Study " . $_GET['subject'] . " at " . $_GET['web'];
?>
تمرين 7 التحقق من البيانات (Form Validation)

نظف المدخلات:

  1. أنشئ دالة `test_input($data)`.
  2. تقوم الدالة بإزالة المسافات الزائدة (`trim`).
  3. وإزالة الشرطات المائلة (`stripslashes`).
  4. وتحويل الرموز الخاصة (`htmlspecialchars`) لمنع XSS.
الحل
<?php
function test_input($data) {
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    return $data;
}
?>
تمرين 8 الحقول المطلوبة (Required Fields)

تحقق من أن الحقل ليس فارغاً:

  1. تحقق مما إذا كان حقل `name` في POST فارغاً (`empty`).
  2. إذا كان فارغاً، احفظ رسالة خطأ في متغير `$nameErr`.
  3. وإلا احفظ القيمة في `$name` بعد تنظيفها.
الحل
<?php
if (empty($_POST["name"])) {
    $nameErr = "Name is required";
} else {
    $name = test_input($_POST["name"]);
}
?>
تمرين 9 التحقق من البريد الإلكتروني (Email Validation)

تأكد من صحة البريد:

  1. استخدم `filter_var` للتحقق من أن المتغير `$email` يحتوي على بريد صحيح.
  2. استخدم الفلتر `FILTER_VALIDATE_EMAIL`.
الحل
<?php
$email = "test@example.com";

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo "Invalid email format";
} else {
    echo "Valid email";
}
?>
تمرين 10 التحقق من الرابط (URL Validation)

تأكد من صحة الرابط:

  1. استخدم تعبير نمطي (Regex) للتحقق من أن `$website` هو رابط صحيح.
  2. استخدم `preg_match` مع النمط `/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i`.
الحل
<?php
$website = "https://www.google.com";

if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i", $website)) {
    echo "Invalid URL";
} else {
    echo "Valid URL";
}
?>
المحرر الذكي

اكتب الكود وشاهد النتيجة فوراً

جرب الآن مجاناً
قناة ديف عربي

تابع أحدث الدروس والتحديثات مباشرة على واتساب

انضم الآن