Umgang mit Cookies. So geht’s mit php.
// Lebenszeit 1 Stunde setcookie('cookieName', 'cookieValue', time()+3600, '/'); // Lebenszeit 2 Tage setcookie('cookieName', 'cookieValue', time()+3600*24*2, '/'); // Cookie löschen indem das Ende der Lebenszeit in der Vergangenheit gesetzt wird setcookie('cookieName', '', time()-3600); // z.B. 1 Stunde // Cookie überprüfen $cookie = filter_input(INPUT_COOKIE, 'cookieName'); if (!isset($cookie)){ // doSomething }
Flags
setcookie('cookieName', 'cookieValue', time()+3600, '/', '', false, true);
- cookieName = der Name des Cookies (name)
- cookieValue = Wert des Cookies (value)
- time()+3600 = Hier wird mit time() + die Lebenszeit des Cookies in Sekunden eingetragen. time() + 3600 * 24 wäre ein Tag. (expire)
- '' = Hier kann die Doamin agegeben werden der das Cookie zur Verfügung steht. (domain)
- false = Cookie wird per http oder https übertragen. Bei true nur über https. (secure)
- true = Ist dieser Flag auf true, ist das Cookie nicht mehr für clientseitige Skriptsprachen wie JavaScript auslesbar/veränderbar. (httponly)
Rückgabewert
Die Methode setcookie() liefert im Erfolgsfall den Rückgabewert true bzw. falls das Cookie nicht gesetzt werden konnnte false. Dies ist jedoch unabhängig von clientseitigen Einstellungen oder Cookieblockern.
Bevor die Methode verwednet wird darf keine Ausgabe erfolgen.
Cookie für Domain und Subdomain
$host = filter_input(INPUT_SERVER, 'HTTP_HOST'); preg_match('/[^\.\/]+\.[^\.\/]+$/', $host, $matches); $domain = $matches[0]; setcookie('COOKIENAME', 'COOKIEVALUE', time()+3600*24*365, '/', '.'.$domain);