Menu
Coddy logo textTech

Özet: Girdi Doğrulama

Coddy'nin PHP Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 58 / 68.

challenge icon

Görev

Kolay

Dört girdi alacaksınız: bir e-posta adresi dizesi, bir telefon numarası dizesi, bir minimum yaş sayısı ve bir gerçek yaş sayısı.

İki özel istisna (exception) sınıfı oluşturun:

  • Temel Exception sınıfını genişleten InvalidEmailException
  • Temel Exception sınıfını genişleten InvalidAgeException

E-posta, telefon, minimum yaş ve gerçek yaş olmak üzere dört parametre kabul eden validateUserData adında bir fonksiyon oluşturun. Bu fonksiyonun içinde:

  • E-postanın @ sembolü içerip içermediğini kontrol edin. İçermiyorsa, "Email must contain @ symbol" mesajıyla birlikte bir InvalidEmailException fırlatın.
  • Telefon numarası uzunluğunun tam olarak 10 karakter olup olmadığını kontrol edin. Değilse, "Phone number must be 10 digits" mesajıyla birlikte genel bir Exception fırlatın.
  • Gerçek yaşın minimum yaştan küçük olup olmadığını kontrol edin. Küçükse, "User must be at least X years old" (burada X minimum yaş değeridir) mesajıyla birlikte bir InvalidAgeException fırlatın.
  • Tüm doğrulamalar geçerse, "User data is valid" yazdırın.

Fonksiyonu sağlanan girdilerle çağırmak için bir try...catch...finally bloğu kullanın. İki ayrı catch bloğu oluşturun:

  • İlk catch bloğu InvalidEmailException istisnasını yakalamalı ve "Email error: " ardından istisna mesajını yazdırmalıdır.
  • İkinci catch bloğu InvalidAgeException istisnasını yakalamalı ve "Age error: " ardından istisna mesajını yazdırmalıdır.
  • Diğer tüm Exception türlerini yakalayan ve "Validation error: " ardından istisna mesajını yazdıran üçüncü bir catch bloğu ekleyin.

finally bloğunda, "Validation process completed" yazdırın.

Girdi formatı:

  • Birinci satır: E-posta adresini temsil eden bir dize (örnek: user@example.com veya invalidemail.com)
  • İkinci satır: Telefon numarasını temsil eden bir dize (örnek: 1234567890 veya 12345)
  • Üçüncü satır: Minimum yaş gereksinimini temsil eden bir tam sayı (örnek: 18)
  • Dördüncü satır: Gerçek yaşı temsil eden bir tam sayı (örnek: 25 veya 16)

Beklenen çıktı:

  • Tüm veriler geçerliyse: User data is valid ve ardından yeni bir satırda Validation process completed
  • E-posta geçersizse: Email error: Email must contain @ symbol ve ardından yeni bir satırda Validation process completed
  • Telefon numarası geçersizse: Validation error: Phone number must be 10 digits ve ardından yeni bir satırda Validation process completed
  • Yaş minimumun altındaysa: Age error: User must be at least X years old (burada X minimum yaştır) ve ardından yeni bir satırda Validation process completed

Kendin dene

<?php
// Girdileri oku
$email = trim(fgets(STDIN));
$phone = trim(fgets(STDIN));
$minAge = intval(fgets(STDIN));
$actualAge = intval(fgets(STDIN));

// TODO: Burada özel istisna sınıfları oluşturun
// InvalidEmailException sınıfını oluşturun
// InvalidAgeException sınıfını oluşturun

// TODO: Burada validateUserData fonksiyonunu oluşturun
// Fonksiyon dört parametre kabul etmelidir: email, phone, minAge, actualAge
// Fonksiyon içinde doğrulama mantığını uygulayın

// TODO: Fonksiyonu çağırmak için try...catch...finally bloğunu kullanın
// Girdi değerleriyle validateUserData fonksiyonunu çağırın
// InvalidEmailException, InvalidAgeException ve genel Exception için catch blokları ekleyin
// finally bloğunu ekleyin

?>

Mantık ve Akış bölümündeki tüm dersler