



















Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Differenze e uso dei Cookie e Sessioni in php
Tipologia: Appunti
1 / 27
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!




















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