Esercitazione 4
|
- Prima parte: creazione di un cookie
- Seconda parte: accesso a MySQL
- Terza parte: variabili di sessione
- Alcuni link e risorse
|
|
Prima parte: personalizzazione del look&feel dell'interfaccia
mediante un cookie.
Vi ricordo che un cookie è una piccola quantità di
informazione (una stringa di testo) che viene scritta da un server web in un
browser (client) durante una connessione HTTP.
Tutte le volte che si apre un browser, il file contenente i cookie viene caricato
nella sua memoria cache. Ogni volta che dal browser parte una richiesta per una
pagina residente su un determinato server, se esistono uno o più cookie generati
in precedenza da quel server, questi verranno inviati al server come parte dell'header
della richiesta HTTP.
|
Ogni cookie, oltre al nome e al valore ha quattro attributi opzionali:
- expires, che specifica la validità (o durata) del cookie.
- path, che specifica l'indirizzo delle pagine web cui è associato il cookie.
In genere, un cookie è accessibile (leggibile e scrivibile) solo dalla pagina web
che lo ha creato e da tutte quelle pagine che sono nella stessa directory (o nelle sue
sotto-directory). Con l'attributo path si può specificare
quali altre pagine possono usare il cookie.
- domain, che si usa nel caso di siti di grosse dimensioni che si appoggiano su
più server. Specificando per esempio .netscape.com, i cookie saranno validi
per i domini www.netscape.com, devedge.netscape.com, channels.netscape.com.
Per motivi di sicurezza e privacy non è possibile specificare nell'attributo
domain valori di domini di primo livello (.net, .com, .it, ...).
Se non si specifica nessun valore per l'attributo domain, il server
è quello in cui risiede la pagina che ha creato il cookie.
- secure, che specifica se il cookie è trasmesso attraverso una connessione
sicura (secure=true) oppure no (secure=false).
Esercizi
- Generazione di un cookie in PHP
- Create una
finta
home page (index.php) con un link ad una pagina di personalizzazione.
- Nella
pagina
di personalizzazione scrivete un modulo simile a quello della figura.
- L'utente, dopo aver scelto uno schema di colore, deve selezionare il pulsante
Personalizza; così facendo si invoca un programma PHP che crea un cookie
per tenere traccia delle sue scelte.
Per semplicità codificate le preferenze nel valore del cookie
(in realtà si dovrebbero mettere le preferenze in un database e un codice nel cookie).
- Tornate all'home page, che questa volta dovrà avere
lo schema
di colore appena scelto dall'utente.
- Generazione di un cookie in JavaScript
Da fare al termine dell'esercitazione, se rimane tempo e se avete voglia
Di solito i cookie vengono generati mediante programmi residenti su server remoti ma è
possibile - anche se non molto frequente - usare JavaScript per la loro creazione
(sfruttando la proprietà cookie dell'oggetto document).
Esistono in rete delle funzioni che permettono di creare un cookie
(associandovi un nome, un valore, una data di scadenza, ...), di leggere il valore di un
cookie, di cancellare un cookie ...
Ad esempio, potete provare a capire e ad usare le funzioni seguenti per rifare l'Esercizio 1
completamente lato client.
*****************************************************************************
// cookies.js
// Derived from the Bill Dortch code at http://www.hidaho.com/cookies/cookie.txt
var today = new Date();
var expiry = new Date(today.getTime() + 365 * 24 * 60 * 60 * 1000);
function getCookieVal (offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1) { endstr = document.cookie.length; }
return unescape(document.cookie.substring(offset, endstr));
}
function GetCookie (name) {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg) {
return getCookieVal (j);
}
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}
function DeleteCookie (name,path,domain) {
if (GetCookie(name)) {
document.cookie = name + "=" +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
"; expires=Thu, 01-Jan-70 00:00:01 GMT";
}
}
function SetCookie (name,value,expires,path,domain,secure) {
document.cookie = name + "=" + escape (value) +
((expires) ? "; expires=" + expires.toGMTString() : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "");
}
*****************************************************************************
|
Seconda parte: accesso a MySQL
Nella pagina inziale di phpmyadmin
dovete salvare un database con lo stesso nome del vostro utente MySQL. A questo punto
potete creare, cancellare, modificare le tabelle del database appena creato.
Nota: perchè tutto funzioni dovete abilitare SSL nel browser.
|
Terza parte: variabili di sessione
Create nel vostro database una tabella utenti.
Per ogni utente memorizzate
username, password, cognome, nome, ...
(per la password sarebbe opportuno memorizzare le informazioni in modo cifrato).
Scrivete poi 4 file PHP:
- Il file login.php dovrà presentare all'utente un modulo
per l'accesso al sistema nel quale vengono richiesti username e password.
- Il file checklogin.php deve raccogliere i dati in arrivo e
verificare se si tratta di un utente autorizzato oppure no.
Se l'autenticazione va a buon fine, si deve creare una variabile di sessione
che deve essere utilizzata da tutti quei file PHP che necessitano di un accesso
riservato.
Se username e password sono corretti, presentate all'utente una pagina con due link,
uno che rimanda al file modprofilo.php l'altro che rimanda al file
logout.php.
- modprofilo.php dovrà permettere all'utente di modificare i propri
dati personali (e quindi dovrà presentare un modulo con i campi già compilati,
andando a leggere i valori dal database).
Nota: si deve fare particolare attenzione a non permettere la modifica
sull'attributo che è la chiave primaria nella tabella e fare un po' di
attenzione alla password ...
- Il file logout.php deve invece chiudere la sessione e rimandare in un'altra
pagina, va benissimo "l'home page" (login.php).
|
Alcuni link e risorse
Mi è stato segnalato un client grafico per MySQL che gira sotto windows:
MySQL-Front.
Inoltre, per maggiori informazioni, potete consultare i link
Potete anche scaricare un
manuale
di PHP in formato guida per Windows.
|
|
|