Ovviamente, tutti i metodi cui abbiamo accennato nella lezione precedente non hanno efficacia finché non vengono azionati. Ma non sarà compito della classe AFormCheck farlo, perché quest'ultima rappresenta solamente un contenitore di funzionalità generali. Sarà infatti una prerogativa della classe FormCheck richiamarli, a seconda che i diversi controlli abbiano esito positivo o meno. Ecco il codice della prima parte di quest'ultima componente:
// ----------------------------------------
// class FormCheck
// extends AFormCheck
// ----------------------------------------
class FormCheck extends AFormCheck {
// metodi di checking
public function checkName() {
if(is_string($this->name) && ctype_alnum($this->name) && (strlen($this->name) <= 10) && (strlen($this->name) >= 4)) {
echo "<p>Il nome è stato inviato correttamente.</p>";
$this->clean['name'] = htmlentities($this->name, ENT_QUOTES);
}
else {
$this->trackErrorMsg('name');
}
}
public function checkLastname() {
if(is_string($this->lastname) && ctype_alnum($this->lastname) && (strlen($this->lastname) <= 15) && (strlen($this->lastname) >= 4)) {
echo "<p>Il cognome è stato inviato correttamente.</p>";
$this->clean['lastname'] = htmlentities($this->lastname, ENT_QUOTES);
}
else {
$this->trackErrorMsg('lastname');
}
}
public function checkEMail() {
if(is_string($this->email) && eregi('^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$', $this->email)) {
echo "<p>L'e-mail è stata inviata correttamente.</p>";
$this->clean['email'] = $this->email;
}
else {
$this->trackErrorMsg('email');
}
}
public function checkYear() {
if((intval($this->year) >= 1900)) {
echo "<p>L'anno di nascita è stato inviato correttamente.</p>";
$this->clean['year'] = (int)$this->year;
}
else {
$this->trackErrorMsg('year');
}
}
// ...
Tutti questi metodi servono per effettuare il checking dei valori forniti dagli utenti:
checkName controlla che il nome sia una stringa alfanumerica e che sia composto da un numero di caratteri compreso tra 4 e 10checkLastame controlla che il cognome sia una stringa alfanumerica e che sia composto da un numero di caratteri compreso tra 4 e 15checkEmail controlla che l' e-mail sia fornita in una forma corretta tramite una Regular ExpressioncheckYear controlla che l'anno di nascita sia maggiore o uguale a 1900In tutti i casi, se il controllo va a buon fine, l'array clean viene riempito con i valori forniti dall'utente (alcuni vengono "puliti" ulteriormente con funzioni che PHP fornisce internamente), altrimenti viene registrato l'apposito errore.
A questo punto il 90% della nostra gerarchia Object Oriented è stato realizzato. Vediamo dunque di colmare il rimanente 10% analizzando gli ultimi due metodi della classe FormCheck:
// ...
public function checkAll() {
$this->checkName();
$this->checkLastname();
$this->checkEMail();
$this->checkYear();
return $this->getErrorMsg();
}
// altro
public function setErrorMsgs($errs) {
foreach($errs as $err => $txt) {
$this->errorMsgs[$err] = $txt;
}
}
}
Il metodo checkAll, che rappresenta il metodo pubblico che verrà utilizzato maggiormente, fornisce sostanzialmente due funzionalità fondamentali:
checkName, checkLastname, checkEMail, checkYear)getErrorMsg ereditato dalla classe AFormCheck per vedere se sono stati registrati errori e generare di conseguenza gli appositi messaggiIl metodo setErrorMsgs infine, accetta un array con coppie key/value impostate rispettivamente a "campo/testo di errore", per personalizzare i messaggi di testo standard forniti dalla classe AFormCheck.
A questo punto siamo arrivati al completamento della nostra gerarchia. L'unica cosa che manca è la visualizzazione pratica dell'applicazione in uno scenario reale, che affronteremo nella prossima lezione.
Sessioni PHP: cosa sono, come si usanoDalla configurazione di PHP, alla gestione delle sessioni in un... |
Continuous Integration: automatizziamo i client con PhingContinuous Integration: automatizziamo i client con Phing. Esempi... |
Archiviazione delle applicazioni PHP con PharCome incorporare intere applicazioni PHP all'interno di un singolo... |
I traits in PHP 5.4Cosa sono, a cosa servono e come si unsano i traits, la novità per... |
PHP 5.4: il web server integratoImpara ad usare il web server integrato nella versione 5.4 di PHP:... |
Guida Yii FrameworkCome creare applicazioni Web in modo semplice e veloce con il... |
Guida Applicazioni Facebook con PHPCome realizzare un'applicazione per Facebook. Dalle basi della... |
Guida PHP con Windows e IISInstallare ambienti per lo sviluppo e la produzione di applicazioni... |
Ogni lunedì, direttamente nella tua e-mail: script, articoli, guide e tutorial su PHP, MySQL e Apache.
Iscriviti alla newsletter
|
|
Corso PHP per Webmaster11 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |