PHP setrawcookie()-funktio
Määrittely ja käyttö
setrawcookie()-funktio ei URL-koodaa cookie-arvoa ja lähettää HTTP-cookien.
Cookie on muuttuja, jonka palvelin lähettää selaimelle. Cookie on yleensä pieni tekstitiedosto, jonka palvelin lisää käyttäjän tietokoneeseen. Kun tietokone pyytää sivua selaimella, se lähettää tämän cookien.
Cookie-nimi määritetään samannimiselle muuttujalle. Esimerkiksi, jos lähetettävä cookie-nimi on "name", luodaan automaattisesti muuttuja $user, joka sisältää cookie-arvon.
Cookie-arvon on asetettava ennen kaikkia muita lähtöjä.
Jos toimii, funktio palauttaa true, muuten false.
Syntaksi
setcookie(name,value,expire,path,domain,secure)
Parametrit | Kuvaus |
---|---|
name | Välttämätön. Määrittää cookie-nimen. |
value | Välttämätön. Määrittää cookie-arvon. |
expire | Valinnainen. Määrittää cookie:n voimassaolon. |
path | Valinnainen. Määrittää cookie-palvelimen polun. |
domain | Valinnainen. Määrittää cookie-alueen. |
secure | Valinnainen. Määrittää, lähetetäänkö cookie turvallisen HTTPS-yhteyden kautta. |
Vinkit ja huomiot
Huomautus:Voi käyttää $HTTP_COOKIE_VARS["user"] tai $_COOKIE["user"] saadakseen "user"-nimisen cookie-arvon.
Huomautus:setrawcookie() ja setcookie() Melkein täysin sama, mutta erona on, että cookie-arvoa ei URL-koodata automaattisesti lähettäessä asiakasasemalle.
Esimerkki
Esimerkki 1
Aseta ja lähetä cookie:
<?php $value = "my cookie value"; // Lähetä yksinkertainen cookie setrawcookie("TestCookie",$value); ?> <html> <body> ... ...
<?php $value = "my cookie value"; // Lähetä cookie, joka vanhenee 24 tunnin kuluttua setrawcookie("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 // 把失效日期设置为一小时前 setrawcookie ("TestCookie", "", time() - 3600); ?> <html> <body> ... ...
例子 4
创建一个数组 cookie:
<?php setrawcookie("cookie[three]","cookiethree"); setrawcookie("cookie[two]","cookietwo"); setrawcookie("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