php cookie名使用点号(句号)会被转换

先用document.cookie方法把js变量写入cookie中,再用PHP抽取。

本条标题不是很严厉,应该说能够使用点号的cookie名,但会被转变,你命名三个cookie:

scrīpt

$_COOKIE[‘my.name’] = 1;

  1. var name=myqq,value=10000; 2. document.cookie=name+=+value+;

实质上你不可能经过’my.name’在cookie中查找到这么些值,只可以是’my_name’:

/scrīpt

echo $_COOKIE[‘my_name’];

?php

php已经自行帮您实行了转载,句点转为了下划线。

echo $_COOKIE[myqq].br/;

php为何要这么做呢?那是因为$_GET/$_POST/$_SERVER/$_老董KIE。。。那些全局函数的值,在事情未发生前的居多本子中是足以经过register_globals参数在本地中央直属机关接待上访谈那一个值的,比如敞开register_globals

on后,访问$my_name直接取值为1。如若是$my.name的话,则不符合php变量命名准则,那不单是句号(.)的主题素材。

因此,$_老董KIE的命名已经契合php命名标准。

除此以外开启register_globals是三个十分不佳的决定,因为它或然会覆盖脚本中原本的值,比如:

// other code
if ($a)
$uc_is_login = true;
// …

顾客只须要发送一个url?a=1的http央求就足以暗中认可已经登录。那是个很凶险的做法,应该把它停业。实际上php6已经去除了那么些选项。

$my=我的QQ是.$_COOKIE[myqq];

echo $my;

?

发表评论

电子邮件地址不会被公开。 必填项已用*标注