hur funkar d med cookies i php? nån som har någon sida?
cookies
20 svar · 459 visningar · startad av Cactuz
hur ska datumet skrivas om cookiesen ska expira 2050? :)
setcookie( "blah", "bläh", strtotime( "1 January 2050" ) );
En sanning med modifikation. Tiden är en UNIX timestamp och sträcker sig som längst till någonstans i januari 2038. Längre än till dess går inte att sätta tiden.
Hehe, tiden har ett bäst-före-datum. :e
Då borde det här fungera ivf:
setcookie( "blah", "bläh", strtotime( "1 January 2038" ) );
hmm.. fattar inte riktigt,,, är blah namnet på cookien o bläh d som sätts in i den?
Jäpp.
men kan inte en cookie ha flera variabler?
Hakar på här:
i VBScript kan man ge kakorna olika nycklar, ex:
response.cookies("Login") ("Username") = objRS("Username")
Kan man åstadkomma denna "nyckelfunktion" i PHP?
Inte direkt, utan du får ta en omväg med arrayer och serialisering.
$myCookieValues[ 'Username' ] = "Användarnamn";
$myCookieValues[ 'Email' ] = "Email@Email.nu";
setcookie( "myCookie", serialize( $myCookieValues ) );
Och när du hämtar:
$myCookieValues = unserialize( $_COOKIE[ 'myCookie' ] );
Det fungerar inte. Man måste använda stripslashes() på cookie:n före man använder unserialize(). Alltså:
$myCookieValues = unserialize( stripslashes( $_COOKIE[ 'myCookie' ] ) );
Varför?
Nu när jag tänker efter, tror jag inte ens att man egentligen behöver serialisera/avserialisera arrayen. Det görs nog automagiskt.
men hur hämtar man ett av värden i cookien då? o hur lägger man till en till
SPiN skrev:
Varför?
Nu när jag tänker efter, tror jag inte ens att man egentligen behöver serialisera/avserialisera arrayen. Det görs nog automagiskt.
Jag vet inte exakt varför, men när jag provade din kod så fungerade det inte. Då läste jag bland PHP.net's kommentarer att man skulle använda stripslashes().
Automatiskt blir det inte, kanske i senare versioner av PHP (Jag använder fortfarande 4.1.1). Men hur skulle det fungera? Själva serialiseringen hade kunnat skötas automatiskt då man skickar in en array i en cookie, men hur ska den kunna avserialiseras automatiskt?
Automatiskt blir det inte, kanske i senare versioner av PHP (Jag använder fortfarande 4.1.1). Men hur skulle det fungera? Själva serialiseringen hade kunnat skötas automatiskt då man skickar in en array i en cookie, men hur ska den kunna avserialiseras automatiskt?
Det har jag ingen aning om, men jag kom att tänka på att sessions fungerar så. Där ska man inte behöva serialisera eller avserialisera. Jag vet inte om det fungerar med cookies, men jag trodde det. Tydligen inte. :)
Tiden är en UNIX timestamp och sträcker sig som längst till någonstans i januari 2038.
Vad händer efter det då? Millenium bugg a la UNIX eller?
Om jag inte minns fel så får du timestamp: -1
men hur hämtar man ett av värden i cookien då? o hur lägger man till en till
cactuz skrev:
men hur hämtar man ett av värden i cookien då?
echo $_COOKIE['myCookie'];
cactuz skrev:
hur lägger man till en till
Du lägger till en cookie på samma sätt som du la den första (?) Om du vill ha fler än 1 cookie får du se till att ha olika namn på dem..
// Nippe