Area Privata

L’area privata è riservata agli utenti registrati. Da qui è possibile modificare i propri dati utente e visualizzare le proprie prenotazioni elencate in ordine di invio.
Sui dati utente utilizzo un “approccio misto”. La visualizzazione è gestita dall’utilizzo delle API che quindi prendono l’id dell’utente salvato nella session e, utilizzando il metodo GET, fanno una query al db che restituisce tutti i dati dell’utente che mi servono a creare il form. Se l’utente decide di modificare i propri dati il form, attraverso il click sul tasto “modifica”, interagisce invece con lo script php scritto in cima alla pagina che, molto similmente a quello descritto nella pagina di registrazione, effettua l’Update del database. Per quanto riguarda la prenotazione invece utilizzo solo metodi delle API. Uso la funzione “reservationShow” che utilizza il metodo GET sulla tabella prenotazione e non passo ulteriori parametri. Questa funzione andrà a vedere quale riga della tabella corrisponde all’userID dell’utente da cui è stata richiamata e stamperà tutte le prenotazioni effettuate da quell’utente. L’utente ha la possibilità di cancellare la prenotazione cliccando sulla X nella riga corrispondente. Al click del tasto, verrà richiamata la funzione “reservationDelete”, che,
PAGINA 6
a seguito di una richiesta di conferma tramite un “confirm”, effettuerà la rimozione usando il metodo DELETE prendendo come input l’id della prenotazione.

Area Admin

Accessibile esclusivamente all’amministratore o agli amministratori permette di visualizzare tutte le prenotazioni effettuate nella struttura, consente la modifica dei giorni prenotati e la cancellazione. La tabella mostrerà le prenotazioni un mese per volta partendo dal mese corrente ed è possibile cambiare il mese/anno visualizzato agendo sulla select.
La pagina “admin.php” viene formata utilizzando le api del nostro web service. Al caricamento della pagina uno script javascript richiama la funzione “reservationAdminShow” dando come input il mese, anno corrente e utilizzando il metodo GETADMIN reperisce dal server tutte le informazioni necessarie a formare una tabella con le prenotazioni del mese corrente. Visualizzeremo, oltre ai dati della prenotazione (relativi alla tabella “prenotazione” del db), anche quelli relativi all’utente (tabella “users”) che l’ha effettuata, così, un eventuale amministratore, sarà subito in grado di capire chi andrà ad occupare la propria struttura. Al click dell’admin sul tasto “E” appariranno sotto la tabella delle caselle di input formate dalla funzione “reservationEdit”, modificati i campi al click su modifica verrà chiamata la funzione “reservationChange” che utilizza il metodo PUT per fare l’update del database. Inoltre è possibile cancellare la data di prenotazione utilizzando il metodo DELETE già descritto prima.

Database

Il database è formato da una tabella chiamata “users” in cui sono presenti i dati degli utenti registrati formata dalle seguenti colonne: “userID” (chiave principale con Auto-Increment), “Nome”, “Cognome”, “email” (che viene usato per il login), “password” criptata con la funzione php “password_hash” e un ultimo campo “admin” con valore impostato di default a 0 (zero) che modificato a 1 determina chi ha accesso all’erea admin del sito web.

La seconda tabella invece è chiamata prenotazione e sono presenti i seguenti campi: reservationID(chiave principale con Auto-Increment), userID (relazionato con la tabella users), day (giorno prenotato), month(mese della prenotazione) e year. Le date così create sono di tipo stringa per una più facile interazione con gli script da me creati.

La tabella prenotazione è vincolata alla tabella users con la colonna userID che è impostata “No Action” su “on delete” e “cascade” su “on update” in modo che se venisse modificato l’userID di un utente la modifica verrebbe riportata anche sulla tabella prenotazione però se venisse cancellato un utente la tabella prenotazione non subirebbe nessuna modifica così da non perdere traccia dell’eventuale prenotazione.

Per avere codice sorgente o altre info contattatemi!

Il sito è raggiungibile cliccando QUI !

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *