php cookie中点号(句号)自动转为下划线问题

php cookie中不能使用点号(句号),实际上不是很严格,应该说可以使用点号的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已经去除了这个选项。

(0)

相关推荐

  • php实现的Cookies操作类实例

    本文实例讲述了PHP实现的Cookies操作类及其用法,分享给大家供大家参考.具体分析如下: 一.功能: 1.保存,读取,更新,清除cookies数据. 2.可设置前缀. 3.强制超时控制. 4.cookies数据可以是字符串,数组,对象等. 二.用法: Cookies.class.php类文件如下: <?php /** Cookies class 保存,读取,更新,清除cookies数据.可设置前缀.强制超时.数据可以是字符串,数组,对象等. * Date: 2013-12-22 * Auth

  • PHP读取CURL模拟登录时生成Cookie文件的方法

    本文实例讲述了PHP读取CURL模拟登录时生成Cookie文件的方法.分享给大家供大家参考.具体实现方法如下: 在使用PHP中的CURL模拟登录时会保存一个Cookie文件,例如下面的代码 复制代码 代码如下: $login_url = 'XXX';    $post_fields['email'] = 'XXXX';  $post_fields['password'] = 'XXXX';  $post_fields['origURL'] = 'XXX';  $post_fields['doma

  • php 删除cookie方法详解

    我们先来看下相关cookie的机制. 复制代码 代码如下: bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, bool secure]]]]] ) 要删除cookie需要确保它的失效期是在过去,才能触发浏览器的删除机制. 下面的例子说明了如何删除刚才设置的cookie: 复制代码 代码如下: <?php //将过期时间设为一小时前 setcookie("

  • php中cookie实现二级域名可访问操作的方法

    本文实例讲述了php中cookie实现二级域名可访问操作的方法.分享给大家供大家参考.具体方法如下: cookie在一些应用中很常用,假设我有一个多级域名要求可以同时访问主域名绑定的cookie,下面就来给大家具体介绍在php中利用setcookie实现二级域名可以成功访问主域名cookie值的方法. 有时候两个域名可能在不同的服务器上,但是我们依然希望二级域名能够顺利访问主域名的cookie,主域名可以顺利访问二级域名的cookie,比如sc.jb51.net 希望能访问 www.jb51.n

  • PHP COOKIE及时生效的方法介绍

    通常,php里要浏览器刷一下才能出现cookie,怎么才能让cookie及时生效呢,下面分享一个让cookie及时生效的一个方法,很实用,代码如下: 复制代码 代码如下: /** * 设置cookie * @param string $name 键名 * @param mixed $value 值 * @param int $expire 过期时间,默认是一天 */public final function setCookie($name, $value, $expire = null){   

  • php中cookie的使用方法

    1.创建/更新cookie 复制代码 代码如下: setCookie($cookieName,$value,time()+秒数): 例子:创建一个cookie,名字为UserName,值为zs,过期时间为2个星期 复制代码 代码如下: setcookie("UserName","zs",time()+2*7*24*3600); 如果不设置时间,就不会保存到cookie文件中.浏览器不关时,能够访问.当浏览器关闭时,就无法访问了. 例子: 复制代码 代码如下: set

  • php设置session值和cookies的学习示例

    第一步:先在本地写一个登陆页面和一个内容页面(登陆了才能进去)吧.代码大致如下: 下面是login.php,用于请求登陆的,通过post传递参数,如果登陆成功就会注册session. 复制代码 代码如下: <?phpsession_start(); if (isset($_POST['username'])) {    $username = $_POST['username'];    $password = $_POST['password']; if ($username == 'admi

  • curl不使用文件存取cookie php使用curl获取cookie示例

    复制代码 代码如下: /*-----保存COOKIE-----*/$url = 'www.xxx.com'; //url地址$post = "id=user&pwd=123456"; //POST数据$ch = curl_init($url); //初始化curl_setopt($ch,CURLOPT_HEADER,1); //将头文件的信息作为数据流输出curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); //返回获取的输出文本流curl_se

  • php针对cookie操作的队列操作类实例

    本文实例讲述了php针对cookie操作的队列操作类.分享给大家供大家参考.具体分析如下: 这里包括了从简单的cookie操作(增加,删除,修改)到我们的cookie队列操作类的操作,对此感兴趣的朋友可以参考一下. 一.PHP 的COOKIE cookie 是一种在远程浏览器端储存数据并以此来跟踪和识别用户的机制. PHP 在http 协议的头信息里发送cookie,因此 setcookie() 函数必须在其它信息被输出到浏览器前调用,这和对  header() 函数的限制类似. 设置cooki

  • PHP会话控制:Session与Cookie详解

    本文介绍了PHP会话控制,主要阐述以下几点内容: • 会话控制的产生背景/概念 • cookie的维护与生命周期(有效时间) • session的维护与生命周期(回收机制) • cookie与session之间的区别与联系 • 问题1:禁用cookie后session为什么会失效? • 问题2:IE浏览器下丢失session,每次刷新页面,都会生成新的sessionID(Firefox浏览器正常) • session.cookie简单实例 理解会话控制的概念 理解一个概念就需要理解他的背景及产生

  • php跨域cookie共享使用方法

    A 机器所在的域:a1.main.com,A 有应用 main.phpB 机器所在的域:b1.test.com,B 有应用 test.php 1.在 main.php 里设置 cookie 的时候, cookie 的设置方法如下: 复制代码 代码如下: setcookie( "TestCookie",  "okol",  time() + 3600,  "/", "b1.test.com", 1 ); 这样在 test.php

随机推荐