2010-04-01 18 views

risposta

24

HTTP Cookies non sono una funzionalità di PHP, né una funzionalità di Javascript: questi sono solo linguaggi di programmazione che consentono a uno sviluppatore di manipolarli.


La più grande differenza tra il JS e PHP è che:

  • Javascript viene eseguito sul lato client
  • PHP viene eseguito sul lato server

Ma i biscotti sono sempre gli stessi: sono definiti come standard: vedere RFC 2965.


Eppure, notare che i browser moderni implementano i cookie che non sono accessibili da Javascript (vedere l'opzione httponly di setcookie) - il che significa che, a seconda del browser, e il modo in cui un cookie è stato impostato, esso potrebbe non essere accessibile da Javascript.

Si tratta di una misura di sicurezza - e non è una differenza tra "js cookie" e "cookie php": è solo una proprietà di alcuni cookie.

+0

E la proprietà 'httponly' può essere cambiata facilmente dal client usando alcuni add-on gratuiti come _EditThisCookie_ Chrome Extension. – Ankit

0

Un cookie è solo un file memorizzato sul computer client e in genere contiene un nome, un valore e una scadenza. I cookie vengono inviati all'interno dell'intestazione di una richiesta di pagina HTTP, quindi non sono immediatamente disponibili (a meno che non si utilizzi il buffering dell'output). I cookie vanno bene per i dati non sensibili, poiché sono facilmente reperibili tramite le impostazioni del browser client.

I cookie possono anche essere utilizzati per creare variabili di sessione, che sono memorizzate sul server. In questo caso, il valore del cookie è un indice utilizzato dal server per identificare i suoi valori. Questo è un approccio migliore per i dati più sensibili, poiché solo un valore "senza significato" risiede sul computer client.

Con questo in mente, i dati di cookie e sessione (così come i dati GET e POST) sono variabili Super Global, il che significa che possono essere utilizzati sia da JavaScript sia da PHP. Di nuovo, l'unico problema è che i cookie potrebbero non essere immediatamente disponibili, a seconda di come funziona lo script e delle impostazioni di buffering dell'output.