特殊字符Cookie名称不起作用PHP CI

时间:2019-01-15 06:30:20

标签: php codeigniter cookies special-characters jquery-cookie

“ OTk5OTk5OTk5OQ ==“ ”来自base64_ecode(9999999999);,我需要获取$_COOKIE[OTk5OTk5OTk5OQ==][id]的值。

<?php
print_r($_COOKIE);
?>
<script type="text/javascript">
$(document).ready(function()
{
   $.cookie("somename","hello");
   $.cookie("OTk5OTk5OTk5OQ==[id]","123456");
   $.cookie("OTk5OTk5OTk5OQ==[first_name]","Test");
});
</script>

上面的代码仅打印 somename cookie值,而不是其他2个值。

1 个答案:

答案 0 :(得分:0)

请在此处查看答案:Allowed characters in cookies

  

=包含在内是合法的,但可能含糊不清。浏览器总是在字符串的第一个=符号上拆分名称和值,因此在实践中,您可以在VALUE中放置一个=符号,但不能在NAME中放置

尝试使用encodeURIComponent:

<?php
print_r($_COOKIE);
?>
<script type="text/javascript">
$(document).ready(function()
{
   $.cookie("somename","hello");
   $.cookie(encodeURIComponent("OTk5OTk5OTk5OQ==[id]"),"123456");
   $.cookie(encodeURIComponent("OTk5OTk5OTk5OQ==[first_name]"),"Test");
});
</script>