For å begynne med den siste først, du kan ikke sette httponly ettersom det betyr at cookien ikke er tilgjengelig fra javascript, og derfor kan du selvfølgelig heller ikke lage slike cookies i javascript.
Forøvrig er det likt, her er javascript
PHP:
document.cookie = "name=value; expires=date; path=path; domain=domain; secure";
og PHP
PHP:
setcookie ( $name, $value, $expire, $path, $domain, $secure, $httponly )
og de er nesten helt like, sett bort i fra at javascript ikke har httponly. Med andre ord blir denne i PHP
PHP:
setcookie('cookie_name', $value, time() + 3600), '/', '.domain.com', true, true);
omtrent dette i javascript
PHP:
var time = new Date();
var value = "ting å lagre i cookie";
time.setTime( time.getTime() + (3600 * 1000) ); // millisekunder
document.cookie = "cookie_name=" + escape(value) +
"; expires=" + time.toGMTString() +
"; path=/; domain=domain.com; secure";
Det første man legger merke til er at det er litt komplisert med cookies i javascript, og derfor finnes det en del greie funksjoner man kan bruke som gjør ting litt mye lettere, for eksempel
PHP:
function setCookie(name, value, expires, path, domain, secure) {
var curCookie = name + "=" + escape(value) +
((expires) ? "; expires=" + expires.toGMTString() : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "");
document.cookie = curCookie;
}
function getCookie(name) {
var dc = document.cookie;
var prefix = name + "=";
var begin = dc.indexOf("; " + prefix);
if (begin == -1) {
begin = dc.indexOf(prefix);
if (begin != 0) return null;
} else {
begin += 2;
}
var end = document.cookie.indexOf(";", begin);
if (end == -1) end = dc.length;
return unescape(dc.substring(begin + prefix.length, end));
}
Legg også merke til at document.cookie er litt spesiell, det er en property av document, men i motsetning til alle andre properties så overskrives ikke verdien, men i stedet legges den til, altså oppretter du en ny cookie hver gang du bruker et nytt navn på cookien, selv om det ser ut som om man skriver over document.cookie hver gang.
Dersom du ikke trenger å ha tilgang til dataene du skal lagre både fra javascript og PHP finnes det enklere alternativ, i PHP har du allerede superglobals, og i javascript er det local storage.