# Esempio di Progetto PHP - Moduli (superiori)
## Modulo CapoProgetto

Clicca su uno dei file a sinistra per visualizzare i la spiegazione della creazione e della modifica di un CAPO PROGETTO.

## Modulo Credenziali

Per poter poter accedere ad un proprio progetto, quindi modificarlo, visualizzarlo o cancellarlo è necessario che l’utente inserisca le proprie credenziali. Le credenziali verranno quindi controllate, e se corrette, l’utente potrà accedere ai propri progetti.
Nella pagina iniziale dovrà esserci una form che servirà per inserire le credenziali dell’utente, che verranno poi inviate, tramite submit e l’attributo action, ad una pagina php che controllerà che siano corrette.
Creiamo la pagina ‘inserimentocredenziali.php’ e vi inseriamo una form:
Cliccando sul tasto INVIA CREDENZIALI, i dati della form verranno indirizzati, tramite l’attributo action, ad una seconda pagina (che adesso creeremo) chiamata ‘controllocredenziali.php’ che effettuerà il controllo. Per accertarsi che le credenziali siano corrette bisognerà verificare che nella tabella personale del database siano presenti sia il nickname che la password inseriti. Creiamo la pagina ‘controllocredenziali.php’. Per prima cosa estraiamo i valori della form tramite il metodo post, inserendoli in delle nuove variabili:
Selezioniamo dalla tabella “personale" del database tutti i campi che hanno nickname e password uguali a quelli che l’utente ha inserito. Dopo aver fatto la query estraiamo tramite la funzione “num_rows" il numero di righe ottenute tramite la query e lo salviamo nella variabile “$righe".
Se il numero di righe è maggiore di zero vuol dire che c’è almeno una corrispondenza con le credenziali inserite.
Se il numero delle righe è minore di zero significa che non c’è alcuna corrispondenza e quindi che le credenziali sono errate.

## Modulo Progetti
### Gestione Progetto

Per accedere alla sezione 'Gestisci Progetto' vengono richiesti email e password di un capo progetto attraverso una form. Questi due dati vengono recuperati attraverso una pagina PHP con il metodo POST e salvati fino alla chiusura del sito con il metodo SESSION. Salvarli serve per memorizzare chi è collegato al momento in modo che l'utente possa inserire, modificare, cancellare o visualizzare soltanto i suoi progetti.

###### = Inserimento Progetto =

Per l'inserimento dei dati si richiedono all'utente, attraverso una form, le specifiche del progetto che verranno recuperate nella pagina php con il metodo POST. Si fa dunque l'inserimento dei dati nel database con il seguente pezzo di codice:

###### = Modifica Progetto =

Per la modifica dei dati inseriti precedentemente dall’utente si raccolgono, tramite una form, le varie informazioni modificate che si vogliono sostituire alle precedenti. Le specifiche del progetto verranno recuperate nella pagina php con il metodo POST. Poi si procede alla modifica tramite questa parte di codice:

###### = Cancella Progetto =

Per la cancellazione dei dati si domanda all'utente, tramite una form, il nome del progetto che si vuole eliminare, questo poi verrà recuperato nella pagina php tramite il metodo POST. Poi si procede alla cancellazione tramite questo pezzo di codice:

###### = Visualizza Progetto =

Per visualizzare i dati inseriti nella form si utilizza l'istruzione SELECT. L'istruzione SELECT viene usata per selezionare i dati da una o più tabelle oppureo siamo in grado di utilizzare il carattere * per selezionare tutte le colonne di una tabella. In primo luogo, abbiamo istituito una query SQL che seleziona tutti i campi della tabella progetti dove emailinsegnante='$email'. La prossima riga di codice esegue la query e mette i dati risultanti in una variabile. Poi, i numero_colonne function controlla se ci sono più di zero righe restituite. Se ci sono più di zero righe restituite, la funzione fetch_assoc mette tutti i risultati in un array associativo che possiamo scorrere. Il ciclo while scorre il set di risultati ed emette i dati dalla id progetto, email insegnante, titolo, anno scolastico, e breve descrizione. Il secondo blocco di codice ha lo scopo di verificare se i dati corrispondono all'emailinsegnante. Tutti i dati verranno poi visualizzati in una tabella. Se non hai registrato nessun progetto vedrai un messaggio che te lo dice.

## Modulo Visualizza Progetti

Per visualizzare i progetti creo una form nella pagina principale quindi uno spazio per l’inserimento dell’anno del quale vogliamo visualizzare tutti i progetti. Successivamente inseriamo un bottone che, tramite il metodo action, mi indirizza alla pagina "visualizzaprogetti.php". Creiamo la pagina "visualizzaprogetti.php" e ci connettiamo al database. Per prima cosa estraiamo il valore della form tramite il metodo post, inserendolo in una nuova variabile:
Selezioniamo dalla tabella "progetti" del database tutti i campi che hanno anno scolastico uguale a quello che l’utente ha inserito. Dopo aver fatto la query estraiamo tramite la funzione "num_rows" il numero di righe ottenute tramite la query e lo salviamo nella variabile "$righe". Creiamo una variabile "$i" che ci servirà in seguito e la poniamo uguale a zero.
Se le righe sono minori di 1 la ricerca non ha prodotto risultati. Altrimenti, finché ci sono righe (condizione posta dal while che confronta la variabile "$i", che si incrementa ad ogni ciclo, con il numero delle righe), per ognuna di esse estraggo tramite "mysqli_fetch_array" i campi: id, nome, approvato, pagato, completato; e li salvo in nuove variabili. Chiudo la connessione. Tramite echo stampo i valori. Se $approvato=true allora stampo "approvato" altrimenti stampo "non approvato", così come per "pagato" e "completato". Alla fine inseriamo una form che tramite un bottone ci invia alla pagina per la visualizzazione dell’intero progetto.