FitClass Fitness Class Scheduler
Lab 12

Validation, Regex, Custom Exceptions

هذا المعمل يوضح التحقق من المدخلات، استخدام Regular Expressions، إنشاء استثناء مخصص، وعرض رسائل خطأ واضحة للمستخدم.

النتيجة العملية

جرّب إدخال بيانات خاطئة: مثلاً: بريد بدون @ أو رقم عضوية بدون MEM- حتى تظهر رسالة الخطأ.

الكود المطلوب عرضه في الفيديو

// Lab 12: التحقق من البيانات ومعالجة الأخطاء
class LabValidationException extends RuntimeException {}

try {
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
        throw new LabValidationException('صيغة البريد الإلكتروني غير صحيحة.');
    }

    if (!preg_match('/^MEM-[0-9]{4}$/', $membershipId)) {
        throw new LabValidationException('رقم العضوية يجب أن يكون مثل MEM-1001.');
    }

    if (!preg_match('/^(0[1-9]|1[0-2]):[0-5][0-9]\s?(AM|PM)$/i', $classTime)) {
        throw new LabValidationException('وقت الحصة يجب أن يكون مثل 05:30 PM.');
    }
} catch (LabValidationException $e) {
    $error = $e->getMessage();
} catch (Throwable $e) {
    $error = 'حدث خطأ غير متوقع.';
}