MODULO 1 PARTE 3. Programmazione (scripting) server-side con PHP 3.c Cookies e sessioni. Goy - a.a. 2012/2013 Programmazione Web 1



Documenti analoghi
Web Programming. Lezione 4: Cookie e Sessioni. Giulio Rossetti 14/04/2011. Guru@Work

Gestire le sessioni con le Servlet

Dott.ssa Maria Vittoria Avolio. Dott.ssa Adriana Pietramala

Corso di PHP. Prerequisiti. 6.1 PHP e il web 1. Conoscenza HTML Tecnica della programmazione Principi di programmazione web

Utilizzo dei Cookie Cosa sono i cookie? A cosa servono i cookie? cookie tecnici cookie, detti analitici cookie di profilazione

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

ImporterOne Manuale Export Plugin Prestashop

filrbox Guida all uso dell interfaccia WEB Pag. 1 di 44

Utilizzo dei Cookie Cosa sono i cookie? A cosa servono i cookie? cookie tecnici cookie, detti analitici cookie di profilazione

Per accedere clicca su START o AVVIO (in basso a sinistra sul tuo schermo), poi su PROGRAMMI, ACCESSORI e infine su BLOCCO NOTE.

GUIDA AL PRONTUARIO MOBILE

creare la tua vetrina MMSHOPS

PSNET UC RUPAR PIEMONTE MANUALE OPERATIVO

Guida al sistema. Dott. Enea Belloni

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

filrbox Guida all uso dell applicazione DESKTOP Pag. 1 di 27

INSTALLAZIONE DI JOOMLA! Guida alla installazione di Joomla!

PHP e Structured Query Language

Sistema Informativo Gestione Fidelizzazione Clienti MANUALE D USO

<?php include './include/page.php';

MANUALE UTENTE Fiscali Free

FtpZone Guida all uso

Guida al sistema Digitale TV

Manuale servizio Webmail. Introduzione alle Webmail...2 Webmail classica (SquirrelMail)...3 Webmail nuova (RoundCube)...8

Guida iscrizione Community. istruzione.social.marche.it

Impostare il browser per navigare in sicurezza Opzioni di protezione

Indice generale. Il BACK-END...3 COME CONFIGURARE JOOMLA...4 Sito...4 Locale...5 Contenuti...5

Scrivere uno script php che, dato un array associativo PERSONE le cui chiavi sono i

Interfaccia di base di GroupWise WebAccess

Internet Explorer 6. Gestione cookie

Tener traccia del client

Esercizi di JavaScript

GESGOLF SMS ONLINE. Manuale per l utente

UTILIZZO DEI COOKIES (informativa conforme al Provvedimento del Garante Privacy del 8 Maggio 2014)

INFORMATIVA IN MATERIA DI COOKIE! Digital Dictionary Servizi s.r.l. Milano via Paleocapa 1, (MI) P.IVA/CF: REA: MI

RICICLIAMO L'USATO. ISTRUZIONE PER L'UTILIZZO DELLA BACHECA ON-LINE rev. del 11/11/2012

INFORMATIVA SUI COOKIE

Manuale LiveBox WEB ADMIN.

Sommario Impostazioni generali del BROWSER... 2 Procedura di registrazione... 9 Primo Accesso Accesso al Portale... 18

Bibliografia: Utenti e sessioni

Guida di Opzioni Fiery 1.3 (client)

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Navigazione Web e comunicazione Utilizzo del Browser Navigazione di base

Uso della posta elettronica Invio di un messaggio

Manuale LiveBox WEB ADMIN.

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo

LA CASELLA PEC Dipartimentale

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

Cookie: è scaduto il 2 giugno il termine per mettersi in regola con le prescrizioni del Garante

Manuale per i redattori del sito web OttoInforma

ImporterONE Export Plugin Magento

POLICY COOKIE Gentile visitatore,

Java Server Pages (JSP) JSP o Servlet? Java Server Pages (JSP) Java Server Pages Costituiscono un estensione della tecnologia delle servlet

CONTENUTI 1. INTRODUZIONE CONCETTI BASICI SU EQUINOX CMS XPRESS ACCESSO A EQUINOX CMS XPRESS PAGINA D INIZIO...

LA COOKIE POLICY DI QUESTO SITO

Manuale servizio ScambioDati

Introduzione allo sviluppo Web. Studium Generale, a.a , II semestre

ammesso solo con il tuo consenso. Le modifiche apportate hanno lo scopo di semplificare il controllo di quali

Palazzetto del Biliardo Tournaments

Guida al sistema Bando GiovaniSì

Informativa sui cookie secondo la normativa europea

GUIDA ALL USO DEL PANNELLO DI GESTIONE SITO WEB

Spese Sanitarie 730. Manuale d'uso

Registrazione nuovo utente. Per registrare un nuovo utente cliccare sul link Registrazione

Istruzioni per il programma ANDI

Il Web Server e il protocollo HTTP

Comandi di Internet Explorer per aprire, chiudere e formattare la finestra Comando a menu

FPf per Windows 3.1. Guida all uso

Guida informatica per l associazione #IDEA

Utilizzo dei Cookie Cosa sono i cookie? A cosa servono i cookie? cookie tecnici cookie, detti analitici cookie di profilazione

AGGIORNAMENTO DATI SU PORTALE DOCENTI

Sistema Gestionale FIPRO. Dott. Enea Belloni Ing. Andrea Montagnani

SPORTELLO UNICO DELLE ATTIVITÀ PRODUTTIVE MANUALE OPERATIVO FUNZIONI DI PAGAMENTO ONLINE. Versione 05

Cookie Policy per

Cookie e Webstorage. Vediamo ora i metodi dell oggetto localstorage. Per memorizzare un valore si utilizza il metodo setitem:

Product Shipping Cost Guida d'installazione ed Utilizzo

Configurare un client di posta per gestire la propria casella di posta elettronica certificata su Aruba

3. Creare siti e classi digitali

Veneto Lavoro via Ca' Marcello 67/b, Venezia-Mestre tel.: 041/

FtpZone Guida all uso Versione 2.1

Guida alla procedura di inserimento materiale didattico sui minisiti degli insegnamenti

Client - Server. Client Web: il BROWSER

WEB-RECALL: GESTIONE DEI TICKETS DI ASSISTENZA

TITOLARE DEL TRATTAMENTO Il "titolare" del trattamento di eventuali dati personali rilevati a seguito della consultazione del sito è SEVAL S.r.l.

PANNELLO DI CONTROLLO

Consultazione Documenti

MANUALE UTENTE - INDICE GEN

YOUTUBE: UN CANALE PER LA PARTECIPAZIONE

e/fiscali - Rel e/fiscali Installazione

POSTECERT POST CERTIFICATA GUIDA ALL USO DELLA WEBMAIL

Portale Suap SPORVIC2 Manuale Prerequisiti tecnici di sistema

Internet Explorer 7. Gestione cookie

ISTR Uso del Windows Messenger

Fattura Facile. In questo menù sono raggruppati, per tipologia, tutti i comandi che permettono di gestire la manutenzione degli archivi.

Come utilizzare il nuovo HelpDesk Maggioli Informatica

Fiery Driver Configurator

Lavorare con le immagini

PORTALE CLIENTI Manuale utente

MAT[CH]move online Guida

Transcript:

MODULO 1 PARTE 3 Programmazione (scripting) server-side con PHP 3.c Cookies e sessioni Goy - a.a. 2012/2013 Programmazione Web 1 Cookie - I Cookie = variabili che il server salva (*) sul client come file (per es, su Windows XP, Firefox 3 li salva in: C:\Documents and Settings\user\Dati applicazioni\mozilla\firefox\profiles\id_code.default\cookies.sqlite (*) Tradizionalmente (Firefox 2) erano file di testo, adesso (Firefox 3) sono file sqlite (http://www.sqlite.org/) Per utilizzarli è necessario che il client "accetti" i cookies è possibile modificare la configurazione del browser! L'utente può cancellarli! non sono un metodo tanto affidabile per mantenere informazioni importanti Per es, con Firefox 3: Strumenti Opzioni Privacy Goy - a.a. 2012/2013 Programmazione Web 2 1

Cookie - II Un cookie, generalmente, contiene: il nome del cookie un valore un identificativo del server che lo ha prodotto una data di scadenza NB: Un server può leggere solo i cookies che lui stesso ha scritto! (il controllo viene effettuato grazie all id del server contenuto nel cookie) Goy - a.a. 2012/2013 Programmazione Web 3 PHP: cookie - I E' possibile scrivere e leggere cookie utilizzando PHP Per scrivere un cookie, utilizzo la funzione predefinita setcookie( ): restituisce la data corrente (misurata in nome del cookie secondi dalla Unix Epoch: 1/1/1970) setcookie( "punti", "10", time() + 2592000, ); scadenza del cookie (opzionale): valore (opzionale) a 30 gg (2.592.000 sec) da oggi Per leggere un cookie utilizzo l array associativo $_COOKIE[]: $puntiaccum = $_COOKIE["punti"]; Attenzione! I cookie sono inviati nell'intestazione (header) di HTTP response bisogna invocare la funzione setcookie( ) prima che il contenuto (body) venga generato, cioè all inizio della pagina (prima di qualunque altra cosa prima del tag <HTML> per es..)!!! Goy - a.a. 2012/2013 Programmazione Web 4 2

PHP: cookie - II VEDI es-cookie.html Per es, chiediamo all'utente nome, cognome e colore preferito; scriviamo queste informazioni in un 3 cookies; poi leggiamo le informazioni dai cookie e personalizziamo la pagina Nel file es-cookie.html: <FORM METHOD="POST" ACTION="personalCookie1.php" > Nome: <INPUT TYPE="TEXT" NAME="nome"/><BR> Cognome: <INPUT TYPE="TEXT" NAME="cognome"/><BR><BR> Quale colore di sfondo preferisci? <SELECT NAME="colore"> <OPTION VALUE="#FFFFFF">bianco</OPTION> <OPTION VALUE="#FFFF00">giallo</OPTION> <OPTION VALUE="#FF0000">rosso</OPTION> <OPTION VALUE="#00FF66">verde</OPTION> <OPTION VALUE="#00FFFF">azzurro</OPTION> </SELECT> <BR><BR> <INPUT TYPE="Submit" VALUE="OK"/> </FORM> Goy - a.a. 2012/2013 Programmazione Web 5 PHP: cookie - III VEDI personalcookie1.php Nel file personalcookie1.php (scrittura di un cookie): $n = $_POST["nome"]; $cn = $_POST["cognome"]; $col = $_POST["colore"]; setcookie("nome", $n, time()+2592000); setcookie("cogn", $nc, time()+2592000); setcookie("sfondo", $col, time()+2592000);?> <P ALIGN='CENTER'> Ho scritto tre cookie con le seguenti informazioni: echo "<BR>Nome = ". $n; echo "<BR>Cognome = ". $cn; echo "<BR>Colore di sfondo preferito = ". $col;?> </P> Goy - a.a. 2012/2013 Programmazione Web 6 3

PHP: cookie - IV Chiudiamo il browser, lo riapriamo (simulando così una nuova sessione di lavoro) e ci connettiamo a personalcookie2.php Nel file personalcookie2.php (lettura di un cookie): VEDI personalcookie2.php p $nome = $_COOKIE["nome"]; $cognome = $_COOKIE["cogn"]; $sfondo = $_COOKIE["sfondo"]; echo "<BODY BGCOLOR=$sfondo>";?> <P ALIGN='CENTER'> echo "Buongiorno ". $nome. " ". $cognome. "!"; echo "<BR>Ti piace questo sfondo ($sfondo)?";?> </P> Goy - a.a. 2012/2013 Programmazione Web 7 PHP: sessioni - I Sessione = serie di accessi ad un sito web, effettuati da uno stesso client, in un arco di tempo delimitato, durante il quale viene mantenuto t uno stato t dell'interazione i sito web sessione1 sessione2 utente1 utente2 sessione3 utente3 ecc ecc Inizio di una sessione: il Web Server crea automaticamente un oggetto session, con ID univoco, per ogni client che si connette al sito web Fine di una sessione: quando scade (timeout) vedi php.ini: session.gc_maxlifetime = 1440 [secondi] = 24 minuti quando viene eseguito il seguente script PHP: session_unset(); session_destroy(); quando viene chiuso il browser resetta le variabili di sessione [vedi lucidi succ.] distrugge l'oggetto session Goy - a.a. 2012/2013 Programmazione Web 8 4

PHP: sessioni - II session_start(); funzione PHP che verifica se l'utente ha già un sessionid (cioè se c'è già una sessione attiva per quell'utente): se non lo trova ne crea uno, altrimenti recupera i dati sullo stato della sessione attiva NB: anche se è controintuitivo, session_start() deve essere invocata ogni volta che si vuole accedere a informazioni sulla sessione! Attenzione! La funzione session_start() invia al client delle informazioni nell'intestazione (header) di HTTP response bisogna invocare la funzione session_start() prima che il contenuto (body) di HTTP response venga generato, cioè all inizio della pagina (prima di qualunque altra cosa, anche di uno spazio bianco)!!! Goy - a.a. 2012/2013 Programmazione Web 9 PHP: sessioni - III Se non lo facciamo, per es: <HTML> session_ start(); Otteniamo un messaggio di errore (warning = errore non grave) del tipo: Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\xampp\htdocs\corsoPW\php\provaSessione2.php:13) in C:\xampp\htdocs\corsoPW\php\provaSessione2.php on line 41 che ci dice appunto che non può inviare un session cookie perché l intestazione (header) è già stata inviata (la riga 41 è appunto quella in cui viene erroneamente invocata session_start()) Goy - a.a. 2012/2013 Programmazione Web 10 5

PHP: sessioni - IV Ma perché?!? Per gestire la sessione PHP ha a disposizione 2 meccanismi: 1. cookie 2. URL rewriting Vi ricordate? Le operazioni sui cookies vengono fatte tramite l'intestazione (header) di HTTP response per questo la funzione session_start() (che utilizza il meccanismo dei cookies per scrivere e leggere il sessionid) deve essere invocata prima che il contenuto (body) di HTTP response venga generato, cioè all inizio della pagina (prima di qualunque altra cosa, anche di uno spazio bianco) Ma se l'utente ha disattivato i cookies sul suo browser le sessioni non funzionano?!? In questo caso PHP utilizza il secondo meccanismo, l'url rewriting Goy - a.a. 2012/2013 Programmazione Web 11 PHP: sessioni - V Se i cookies sono stati disattivati, PHP (session_start()) scrive il sessionid come parametro degli URL nella pagina Per es. se nella pagina vi è un link: <A HREF="adduser.php"> L'interprete t lo sostituisce i con: <A HREF="adduser.php?PHPSESSID=68cf093a2ec5aa4f6cb60"> NB: Per abilitare questa possibilità è necessario configurare le proprietà seguenti in php.ini: session.use_trans_sid = 1 session.use_only_cookies = 0 (o commentata) Nota: Le informazioni i isulla sessione (sessionid, i ecc.) ) vengono salvate (sul server) nella cartella indicata nel file php.ini: session.save_path = "${path}\tmp\" la cartella tmp, sotto C:\xampp\ deve esistere ed essere scrivibile! Goy - a.a. 2012/2013 Programmazione Web 12 6

PHP: sessioni variabili di sessione - I Tutti i dati relativi alla sessione (stato dell'interazione) vengono caricati da PHP nell'array associativo $_SESSION In particolare l'array associativo $_SESSION contiene le variabili di sessione Le variabili di sessione sono variabili "globali al sito", cioè accessibili (visibili) da tutte le pagine del sito, all'interno di una sessione (a differenza delle variabili "normali" la cui visibilità è limitata alla singola pagina) Con PHP, possiamo dichiarare e inizializzare una variabile di sessione, per es: session_start(); leggo lo username (da un form di login, per es) $_SESSION["user"] = $_POST["login"]; lo scrivo in una variabile di sessione Goy - a.a. 2012/2013 Programmazione Web 13 PHP: sessioni variabili di sessione - II In tutte le pagine successive (visitate dopo aver inizializzato la variabile di sessione) sarà possibile leggerne il valore NB: se questo non è possibile, significa che la sessione è scaduta! Per es: session_start(); if ( isset($_session["user"]) ) { //sessione valida funzione che restituisce true se la $_SESSION["user"] } else //sessione scaduta } variabile (passata come parametro) esiste (ed è stata inizializzata), false altrimenti Goy - a.a. 2012/2013 Programmazione Web 14 7

PHP: sessioni var. di sessione - III Esempio: VEDI provasessione1.html VEDI provasessione2.php VEDI provasessione3.php provasessione1.html form di login <INPUT TYPE="TEXT" NAME="login"/> provasessione2.php scrivo in una nuova variabile di sessione (user) il login dell'utente $_SESSION["user"]=$_POST["login"]; provasessione3.php leggo la variabile di sessione user (la stampo), invoco le funzioni session_unset(); session_destroy(); e poi controllo che abbiano fatto il loro lavoro! echo "USER esiste ancora? "; if (isset($_session["user"])) { echo "Sì"; } else { echo "No"; } Goy - a.a. 2012/2013 Programmazione Web 15 PHP: sessioni variabili di sessione - IV possiamo usare le variabili di sessione per due scopi principali: 1) per controllare gli accessi 2) per rendere delle informazioni disponibili nelle pagine successive 1) Controllo degli accessi: login inizializzo una variabile di sessione pagine successive se la variabile è "settata", allora la sessione è valida; se non lo è, significa che la sessione è scaduta se l'utente cerca di accedere ad una pagina del sito senza passare dll dal login, la variabile ibil di sessione non verrà settata e l'accesso sarà impossibile! Goy - a.a. 2012/2013 Programmazione Web 16 8

PHP: sessioni variabili di sessione - V 2) Rendere informazioni disponibili nelle pagine successive: login inizializzo una variabile di sessione pagine successive il contenuto di tale variabile è sempre disponibile se voglio avere disponibile lo username in ogni pagina, basta metterlo in un variabile di sessione! Ho delle alternative per passare delle informazioni da una pagina all'altra? se passo da una form: <INPUT TYPE="hidden" NAME="utente" value=$user/> se passo cliccando su un link: <A HREF="pagSuccessiva.php?utente=$user"> t " Goy - a.a. 2012/2013 Programmazione Web 17 9