Blogial

Semplice User Manager con il Model View Controller - Reset della password -

Metti al top

Può sempre accadere che un ns. utente non ricordi la sua password, quindi è necessario sviluppare un modulo per permettergli il recupero, o meglio, avendo utilizzato md5, che non è reversibile, il reset di quest'ultima.

Nel modulo cambia password, viene richiesto in input l'email dell'utente (si spera che almeno la sua email la ricordi ;) ) e se nel database è presente un record contente questo valore, aggiorniamo l'uid ed inviamo una email con un link per accedere al modulo reset password che si incaricherà del reset vero e proprio.

Semplice User Manager con il Model View Controller - Login -

Metti al top

La logica del login è molto semplice.Se nel database vi è una tupla con username e password, setta una sessione e inserisce lo stesso valore (uid) nel database, per verificare se l'user ha i permessi necessari controlla se nel db vi è una tupla con lo stesso uid della sessione settata in precedenza.

La classe per l'autentificazione è sviluppata direttamente nel model ed è divisa in due, una classe per il login e una classe per la verifica, come potete constatare le due classi sono molto concise, ma svolgono egregiamente, almeno penso ;), il loro compito.

Semplice User Manager con il Model View Controller - Conferma della registrazione -

Metti al top

L'utente dopo la registrazione riceve una email, dove dopo il formale benvenuto nella comunity, vi è un link per la conferma della registrazione con il valore dell'uid che abbiamo messo nel database al momento della registrazione.

E' superfluo dire che se il valore non è presente nel database la registrazione non viene confermata.

Nel file config-settings-inc.php sono definite una serie di costanti tra cui FROM_MAIL (email di riferimento del vs. sito), WEB_SITE_NAME (il nome del vs. sito) e WEB_SITE_URL (base name dell'url del vs. sito) che vanno settate con i giusti valori per un corretto funzionamento dello script.

Semplice User Manager con il Model View Controller - Controller -

Metti al top

Il controller è il componente tramite il quale l'utente interagisce con l'applicazione. Un controller accetta l'input dall'utente ed utilizza i modelli e le viste definite per rispondere alle richieste effettuate.

Il controller riceve i comandi dell'utente (in genere attraverso la view) attraverso una richiesta HTTP. Esamina cosa riceve nella richiesta HTTP, ad esempio una serie di variabili GET, e risponde nel modo appropriato.

Lo script ha una pagina dedicata per ogni azione dell'utente, questo per rendere il suo sviluppo più lineare, ma avremo potuto implementare una variabile GET (action), gestita da un controller centrale che inoltra la richiesta ai vari sub-controller.

Semplice User Manager con il Model View Controller - Model -

Metti al top

Il model è la logica dell'applicazione (spesso chiamata il business layer nelle applicazioni enterprise).

Il suo compito è quello di trasformare semplici dati, in dati che contengono qualche sorta di informazione per poi inviarli alla adeguata view (solitamente tramite il controller).

Nella maggior parte dei casi esso ha al suo interno queries per il database effettuate tramite una classe di astrazione del database (nel ns. caso PDO).

Semplice User Manager con il Model View Controller - View -

Metti al top

La view, è in sostanza, il risultato finale che viene spedito al browser (ad esempio l'xhtml), per mezzo del controller.

Quando si parla delle views molta gente pensa ai templates ma non necessariamente, dobbiamo utilizzare un complesso template engine tipo Smarty per raggiugere il ns. scopo, che è quello di fornire una interfaccia alla ns. applicazione.

Sull'opportunità dell'uso dei templates engine si sono accese molte discussioni, rimando il lettore all'articolo PHP and Templates, in cui sono analizzati i vari pro e contra del loro utilizzo.

Semplice User Manager con il Model View Controller - Framework -

Metti al top

Per compiti quali, validazione input utente, spedizione mails, generazione immagine anti-spam (captcha), lo script utilizza un piccolo framework.La logica della request/response così pure di quella del server/routing è gestita da una semplice libreria di funzioni in modo da non complicare ulteriormente l'applicazione, per lo stesso motivo ho tralasciato anche la parte della registrazione degli oggetti (registry).

Per quei lettori interessati a saperne di più rimando a questa ottima serie di articoli.

Semplice User Manager con il Model View Controller - Premessa -

Metti al top

In questo articolo, il primo di una serie, imparerai a sviluppare un semplice (ha solamente due livelli di privilegi user e admin) sistema per la gestione degli utenti (registrazione, login/logout, reset della password) migliorando (almeno lo spero ;), la tua conoscenza della programmazione orientata agli oggetti (OOP, Object Oriented Programming) in php.

Potrai inoltre cogliere tutta la potenza e la versabilità del Model View Controller seguendo lo sviluppo di una completa applicazione web.

Puoi trovare la demo qui.

Gli articoli in evidenza

Php Trouble Tickets

Metti al top

Script opensource php mysql per la gestione delle richieste degli utenti tramite ticket.

Si tratta di un software gratuito che gira su piattaforme Linux, Windows (Apache).

Permette la completa gestione dei rapporti commerciali, tra voi e i vostri clienti, attraverso il sistema basato sui trouble tickets.

Distribuito sotto licenza MIT ha le seguenti caratteristiche:

  • - Valid css e xhtml strict;
  • - unobtrusive javascript utilizzando il framework jQuery;
  • - multilanguages;
  • - aggiungi/edita/cancella/chiudi/assegna trouble tickets e risposte;
  • - nessuna limitazione sul numero di utenti, amministratori e staff di supporto;
  • - permessi agli operatori, accesso separato utenti;
  • - gruppi di operatori con gestione permessi (CRUD);
  • - illimitate e nested categories;
  • - paging;
  • - moduli di ricerca;
  • - tables sortable;
  • - nessun limite sul numero di TT creabili.

Potete visionare una demo qui.