Scusami se ti rispondo in ritardo ma ho avuto problemi con la casella email.
Allora, torniamo al tuo problema.
Sappiamo che le classi rule devono avere due metodi obbligatoriamente (nella versione attuale se non ce li hanno non succede niente a parte il fatto che la classe non funziona ma nelle versioni successive si dovrebbe ricevere errore!): il costruttore ed il metodo check.
Il metodo check è quello che viene richiamato dalla classe driver "FrmFild".
Tu vuoi controllare che l'indirizzo e-mail inserito sia univoco nel db.
I controlli da effettuare sull'indirizzo e-mail, quindi, sono:
1) E-mail valida (regex)
2) E-mail univoca
La nostra nuova classe, quindi, estenderà la classe PatternRule
Codice PHP:
class UniqueMailRule extends PatternRule {
// Metodo costruttore
function UniqueMailRule( $mail ) {
// Richiamo il costruttore della classe parent
// La regola è quella che uso io ma tu puoi metterne anche una diversa
parent::PatternRule( "/^[a-zA-Z]{1}\w{1,10}[-|.|_]{0,1}\w{0,10}@\w{3,10}\.\w{0,10}-{0,1}\w{0,10}\.{0,1}\w{2,6}$/i" ) ;
}
// Metodo check
function check( $val , $label ) {
// Qui metti il codice che ti serve per fare il controllo nel db
}
} // End class
Hai visto? Era così difficile! Ciao!