如何获得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); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |