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