找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1544|回复: 0
打印 上一主题 下一主题

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

[复制链接]

2588

主题

2588

帖子

7694

积分

论坛元老

Rank: 8Rank: 8

积分
7694
跳转到指定楼层
楼主
发表于 2018-2-14 05:53:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            这个标题不是很严格,应该说可以使用点号的cookie名,但会被转换,你命名一个cookie:
$_COOKIE[‘my.name'] = 1;
实际上你不能通过'my.name'在cookie中查找到这个值,只能是'my_name':
echo $_COOKIE[‘my_name'];
php已经自动帮你进行了转化,句点转为了下划线。
php为什么要这样做呢?这是因为$_GET/$_POST/$_SERVER/$_COOKIE。。。这些全局函数的值,在之前的许多版本中是可以通过register_globals参数在本地中直接访问这些值的,比如开启register_globals = on后,访问$my_name直接取值为1。如果是$my.name的话,则不符合php变量命名原则,这不单是句号(.)的问题。
因此,$_COOKIE的命名已经符合php命名标准。
另外开启register_globals是一个很糟糕的决定,因为它可能会覆盖脚本中原来的值,比如:
// other code
if ($a)
$uc_is_login = true;
// ...
用户只需要发送一个url?a=1的http请求就可以默认已经登陆。这是个很危险的做法,应该把它关闭。实际上php6已经去除了这个选项。
            
            
您可能感兴趣的文章:
  • PHP读取CURL模拟登录时生成Cookie文件的方法
  • php中cookie实现二级域名可访问操作的方法
  • php 删除cookie方法详解
  • php利用cookie实现自动登录的方法
  • php针对cookie操作的队列操作类实例
  • php利用cookies实现购物车的方法
  • php第一次无法获取cookie问题处理
  • php使用Cookie实现和用户会话的方法
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端