本文主要讲述dede系统的cookie是加密的,PutCookie设置cookie以后为什么GetCookie取不到值
PutCookie($key,$value,$kptime,$pa="/")
按默认参数设置一个Cookie(dede的cookie是经过加密的,必须用GetCookie获取值,以防止用户模拟登录)第三个参数一定要设置,否则会导致cookie当时就失效,怎么都取不到设置的cookie值
DropCookie($key)
使Cookie失效
function GetCookie($key)
获得一个cookie值
=================================
function PutCookie($key,$value,$kptime=0,$pa="/")
{
global $cfg_cookie_encode;
setcookie($key,$value,time()+$kptime,$pa);
setcookie($key.'__ckMd5',substr(md5($cfg_cookie_encode.$value),0,16),time()+$kptime,$pa);
}
function DropCookie($key)
{
setcookie($key,'',time()-360000,"/");
setcookie($key.'__ckMd5','',time()-360000,"/");
}
function GetCookie($key)
{
global $cfg_cookie_encode;
if( !isset($_COOKIE[$key]) || !isset($_COOKIE[$key.'__ckMd5']) )
{
return '';
}
else
{
if($_COOKIE[$key.'__ckMd5']!=substr(md5($cfg_cookie_encode.$_COOKIE[$key]),0,16))
{
return '';
}
else
{
return $_COOKIE[$key];
}
}
}
=========================
$cfg_cookie_encode在后台定义
=========================
判断是否登录 if($cfg_ml->IsLogin())
调用用户名<?php echo $cfg_ml->M_UserName?>
转载于:https://blog.51cto.com/wesoho/405586