我最近一直试图在我的网站上做一些修改。基本登录的用户可以将游戏添加到自己喜欢的游戏中,而未登录的访问者将被定向到注册页面。
虽然我认为我可以尝试使用我的PHP一点点,并使访问者也可以添加游戏到他们的收藏夹。 (游戏是flash游戏)
所以我制作了这个允许用户点击图像的JS脚本,这个脚本检查cookie是否已经存在,如果没有,它会添加它,如果它确实存在,它将删除cookie(图像变为“加入到收藏夹“至”从收藏夹中删除“
由于可以有许多不同的收藏游戏,我不能使用简单的cookie名称,所以我这样设置:xx1200 = set(所以有2个x,然后是游戏ID,它产生cookie标题,然后是“set “作为cookie的价值。所有受欢迎的游戏将具有相同的价值,但名称不同,是前面带xx的ID。
现在要在另一个页面上打印cookie,显示他们喜欢的游戏,我在页面上添加了PHP,所以基本上得到了cookie,但是存在我的问题:如何通过其值获取cookie名称(通常你会打印$_COOKIE["set"];但现在我的cookie名称更改。
我使用print_r($_COOKIE);打印整个cookie,我在数组中看到了我的[zz800] => set,但我无法弄清楚如何获取ID(上例中为800)然后获得与给定ID相对应的游戏。
任何帮助将不胜感激!谢谢:)
更新:
这是我现在的代码,在过去的几个小时里一直在打开和关闭,现在它确实工作正常,我没有添加PHP,只是javascript。
我唯一的问题是,当我尝试删除1个条目时,它会删除整个cookie,所以我似乎无法找到解决问题的方法。
另一个问题是从阵列中获取ID,如果有人可以帮助我,那将是值得赞赏的。
这是我的代码:
$globalCookie = '629';
?>
Document sans titrefunction createCookie(value)
{
if(document.cookie.search(value)==-1){
if(document.cookie.indexOf('games') == -1) {
document.cookie = 'games' + '=' + ',' + value + '; expires=Fri, 27 Jul 2011 02:47:11 UTC; path=/';
} else {
var deagle = document.cookie;
document.cookie = deagle + ',' + value + '; expires=Fri, 27 Jul 2011 02:47:11 UTC; path=/';
}
} else {
// Removes the cookie (making the clear cookie problem most probably
document.cookie = 'games' + '=' +escape( value ) + '; expires=Fri, 27 Jul 2001 02:47:11 UTC; path=/';
}
}
var globalCookie = =$globalCookie?>;
$stuff = $_COOKIE["games"];
$game = $globalCookie;
$pos = strpos($stuff, $game);
if ($pos === false) { ?>
} else { ?>
}
?>
我现在使用$ globalCookie替代我的游戏ID。
再次感谢任何帮助!
以上制作的cookie看起来像:
games=,621,256,637,57354
我找到使用explode()的唯一方法,因为如果逗号在数字后面,它将不计入第一个