standardLib – PHP framework
addUser
Dipendenze: Security, standardTools, Mailer
Descrizione
Il modello addUser è il più complesso del framework standardLib e rappresenta il processo di registrazione di un nuovo utente attraverso i seguneti passaggi:
- Riceve i dati dal form
- Verifica i dati ricevuti
- Salva i dati ricevuti nel database
- Invia un email di conferma (opzionale)
- Verifica ed attiva l’account (se attivata la conferma tramite email)
Il form dovrà richiedere i seguenti dati:
- username
- password
- conferma password
La tabella utenti del database, dovrà come minimo avere i seguenti campi
- chive primaria
- username (VARCHAR)
- password (VARCHAR 32)
- email (VARCHAR)
- codice di conferma (VARCHAR 30)
Lista dei parametri
| Parametro | Descrizione | Default |
|---|---|---|
| userTable | Il nome della tabella utenti del databse | Valore di DEFAULT_USERS_TABLE in config.php |
| usernameField | Il nome utilizzato per il campo username della tabella utenti | Valore di DEFAULT_USERNAME_FIELD in config.php |
| passwordField | Il nome utilizzato per il campo password della tabella utenti | Valore di DEFAULT_PASSWORD_FIELD in config.php |
| keyField | Il nome utilizzato per il campo codice di controllo della tabella utenti | Valore di DEFAULT_KEY_FIELD in config.php |
| emailField | Il nome utilizzato per il campo email della tabella utenti | Valore di DEFAULT_EMAIL_FIELD in config.php |
| primaryField | Il nome utilizzato per il campo chiave primaria della tabella utenti | Valore di DEFAULT_USER_PRIMARY_KEY_FIELD in config.php |
| cryptMethod | Il metodo di cifratura della password. Vi sono tre valori possibili: md5, sha1 o 0 per non applicare cifrature (deprecato) | Valore di DEFAULT_CRYPT_METHOD in config.php |
| usernameName | Il nome del campo del form nel quale viene richiesto il nome utente | Valore di DEFAULT_USERNAME_FORM_NAME in config.php |
| passwordName | Il nome del campo del form nel quale viene richiesta la password | Valore di DEFAULT_PASSWORD_FORM_NAME in config.php |
| passwordConfirmName | Il nome del campo del form nel quale viene richiesta la conferma della password | Valore di DEFAULT_PASSWORD_CONFIRM_FORM_NAME in config.php |
| emailName | Il nome del campo del form nel quale viene richiesto l’email | Valore di DEFAULT_EMAIL_FORM_NAME in config.php |
| usernamePattern | Il pattern relativo all’username | /^([a-z0-9-_])+$/i |
| sendConfirmMail | Invia l’email di conferma per l’attivazione dell’account (1) o attiva direttamente l’account (0) | 1 |
| verifyPageUrl | L’URL della pagina di verifica ed attivazione account | Valore di DEFAULT_VERIFY_PAGE in config.php |
Lista dei metodi e delle proprietà
| Proprietà – Metodo | Descrizione | Return |
|---|---|---|
| _errors() | Analizza la presenza dei seguenti errori:
|
TRUE: Se viene constatato uno di questi errori FALSE: Se non vi sono errori |
| addUserError | Contiene la descrizione dell’errore che si è verificato o l’informazione del successo dell’operazione | |
| insertNewUser() | Esegue la procedura di inserimento del nuovo utente ed invia l’email di conferma (se impostato) | TRUE |
| VerifyUser() | Esegue la procedura di verifica ed attivazione dell’account | TRUE: Se la procedura è andata a buon fine FALSE: Se non è stato possibile attivare l’account |
| accountReport | Contiene informazioni sull’esito della procedura di attivazione |
Esempio minimo
Innanzi tutto servirà il form di registrazione:
Il form prevede la richiesta dei dati fondamentali per la creazione dell’account. Si noti che l’utilizzo del metodo POST é obbligatorio in quanto il modello addUser ricerca i dati in questo array.
Vediamo ora la pagina alla quale punta il form register.php
include_once '../engine.php';
_setOptions(array('verifyPageUrl' => URL . '/example/verify_account_example.php'));
if(isset($_POST['submit']))
{
if($model->_errors())
{
echo $model->addUserError;
}
else
{
$model->insertNewUser();
echo $model->addUserError;
}
}
I parametri passati al metodo sono unicamente a scopo didattico. Normalmente questi valori sono impostati come default nel file config.php.
Come si può vedere, il metodo insertNewUser() non va applicato direttamente. E’ opportuno verificare preventivamente la presenza di errori tramite _errors(), e solo se tutto è corretto passare all’inserimento dell’utente.
A questo punto il nuovo utente ed i suoi dati sono inseriti nel database. Se la conferma tramite email è disabilitata (sendConfirmMail settato a 0), l’utente è già abilitato. Un utente è abilitato quando nel campo chiave di conferma è inserito un “1″.
Abilitare un account senza conferma é comunque una procedura deprecata in quanto si presta notevolmente allo spamming. Se invece è correttamente è abilitata questa conferma, nel campo chiave di conferma troveremo un lungo codice alfanumerico. Questo codice viene anche inviato tramite email all’utente che si è appena registrato. Nell’email dovrà cliccare un link nel quale è contenuto il codice di attivazione. Questo link punterà alla pagina (impostabile con il parametro verifyPageUrl) di verifica che avrà questa semplice struttura.
include 'standardLib/engine.php';
if(isset($_GET['key']) AND isset($_GET['id']))
{
$model->verifyUser();
echo $model->accountReport;
}
Con questi tre semplici passaggi, ecco realizzato un sistema di registrazione utenti.

