PHP setcookie()-funktio

Määrittely ja käyttö

setcookie()-funktio lähettää HTTP-cookien asiakkaalle.

Cookie on palvelimen lähettämä muuttuja selaimelle. Cookie on yleensä palvelimen lisäämä pieni tekstitiedosto käyttäjän tietokoneeseen. Jokaisella kerralla, kun tietokone pyytää sivua selaimen kautta, lähetetään tämä cookie.

Cookien nimi määritetään samannimiselle muuttujalle. Esimerkiksi, jos lähetettävän cookien nimi on "name", luodaan automaattisesti nimeltä $user muuttuja, joka sisältää cookien arvon.

Cookien arvon määrittämisen on tapahduttava ennen kaikkia muita tulostuksia.

Jos toimii, funktio palauttaa true, muuten false.

Syntaksi

setcookie(name,value,expire,path,domain,secure)
Parametrit Kuvaus
name Välttämätön. Määritä cookien nimi.
value Välttämätön. Määritä cookien arvo.
expire Valinnainen. Määritä cookien voimassaoloaika.
path Valinnainen. Määritä cookien palvelinpolku.
domain Valinnainen. Määritä cookien verkkotunnus.
secure Valinnainen. Määritä, lähetetäänkö cookie turvallisen HTTPS-yhteyden kautta.

Vinkit ja huomiot

Huomautus:Voit käyttää $HTTP_COOKIE_VARS["user"] tai $_COOKIE["user"] -muuttujia "user"-nimisen cookien arvon hakemiseen.

Huomautus:Lähetettäessä cookie, sen arvo URL-koodataan automaattisesti. Vastaanotettaessa se URL-dekoodataan. Jos et tarvitse tätä, voit käyttää setrawcookie() korvata.

Esimerkki

Esimerkki 1

Aseta ja lähetä cookie:

<?php
$value = "my cookie value";
// Lähetä yksinkertainen cookie
setcookie("TestCookie",$value);
?>
<html>
<body>
...
...
<?php
$value = "my cookie value";
// Lähetä cookie, joka vanhenee 24 tunnin kuluttua
setcookie("TestCookie",$value, time()+3600*24);
?>
<html>
<body>
...
...

Esimerkki 2

Etsiä eri tapoja cookie-arvojen hakemiseen:

<html>
<body>
<?php
// 输出个别的 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