加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

如何获得PHP“setrawcookie”的价值?

发布时间:2020-12-13 21:36:52 所属栏目:PHP教程 来源:网络整理
导读:IETF建议对二进制cookie值使用base64编码: http://tools.ietf.org/html/draft-ietf-httpstate-cookie-07 所以我使用setrawcookie(..),但我不知道用什么变量来获取cookie,因为$_COOKIE [..]仍然使用匹配setcookie(..)的URL解码.这将在输出中替换“”和“”.
IETF建议对二进制cookie值使用base64编码:
http://tools.ietf.org/html/draft-ietf-httpstate-cookie-07

所以我使用setrawcookie(..),但我不知道用什么变量来获取cookie,因为$_COOKIE [..]仍然使用匹配setcookie(..)的URL解码.这将在输出中替换“”和“”.

<?php

var_dump($_COOKIE['TEST']);
$binary_string = "";
for($index = 0; $index < 256; $index++){
    $binary_string .= chr($index);
}
$encoded_data = base64_encode($binary_string);
var_dump($encoded_data);
$cookie_set = setrawcookie('TEST',$encoded_data,time() + 3600);
?>

解决方法

您应该使用普通的setcookie而不是setrawcookie,这样您就可以避免在尝试发送带有不允许字符的cookie时(不会设置cookie),并且$_COOKIE数组中的值将可用.

如果你坚持使用raw方法,你可以在$_SERVER [‘HTTP_COOKIE’]中找到浏览器发送的cookie.这将是字符串格式,如key1 = value1;键2 =值.在阵列中获取它的一种方法是进行简单的爆炸:

foreach(explode('; ',$_SERVER['HTTP_COOKIE']) as $rawcookie)
{
    list($k,$v) = explode('=',$rawcookie,2);
    $_RAWCOOKIE[$k] = $v;
}

var_dump($_RAWCOOKIE);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读