PHP setcookie()-funktionen

Definition och användning

setcookie()-funktionen skickar en HTTP-cookie till klienten.

Cookie är en variabel som skickas från servern till webbläsaren. Cookie är vanligtvis en liten textfil som servern infogar i användarens dator. Varje gång datorn genom webbläsaren begär en sida, skickas denna cookie.

Namnet på cookie specificeras som en variabel med samma namn. Till exempel, om den skickade cookie:n heter "name", skapas automatiskt en variabel $user som innehåller värdet för cookie:n.

Cookie måste tilldelas innan någon annan utdata skickas.

Om funktionen lyckas returnerar den true, annars returnerar den false.

Syntaks

setcookie(name,value,expire,path,domain,secure)
Parametrar Beskrivning
name Obligatorisk. Ange namnet på cookie.
value Obligatorisk. Ange värdet för cookie.
expire Valfritt. Ange cookie:s giltighetstid.
path Valfritt. Ange serverns sökväg för cookie.
domain Valfritt. Ange domänen för cookie.
secure Valfritt. Ange om cookie ska överföras via en säker HTTPS-anslutning.

Tips och kommentarer

Kommentar:Du kan komma åt värdet för en cookie med namn "user" genom att använda $HTTP_COOKIE_VARS["user"] eller $_COOKIE["user"].

Kommentar:När du skickar en cookie URL-kodas värdet automatiskt. Det URL-dekoder vid mottagning. Om du inte behöver detta kan du använda setrawcookie() Ersätt.

Exempel

Exempel 1

Ställ in och skicka cookie:

<?php
$value = "my cookie value";
// Skicka en enkel cookie
setcookie("TestCookie",$value);
?>
<html>
<body>
...
...
<?php
$value = "my cookie value";
// Skicka en cookie som expirerar efter 24 timmar
setcookie("TestCookie",$value, time()+3600*24);
?>
<html>
<body>
...
...

Exempel 2

Sök olika sätt att hämta cookie-värden:

<html>
<body>
<?php
// Skriver ut enstaka cookie
echo $_COOKIE["TestCookie"];
echo "<br />";
echo $HTTP_COOKIE_VARS["TestCookie"];
echo "<br />";
// 输出所有 cookie
print_r($_COOKIE);
?>
</body>
</html>

输出:

my cookie value
my cookie value
Array ([TestCookie] => my cookie value)

例子 3

通过把失效日期设置为过去的日期/时间,删除一个 cookie:

<?php
// 把失效日期设置为一小时前
setcookie ("TestCookie", "", time() - 3600);
?>
<html>
<body>
...
...

例子 4

创建一个数组 cookie:

<?php
setcookie("cookie[three]","cookiethree");
setcookie("cookie[two]","cookietwo");
setcookie("cookie[one]","cookieone");
// 输出 cookie (在重载页面后)
if (isset($_COOKIE["cookie"]))
  {
  foreach ($_COOKIE["cookie"] as $name => $value)
    {
    echo "$name : $value <br />";
    }
  }
?>
<html>
<body>
...
...

输出:

three : cookiethree
two : cookietwo
one : cookieone