Menu
Coddy logo textTech

Riepilogo: convalida dell'input

Fa parte della sezione Logica e flusso del percorso PHP di Coddy. Lezione 58 di 68.

challenge icon

Sfida

Facile

Riceverai quattro input: una stringa che rappresenta un indirizzo email, una stringa che rappresenta un numero di telefono, un numero che rappresenta l'età minima e un numero che rappresenta l'età effettiva.

Crea due classi di eccezione personalizzate:

  • InvalidEmailException che estende la classe base Exception
  • InvalidAgeException che estende la classe base Exception

Crea una funzione chiamata validateUserData che accetta quattro parametri: email, telefono, età minima ed età effettiva. All'interno di questa funzione:

  • Verifica se l'email contiene il simbolo @. Se non lo contiene, genera un'eccezione InvalidEmailException con il messaggio "Email must contain @ symbol"
  • Verifica se la lunghezza del numero di telefono è esattamente di 10 caratteri. Se non lo è, genera un'eccezione generica Exception con il messaggio "Phone number must be 10 digits"
  • Verifica se l'età effettiva è inferiore all'età minima. In caso affermativo, genera un'eccezione InvalidAgeException con il messaggio "User must be at least X years old" (dove X è il valore dell'età minima)
  • Se tutte le convalide hanno esito positivo, stampa "User data is valid"

Usa un blocco try...catch...finally per chiamare la funzione con gli input forniti. Crea due blocchi catch separati:

  • Il primo blocco catch deve intercettare InvalidEmailException e stampare "Email error: " seguito dal messaggio dell'eccezione
  • Il secondo blocco catch deve intercettare InvalidAgeException e stampare "Age error: " seguito dal messaggio dell'eccezione
  • Aggiungi un terzo blocco catch che intercetti qualsiasi altra Exception e stampi "Validation error: " seguito dal messaggio dell'eccezione

Nel blocco finally, stampa "Validation process completed".

Formato dell'input:

  • Prima riga: una stringa che rappresenta l'indirizzo email (esempio: user@example.com o invalidemail.com)
  • Seconda riga: una stringa che rappresenta il numero di telefono (esempio: 1234567890 o 12345)
  • Terza riga: un numero intero che rappresenta il requisito di età minima (esempio: 18)
  • Quarta riga: un numero intero che rappresenta l'età effettiva (esempio: 25 o 16)

Output previsto:

  • Se tutti i dati sono validi: User data is valid seguito da Validation process completed su una nuova riga
  • Se l'email non è valida: Email error: Email must contain @ symbol seguito da Validation process completed su una nuova riga
  • Se il numero di telefono non è valido: Validation error: Phone number must be 10 digits seguito da Validation process completed su una nuova riga
  • Se l'età è inferiore al minimo: Age error: User must be at least X years old (dove X è l'età minima) seguito da Validation process completed su una nuova riga

Provalo tu

<?php
// Leggi i dati di input
$email = trim(fgets(STDIN));
$phone = trim(fgets(STDIN));
$minAge = intval(fgets(STDIN));
$actualAge = intval(fgets(STDIN));

// TODO: Crea qui le classi di eccezione personalizzate
// Crea la classe InvalidEmailException
// Crea la classe InvalidAgeException

// TODO: Crea qui la funzione validateUserData
// La funzione deve accettare quattro parametri: email, phone, minAge, actualAge
// Implementa la logica di validazione all'interno della funzione

// TODO: Usa un blocco try...catch...finally per chiamare la funzione
// Chiama validateUserData con i valori di input
// Aggiungi blocchi catch per InvalidEmailException, InvalidAgeException e l'eccezione generica Exception
// Aggiungi un blocco finally

?>

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore PHP online