网站CMS是用织梦CMS做的扩展。
最近扩展开发了个拍卖的系统, 一个页面里会有多个拍卖产品,在拍卖阶段,页面程序定期获取每个拍卖产品的状态(包括价格,加价纪录,到期时间)。
用户在登录状态才能进行拍卖。
最近发现个问题,在多用户同时在线的时候,会出现登录状态cookie的值被刷新为deleted。
检查过N遍的程序,没发现有主动删除cookie的操作。
但是用户不多的时候,一切正常。环境是 php5.3 IIS mysqlphp5.3自身的bug?
下面是织梦cookie操作类的代码
<?php if(!defined('DEDEINC')) exit('dedecms');
/**
* Cookie处理小助手
*
* @version $Id: file.helper.php 1 13:58 2010年7月5日Z tianya $
* @package DedeCMS.Helpers
* @copyright Copyright (c) 2007 - 2010, DesDev, Inc.
* @license http://help.dedecms.com/usersguide/license.html
* @link http://www.dedecms.com
*//**
* 设置Cookie记录
*
* @param string $key 键
* @param string $value 值
* @param string $kptime 保持时间
* @param string $pa 保存路径
* @return void
*/
if ( ! function_exists('PutCookie'))
{
function PutCookie($key, $value, $kptime=0, $pa="/")
{
global $cfg_cookie_encode,$cfg_domain_cookie;
setcookie($key, $value, time()+$kptime, $pa,$cfg_domain_cookie);
setcookie($key.'__ckMd5', substr(md5($cfg_cookie_encode.$value),0,16), time()+$kptime, $pa,$cfg_domain_cookie);
}
}
/**
* 清除Cookie记录
*
* @param $key 键名
* @return void
*/
if ( ! function_exists('DropCookie'))
{
function DropCookie($key)
{
global $cfg_domain_cookie;
setcookie($key, '', time()-360000, "/",$cfg_domain_cookie);
setcookie($key.'__ckMd5', '', time()-360000, "/",$cfg_domain_cookie);
}
}/**
* 获取Cookie记录
*
* @param $key 键名
* @return string
*/
if ( ! function_exists('GetCookie'))
{
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];
}
}
}
}
最近扩展开发了个拍卖的系统, 一个页面里会有多个拍卖产品,在拍卖阶段,页面程序定期获取每个拍卖产品的状态(包括价格,加价纪录,到期时间)。
用户在登录状态才能进行拍卖。
最近发现个问题,在多用户同时在线的时候,会出现登录状态cookie的值被刷新为deleted。
检查过N遍的程序,没发现有主动删除cookie的操作。
但是用户不多的时候,一切正常。环境是 php5.3 IIS mysqlphp5.3自身的bug?
下面是织梦cookie操作类的代码
<?php if(!defined('DEDEINC')) exit('dedecms');
/**
* Cookie处理小助手
*
* @version $Id: file.helper.php 1 13:58 2010年7月5日Z tianya $
* @package DedeCMS.Helpers
* @copyright Copyright (c) 2007 - 2010, DesDev, Inc.
* @license http://help.dedecms.com/usersguide/license.html
* @link http://www.dedecms.com
*//**
* 设置Cookie记录
*
* @param string $key 键
* @param string $value 值
* @param string $kptime 保持时间
* @param string $pa 保存路径
* @return void
*/
if ( ! function_exists('PutCookie'))
{
function PutCookie($key, $value, $kptime=0, $pa="/")
{
global $cfg_cookie_encode,$cfg_domain_cookie;
setcookie($key, $value, time()+$kptime, $pa,$cfg_domain_cookie);
setcookie($key.'__ckMd5', substr(md5($cfg_cookie_encode.$value),0,16), time()+$kptime, $pa,$cfg_domain_cookie);
}
}
/**
* 清除Cookie记录
*
* @param $key 键名
* @return void
*/
if ( ! function_exists('DropCookie'))
{
function DropCookie($key)
{
global $cfg_domain_cookie;
setcookie($key, '', time()-360000, "/",$cfg_domain_cookie);
setcookie($key.'__ckMd5', '', time()-360000, "/",$cfg_domain_cookie);
}
}/**
* 获取Cookie记录
*
* @param $key 键名
* @return string
*/
if ( ! function_exists('GetCookie'))
{
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];
}
}
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货