Featured Top
Cos’é standardLib

Si tratta di un framework PHP in grado di gestire con poche righe di codice i principali processi utilizzati nello sviluppo di un'applicazione web.

Questo avviene tramite dei modelli standard sui quali é basato il framework
Cosa sono i modelli

standardLib mette a disposizione delle interfacce per gestire operazioni quali:
  • - Registrazione utenti
  • - Autenticazione
  • - Inivo di email dal sito
  • - Paginazione contenuti
  • - Motori di ricerca
  • - Sicurezza
  • - Upload di file
  • - ...e molto altro

Queste interfacce prendono il nome di modelli
Cosa sono i plugins

Grazie allo sviluppo di plugins è possibile estendere i modelli di standardLib o per crearne dei nuovi.

Le procedure per la creazione di plugin sono esposte nell'apposita sezione.

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
  • email

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:

  • Uno o più campi sono vuoti
  • La stringa username non è conforme al pattern
  • La stringa email non è conforme
  • Le due password inserite non corrispondono
  • L’username fornito esiste già nel databse
  • L’email fornito esiste già nel databse
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:

username<br /> <br /><br /> password<br /> <br /><br /> password ripeti<br /> <br /><br /> email<br /> <br /><br />

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.