Home | Search | Help  
Home Page Università di Genova

Esercitazione 5

In questa esercitazione - come prima cosa - verifichiamo l'accesso al server MySQL.

Si presenta una schermata di phpmyadmin dove 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

Mi è stato segnalato un client grafico per MySQL che gira sotto windows: MySQL-Front.

Inoltre, potete consultare i link oppure scaricarvi un manuale di PHP in formato guida per Windows.


Se tutto funziona passate all'Esercizio 1 sui cookies.

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 cookies 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ù cookies 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 cookies 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

    Di solito i cookies 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" : "");
	}

*****************************************************************************


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