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 sınıfı oluşturun:

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

Dört parametre kabul eden validateUserData adlı bir işlev oluşturun: e-posta, telefon, minimum yaş ve gerçek yaş. Bu işlevin içinde:

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

İşlevi 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 yakalamalı ve istisna mesajının ardından "Email error: " yazdırmalıdır
  • İkinci catch bloğu InvalidAgeException yakalamalı ve istisna mesajının ardından "Age error: " yazdırmalıdır
  • Başka herhangi bir catch yakalayan ve istisna mesajının ardından Exception yazdıran üçüncü bir "Validation error: " bloğu ekleyin

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

Girdi biçimi:

  • İlk 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: Yeni bir satırda User data is valid ifadesinin ardından Validation process completed
  • E-posta geçersizse: Yeni bir satırda Email error: Email must contain @ symbol ifadesinin ardından Validation process completed
  • Telefon numarası geçersizse: Yeni bir satırda Validation error: Phone number must be 10 digits ifadesinin ardından Validation process completed
  • Yaş minimumun altındaysa: Yeni bir satırda Age error: User must be at least X years old ifadesinin ardından Validation process completed (burada X, minimum yaştır)

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

Kendi başına pratik yap: Online PHP derleyicisi