我在网站中用cookie记录每个用户浏览产品的历史记录,以用户的IP地址作为cookie的变量名,在测试网站上完全正常,但换到另外一个站点测试时发现一个怪异的问题,cookie值一会有一会没有,cookie值很不稳定,另外一个站点其实跟我的测试站点差不多,只是域名不一样,域名中有"-", 但这应该不是问题,头搞晕了,希望网友赐教,解我这个困惑.php源代码:
...
$c_ip = $_SERVER["REMOTE_ADDR"];
if(isset($_COOKIE[str_replace(".","_",$c_ip)])) {
setcookie($c_ip,";" . $request->get('product_id') . $_COOKIE[str_replace(".","_",$c_ip)],time()+60*60*24*7,'/');
} else {
setcookie($c_ip,";" . $request->get('product_id'),time()+60*60*24*7,'/');
}
...(注:由于用IP作为cookie名时,IP中的"."会被解析为"_",所以我在提取cookie值的时候,要将当前IP的"."替换为"_"才能支对应地取值.)
...
$c_ip = $_SERVER["REMOTE_ADDR"];
if(isset($_COOKIE[str_replace(".","_",$c_ip)])) {
setcookie($c_ip,";" . $request->get('product_id') . $_COOKIE[str_replace(".","_",$c_ip)],time()+60*60*24*7,'/');
} else {
setcookie($c_ip,";" . $request->get('product_id'),time()+60*60*24*7,'/');
}
...(注:由于用IP作为cookie名时,IP中的"."会被解析为"_",所以我在提取cookie值的时候,要将当前IP的"."替换为"_"才能支对应地取值.)
ip2long这个函数倒是知道,但问题不在这里
我用print_r($_COOKIE)调试的时候,IP所对应的cookie值时有时无,真是郁闷
<script>
documnt.write(document.cookie);
</script>