setcookie

王朝百科·作者佚名  2010-07-08
窄屏简体版  字體: |||超大  

setcookie

(PHP3 , PHP4)

setcookie --- 送出cookie

语法 : int setcookie (string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])

说明 :

setcookie( )定义一个cookie和标头一起送出。cookie必须在任何其它的标头送出之前送出,这是cookie的限制,而不是PHP。你必须在任何<html>或是<head>标签之前呼叫此函数。

除了参数name之外,其它都是非必需的。如果只有name这一个参数,则用户端(client)此名称的cookie将会被删除,你也可以使用空字符串(" ")来略过此参数,参数expire和secure是个整数,你可以使用0来略过参数,而不是使用空字符串。参数expire是一个正规的Unix时间整数,由time( )和mktime( )传回。参数secure指出此cookie将只有在安全的HTTPS连结时传送。

常见的错误 :

cookies将不变成可看见的,直到下次页面载入时,此cookies才将成为可看见的。 cookies必须以它们所设定的相同参数值,才能将它删除。 在PHP3中,在相同的程式里多次的呼叫setcookie( ),将会以颠倒的顺序来执行。如果你想在插入另一个值之前删除cookie,你应该先执行插入之后再执行删除。在PHP4中,多次的呼叫setcookie( )会依照呼叫的顺序来执行。

下面的范例说明如何去送出cookies :

Example :

<?php

setcookie ("TestCookie", "Test Value");

setcookie ("TestCookie", $value,time()+3600); /* expire in 1 hour */

setcookie ("TestCookie", $value,time()+3600, "/~rasmus/", ".utoronto.ca", 1);

?>

下面的范例说明如何将上面范例所送出的cookies删除 :

<?php

setcookie ("TestCookie");

setcookie ("TestCookie", "", time());

setcookie ("TestCookie", "", time(), "/~rasmus/", ".utoronto.ca", 1);

?>

当你送出cookie时,cookie一部份的值将会自动地urlencoded,并且当接收到此cookie时,它会自动地decoded并分配它,使它成为变量,变量的名称则与cookie的名称相同。我们可以简单的使用下列范例的其中一个方法,来看见cookie的内容 :

<?php

echo $TestCookie;

echo $HTTP_COOKIE_VARS["TestCookie"];

?>

你也可以在cookie的名称中使用数组的标记法,来设定数组cookies,这种设定的结果就像是你有着许多的cookie,但是当你的程式接收到cookie时,cookie的值全部都会放在数组之中 :

<?php

setcookie ("cookie[three]", "cookiethree");

setcookie ("cookie[two]", "cookietwo");

setcookie ("cookie[one]", "cookieone");

if (isset ($cookie)) {

while (list ($name, $value) = each ($cookie)) {

echo "$name == $value<br>

";

}

}

?>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航