PHP: form HTML, database, sessione
Teoria da conoscere: spunti per lo studio
•
•
•
•
•
•
•
•
•
•
conoscere la differenza fra pagine web statiche e dinamiche
motivare la necessità di un server web per elaborare le pagine web dinamiche
differenza fra i metodi POST e GET nella richiesta di una pagina web. In particolare conoscere come vengono passati dei
parametri tramite metodo GET direttamente da url Saper costruire un url GET con parametri (nome variabile e valore) dati in
modo da creare dei semplici link
form HTML:
•
attributi action e method del tag form
•
principali tipi di input (input text, password , checkbox, radio, textarea, reset, submit , select(menù a tendina) )
•
necessità di un nome per ogni variabile
•
gestione di input multipli come vettore (per i checkbox o i menù a tendina a selezione multipla)
sintassi minima per la creazione di una pagina php: tag <?php …. ?> e tag rapidi per l'inserimento del valore di una
variabile in codice html : <?=$VARIABILE?>
passaggio di parametri da form tramite il vettore $_REQUEST[ “nomevariabile” ]
connessione ad un database MYSQL
•
creazione della connessione: $conn = new mysqli($hostname, $username, $password, $database );
•
esecuzione di una query:
$query = "SELECT * FROM tabella_esempio";
$result= $conn->query($query);
inserimento,aggiornamento e rimozione di un record dal database (uso dei comandi SQL insert, update, delete e della
funzione php query($query);
La query potrebbe essere costruita concatenando dati provenienti da un form html. Es:
$query=
”SELECT * FROM utenti WHERE username='” . $_REQUEST[“utente”] .
”' AND password='”.$_REQUEST[“password”] . ”';”
•
estrazione e stampa dei dati di una tabella con cicli for e foreach:
•
funzione $num= $ris->num_rows ;
•
funzione $row=$ris->fetch_assoc();
•
impaginazione della tabella con nome dei campi nell'intestazione
•
aggiunta di un link ad una pagina di modifica del record e ad una di eliminazione tramite passaggio della
chiave primaria come variabile GET
gestione della sessione con il php, ovvero come creare una pagina di login e altre pagine ad accesso riservato solo a
persone accreditate
•
uso della funzione session_start(); per attivare o ripristinare una sessione attiva
•
uso della funzione session_destroy(); per eliminare una sessione, ovvero per causare il logout
•
uso della variabile $_SESSION[“...”] per memorizzare dati relativi all'utente
•
esempio con
•
semplice pagina html con form di login che rimanda alla seguente
•
pagina php di login che verifica le credenziali inviati dal form. Se tali credenziali (username e password)
coincidono con quelle richieste ( con quelle di una variabile PHP definita dal programmatore, ovvero ad un
record presente in apposita tabella utenti di un database mysql) imposterà la una variabile
$_SESSION[“abilitato”]=1. In caso contrario la sessione verrà resettata con session_destroy(); e verrà
comunicato un messaggio di errore.
•
pagina di logout: verrà semplicemente richiamata la funzione session_destroy();
•
pagina ad accesso riservato: verrà innanzitutto ripristinata la sessione (se esistente) con session_start();
Quindi nel caso la suddetta variabile $_SESSION[“abilitato”]==1 esista sia uguale ad 1, l'utente sarà
accreditato e potrà visualizzare la pagina. In caso contrario anziché stampare la pagina verrà comunicato
un messaggio di errore.
Conoscenza minima del linguaggio SQL: in particolare di comandi CREATE TABLE, INSERT, UPDATE, DELETE, SELECT
NB: su http://labepina.altervista.org vi sono due dispense integrative con spiegazione ed
esempi, oltre ai già noti esempi già caricati sul sito
Spunti per progetto finale
Devi predisporre un'applicazione per la gestione della vendita di libri usati.
•
predisponi una tabella con l'elenco dei libri in vendita (codice_univoco_libro, codice_ISBN, titolo, autore, editore, prezzo,
email_venditore, venduto_si_no) ed una con l'elenco delle prenotazioni (email_acquirente, data_ora, codice_libro)
•
predisponi due pagine (una per il form html, una in php per inserire il record) per inserire un nuovo libro in vendita
•
predisponi una pagina per mostrare l'elenco dei libri in vendita, senza mostrare l'indirizzo email del venditore. In tale pagina
per ogni record dovrà anche comparire un link per l'acquisto del libro: tramite link con passaggio di parametri con metodo
GET (es: <a href='compera.php?idlibro=234'>Compra</a> ) ridirigere ad una pagina con form per la prenotazioni
dell'acquisto. Il campo idlibro dovrà risultare precompilato, ovvero memorizzato in variabile input di tipo hidden.
•
un'ulteriore pagina servirà per inserire la richiesta di acquisto del precedente form nel database
•
creare una prima pagina con un form per l'inserimento dell'email del venditore. Una seconda pagina mostrerà le richieste di
acquisto di tale venditore.
•
modificare l'applicazione aggiungendo una tabella con campi: email_venditore, password. L'accesso all'elenco delle
richieste di acquisto sarà visibile solo specificando, oltre all'indirizzo email, anche la password corretta
•
perfezionare il punto precedente implementando un sistema per la gestione della sessione. Sarà creata, oltre che una
pagina per il login e per il logout, anche una pagina per la registrazione di un nuovo utente
•
inserisci le tue pagine php in un articolo del tuo sito WordPress aggiungendole come link al menù oppure modificando un
articolo in modo testo (non visuale) ed inserendo il codice html
<iframe src='tua_pagina.php' style='width:100%; height: 400px;'> </iframe>