Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Cookie e Sessioni in Php, Appunti di Elementi di Informatica

Differenze e uso dei Cookie e Sessioni in php

Tipologia: Appunti

2019/2020

Caricato il 28/06/2020

LeoPolder
LeoPolder 🇮🇹

2 documenti

1 / 27

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
I COOKIE
Quando visitiamo i siti di e-commerce notiamo
che anche se non siamo registrati inserendo dei
prodotti nel carrello questo ci si rappresenta allo
stesso modo dopo qualche giorno.
Ma come fanno questi siti web?
Queste informazioni vengono registrate dal
SERVER NEL BROWSER in modo che nella
prossima visita il Server ci possa identificare con
dati come
Quante volte abbiamo visitato questa pagina
Risoluzione del Browser
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b

Anteprima parziale del testo

Scarica Cookie e Sessioni in Php e più Appunti in PDF di Elementi di Informatica solo su Docsity!

I COOKIE

Quando visitiamo i siti di e-commerce notiamo che anche se non siamo registrati inserendo dei prodotti nel carrello questo ci si rappresenta allo stesso modo dopo qualche giorno. Ma come fanno questi siti web? Queste informazioni vengono registrate dal SERVER NEL BROWSER in modo che nella prossima visita il Server ci possa identificare con dati come

  • Quante volte abbiamo visitato questa pagina
  • Risoluzione del Browser

setcookie('numeroDiVisite',1);

Tramite questo comando creiamo un cookie che si chiama ‘numeroDiVisite’ e ha un valore pari ad 1

Una volta premuto sulla parte cerchiata in rosso vediamo nell’Header alcune cose:  L’URL richiesto  Il metodo di Richiesta  Lo status Code 200 vuol dire che è andato a buon fine Dentro Response Headers invece leggiamo cosa ci risponde il server  Ci dice che tipo di contenuto abbiamo  La data  Nome Host  Set- Cookie: numeroDiVisite = 1

Aggiungiamo questo codice dentro il nostro file Per ottenere un Header aggiuntivo. header addizionali alla risposta HTTP da rendere al browser insieme (o in sostituzione) del risultato dello script. Ma cosa sono gli headers? Il browser client durante la navigazione su un sito si sta collegando ad un web server: il browser invierà delle "richieste" ed il server gli ritorna delle "risposte". Queste richieste e queste risposte sono definite headers e contengono al loro interno delle informazoni: alcune sono essenziali per consentire la regolare navigazione altre sono puramente informative. header("Set-Cookiss:numeroDiVisite=1");

Cliccando sul tab Cookie del browser esso ci darà delle informazioni migliori su di loro e sui loro valori. Inserendo questa riga di codice dentro il file cookie2.php setcookie('visitaPaginaCookie',1); Con valore 1 perché se ci mettessimo il valore booleano

Come impostare un cookie dal server al browser Andiamo sul browser e controlliamo il tab Header. In response Header notiamo la risposta del server  Come facciamo per leggere questi cookie che il browser ci sta inviando? Creiamo un file ➔ indexCookie

Keep Alive Cos’è il Keep Alive?  Keep alive è un metodo che consente una conversazione server-client HTTP sulla stessa connessione TCP, invece che aprirne una per ogni nuova richiesta. In altre parole, è una comunicazione tra il web server e il browser che dichiara “puoi scaricare più di un file alla volta”. Il Keep Alive viene anche chiamato “Connessione persistente/persistant connection” e permette di ridurre i tempi di download delle risorse necessarie a comporre una pagina web.

Leggere i Cookie inviati dal browser Le informazioni sui cookie si trovano dentro l’array $_COOKIE /* Oltre al nome abbiamo anche il valore dell'elemento corrente. */ foreach($_COOKIE as $name => $value){ echo "$name =$value
" ; Ricarichiamo la pagina e vediamo

Differenze  il cookie _numerodiVisite non sarà disponibile dentro il $COOKIE questo perché questo l’array viene popolato quando il browser richiede il cookie.Solo nella prossima volta che verrà visita questa pagina il cookie verrà caricato nell’array.

Eliminare cookie Il trucco è quello di usare di nuovo setcookie e inserire anche la data di scadenza impostata nel passato $tempo = time() - 3600 //3600 secondi = 1 ora setcookie('testcookie', ‘’,) Il tempo è in Unix Epoch date ➔ 1 Gennaio 1970 Usiamo la funzione time() ci ritorna quanti secondi sono passati dal 1970 fino ad adesso – 1 ora vuol dire che ho impostato il cookie nel passato! Quindi il browser capisce che è scaduto e non lo manda più

Inserimento di un tempo di vita del cookie alla pagina index.php //Inseriamo un tempo di vita del cookie $time = time()+3600; if(!isset($_COOKIE['numeroDiVisite'])){ //aggiungiamo la variabile $time setcookie('numeroDiVisite',1, $time); } Adesso se torniamo sulla pagina Coookie.php notiamo che ancora non esiste il cookie perché non ho rilanciato la pagina index.php Se lanciamo la pagina index.php noteremo come ci ridà la variabile NULL (Esattamente come qualche slide fa) Ricaricando di nuovo la pagina il valore non sarà Più Undefined questo perché il browser ci invierà quel cookie ma avremo:

Output buffering per eliminare l’errore Header already sent Quando inizializziamo un cookie o creiamo una sessione che imposta un cookie succede che se noi lasciamo uno spazio vuoto appare questo errore. Ricordiamoci che un cookie è un Header della pagina HTML. Prima vengono inviati gli Headers e poi il contenuto della pagina. Creaiamo un file outputbuffer.php  Inseriamo qui una riga vuota

Pulizia buffer Per visualizzare l’errore allora utilizziamo una funzione per la pulizia del buffer e in più proviamo a mandare qualcosa al browser come un tag HTML

Ciao a tutti;** setcookie('ilMioCookie',1); Quindi prima pulisco il buffer poi mando la stringa ciao al browser e poi un cookie. Il messaggio di Warning vuol dire che appena io mando la stringa Ciao a tutti al browser, tutti gli header sono stati inviati e io non posso mandare un altro header per impostare il cookie. Quindi che possiamo fare ??

Soluzione Possiamo fare come già impostato nel server cioè avere l’output Buffering

Ciao a tutti.';** _setcookie('ilMioCookie',1); Ma in questo modo torniamo come prima, cioè non succede nulla perché si mette tutto nel buffer. Allora inizializziamo noi stessi il buffer con: ob_start(); Messa prima dell’echo. Notiamo che comunque anche lanciando il buffer La pagina ricaricata non mi torna nulla._