Home | Search | Help  
Home Page Università di Genova

Esercitazione 4

  1. Prima parte: creazione di un cookie
  2. Seconda parte: accesso a MySQL
  3. Terza parte: variabili di sessione
  4. 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:
  1. expires, che specifica la validità (o durata) del cookie.

  2. 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.

  3. 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.

  4. secure, che specifica se il cookie è trasmesso attraverso una connessione sicura (secure=true) oppure no (secure=false).

Esercizi
  1. Generazione di un cookie in PHP

    1. Create una finta home page (index.php) con un link ad una pagina di personalizzazione.

    2. Nella pagina di personalizzazione scrivete un modulo simile a quello della figura.

    3. 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).

    4. Tornate all'home page, che questa volta dovrà avere lo schema di colore appena scelto dall'utente.


  2. 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:
  1. Il file login.php dovrà presentare all'utente un modulo per l'accesso al sistema nel quale vengono richiesti username e password.

  2. 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.

  3. 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 ...

  4. 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.


vai alla lezione precedente
torna alla prima pagina del corso
vai alla prossima lezione