function_core.php函数dsetcookie源码分析

2024-10-31 19:42:15

1、参数var Cookie 名称。value Cookie 值。罕铞泱殳cookie名称和值可以抓包看到的,所以不要使用敏感信息。如登录密码。life 过期时间。这是个 Unix 时间戳。可以用time()函数的结果加上希望过期的秒数。time()+60*60*24*30就是设置 Cookie 30 天后过期。 如果设置成零,或者忽略参数, Cookie 会在会话结束时过期(也就是关掉浏览器时)。prefix 前缀。httponly 设置成TRUE,Cookie 仅可通过 HTTP 协议访问。

2、global $_G;$_G全局变量,在这里小编不得不吐槽既然有getglobal函数干嘛不统一使用。

3、$config = $_G['config']['cookie'];获取配置文件cookie配置数组。

4、$var = ($prefix ? $config['cookiepre'] : '').$var;$var,cookie前缀加cookie名称。案例:dsetcookie('my', 'test');$var=’R3GH_2132_my’;2132_是_init_config加上的。

5、$_COOKIE[$var] = $value;嗯,这句意义是?$_COOKIE一般用在获取。

6、if($value == '' || $life < 0) { $value = ''; $life = -1;} $value值为空,没有意义,直接返回就好。$life < 0过期,过期设置,虽然也从http响应头发出,但是请求不写入。也就木有意义。所以建议这句话直接返回。

7、if(defined('IN_MOBILE')) { $httponly = false;}IN_MOBILE可能和移动端有关。

8、$life = $life > 0 ? getglobal('timestamp') + $life : ($life < 0 ? getglobal('timestamp') - 31536000 : 0);getglobal('timestamp')是_init_env加上的。

9、$path = $httponly && PHP_VERSION < '5.2.0' ? $config['cookiepath'].'; HttpOnly' : $config['cookiepath'];cookie路径,一般应该执行条件分支$config['cookiepath']。

10、if(PHP_VERSION < '5.2.0') { setcookie($var, $value, $life, $path, $confi爿讥旌护g['cookiedomain'], $secure);} else { setcookie($var, $value, $life, $path, $config['cookiedomain'], $secure, $httponly);}一般执行else分支。原装函数setcookie参考手册。

猜你喜欢