PHP COOKIE管理(setcookie、setrawcookie)

setcookie的定义和用法

setcookie() 函数向客户端发送一个 HTTP cookie。

cookie 是由服务器发送到浏览器的变量。cookie通常是服务器嵌入到用户计算机中的小文本文件。每当计算机通过浏览器请求一个页面,就会发送这个 cookie。

cookie 的名称指定为相同名称的变量。例如,如果被发送的 cookie 名为 “name”,会自动创建名为 $user 的变量,包含 cookie 的值。

必须在任何其他输出发送前对 cookie 进行赋值。

如果成功,则该函数返回 true,否则返回 false。

语法
setcookie(name,value,expire,path,domain,secure)

参数描述
name必需。规定 cookie 的名称。
value必需。规定 cookie 的值。
expire可选。规定 cookie 的有效期。
path可选。规定 cookie 的服务器路径。
domain可选。规定 cookie 的域名。
secure可选。规定是否通过安全的 HTTPS 连接来传输 cookie。
提示和注释
注释:可以通过 $HTTP_COOKIE_VARS["user"] 或 $_COOKIE["user"] 来访问名为 "user" 的 cookie 的值。
注释:在发送 cookie 时,cookie 的值会自动进行 URL 编码。接收时会进行 URL 解码。如果你不需要这样,可以使用 setrawcookie() 代替。
//put cookie
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
        <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
    </head> 
    <body> 
        <?php
            $value = "my cookie value";
            setcookie("TestCookie",$value, time()+3600*24);
        ?>
    </body> 
</html> 
//receive cookie
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
        <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
    </head> 
    <body> 
        <?php           
            // 输出个别的 cookie
            echo $_COOKIE["TestCookie"];
            echo "<br />";
            echo $HTTP_COOKIE_VARS["TestCookie"];
            echo "<br />";
            // 输出所有 cookie
            print_r($_COOKIE);
        ?>
    </body> 
</html> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
        <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
    </head> 
    <body> 
        <?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 />";
                }
            }
        ?>
    </body> 
</html> 
three : cookiethree 
two : cookietwo 
one : cookieone 

//删除COOKIE
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
        <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
    </head> 
    <body> 
        <?php           
            setcookie("name","value");
            echo $_COOKIE[name];

            setcookie("name","",time()-1);
            echo $_COOKIE[name];
        ?>
    </body> 
</html> 

setrawcookie的定义和用法

setrawcookie() 函数不对 cookie 值进行 URL 编码,发送一个 HTTP cookie。

cookie是由服务器发送到浏览器的变量。cookie 通常是服务器嵌入到用户计算机中的小文本文件。每当计算机通过浏览器请求一个页面,就会发送这个cookie。

cookie 的名称指定为相同名称的变量。例如,如果被发送的 cookie 名为 “name”,会自动创建名为 $user的变量,包含 cookie 的值。 必须在任何其他输出发送前对 cookie 进行赋值。

如果成功,则该函数返回 true,否则返回false。

语法
setcookie(name,value,expire,path,domain,secure)

参数描述
name必需。规定 cookie 的名称。
value必需。规定 cookie 的值。
expire可选。规定 cookie 的有效期。
path可选。规定 cookie 的服务器路径。
domain可选。规定 cookie 的域名。
secure可选。规定是否通过安全的 HTTPS 连接来传输 cookie。
提示和注释
注释:可以通过 $HTTP_COOKIE_VARS["user"] 或 $_COOKIE["user"] 来访问名为 "user" 的 cookie 的值。
注释:setrawcookie() 与 setcookie() 几乎完全相同,不同的是不会在发往客户机时,对 cookie 值进行自动 URL 编码。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
        <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
    </head> 
    <body> 
        <?php 
            setrawcookie("cookie[three]","cookiethree");
            setrawcookie("cookie[two]","cookietwo");
            setrawcookie("cookie[one]","cookieone");
            if (isset($_C)) {
                # code...
            }

            $var = 0; 
            // 结果为 true,因为 $var 为空 
            if (empty($var)) { 
                echo '$var is either 0 or not set at all'; 
            } 
            // 结果为 false,因为 $var 已设置 
            if (!isset($var)) { 
                echo '$var is not set at all'; 
            } 
        ?> 
    </body> 
</html> 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值