HTML.IT|    CORSI IN AULA| ACCESSO FREE| CD-ROM| LIBRI| WEBTOOL       DOWNLOAD| FORUM| MLIST| NEWSLETTER.IT
 BASIC| PRO    ADSL| ASP| B2B| CREA| FLASH-MX| FONT| GIF| HOSTING| LINUX| NEWS| PROGRAMMAZIONE| SICUREZZA









9Net

Link

HOSTING Linux Professionale

Serverplan 20mb + Php + Mysql 24€/anno

Hosting Php+MySQL su Windows e Linux

Protezione firewall
AntiVirus AntiSpam

seeyes: hosting - housing - VPS

Hosting LINUX + php + mysql - 100MB 59 euro!

Dominio gratuito + spazio web illimitato







Gestione dei Cookies


Come ogni buon linguaggio legato alla generazione dinamica di pagine web, anche il PHP consente di gestire i cookies, piccoli file di testo contenenti informazioni utili e non dannose per la gestione delle sessioni sul web.
Essendo il PHP un linguaggio nato per l'interazione con il WWW, le funzioni relative ai Cookies sono interne al PHP stesso, differentemente da come avviene per altri linguaggi, Perl su tutti (a questo proposito, si veda il tutorial sui Cookies in Perl pubblicato su CGIpoint, nonchè la recensione di cookie-lib presente nello stesso sito).

La funzione che ci interessa è solo una: setcookie(). La sua sintassi di base è:


setcookie(Nome, Valore, Espirazione, Percorso, Dominio, Secure);

Vediamo di chiarire le opzioni che si possono passare alla funzione:

  • Nome è il nome del cookie, che può essere arbitrariamente scelto;
  • Valore è il valore, anch'esso arbitrario, da assegnare al cookie;
  • Espirazione è la data di espirazione del cookie;
  • Percorso è la directory, a partire dal dominio (vedi sotto) per la quale il cookie è valido;
  • Dominio è il dominio per il quale il dominio è valido;
  • Secure è un valore che imposta se il cookie debba essere inviato tramite una connessione HTTPS.

    Poniamo di voler inviare dalla nostra pagina un cookie chiamato "Test", con valore "Prova per il cookie Test", con espirazione di un minuto dal momento dell'invio, per la directory "/nomeutente" del dominio "http://www.dominio.com" senza utilizzare una connessione HTTPS: i parametri da passare a setcookie sono:


    setcookie("Test", "Prova per il cookie Test", time()+60, "/nomeutente", ".dominio.com", 0);

    Le cose interessanti da esaminare sono due: il tempo di espirazione e la connessione HTTPS. Per la seconda, impostiamo con "0" che la connessione deve essere una normale connessione HTTP; se volessimo utilizzare il protocollo sicuro HTTPS, dovremo inserire il valore "1". Il tempo di espirazione non può essere impostato come "Tre tre minuti", poichè la cosa non ha tempo: dobbiamo invece impostare il momento di espirazione a partire dal momento in cui il cookie è inviato all'utente; per questo, utilizziamo la funzione interna time() alla quale aggiungiamo il numero di secondi dopo i quali il cookie deve scadere. Ad esempio, se il cookie viene inviato alle 13:20:00 e vogliamo che esso espiri dopo 30 minuti (60x30=1800 secondi) possiamo scrivere come espressione di expire:


    time()+1800

    In questo modo, time() riporta le 13:20:00 e time()+1800 sarà 13:50:00

    Fra i sei valori da passare come argomento al cookie, solamente il primo è obbligatorio: gli altri possono essere lasciati bianchi se non sono di particolare interesse. Inoltre, per l'invio di un cookie, è necessario cheto venga inviato al browser prima di qualsiasi output: è quindi necessario inserire la funzione prima di ogni tag <HTML> o <HEAD>.

    Per finire, vediamo come leggere un determinato cookie da uno script: ricordando che un cookie viene inviato come un array di dati, possiamo ricorrere alle funzioni relative agli array: quindi potremo scrivere ad esempio:


    if (isset ($HTTP_COOKIE_VARS) )
    { while (list ($nome, $valore) = each ( $HTTP_COOKIE_VARS ) )
    { echo "$nome = $valore\n";
    }
    }

    Quindi, per tutte le informazioni inserite nel cookie, verrà visualizzata una coppia "nome = valore": ovviamente, il valore è il valore che voi avete impostato nel cookie, i "nome" sono: cookie, expires, path, domain e secure (quest'ultimo è particolare, visto che se impostato su 1 fa apparire "secure" nel cookie, altrimenti non fa apparire alcunchè).
    Per il nostro cookie di esempio, leggeremo qualcosa del genere:


    cookie=Test; epires=Thursday, expires=Monday, 31-Jul-00 11:50:00 GMT; path=/nomeutente; domain=.dominio.com

    Se avessimo impostato 1 anzichè 0 per il protocollo HTTPS, sarebbe apparso anche "secure" alla fine della stringa. notate un'ultima cosa: la data è gestita di default secondo l'orario GMT: se notate, infatti, l'espirazione è impostata per le 11:50:00 GMT, che sono le 13:50:00 locali.

     











  • Guida a PhpMyAdmin 
    Guida base al Php 
    Guida pratica al PHP 
    Guida pratica Php/MySql 
    Guida su Apache 
    Guida teorica al PHP 
    Php in locale su Windows