向现有(或不存在)数组添加键



我得到了这个代码:

if( empty ($cache[$id]) ) {
    $arr[$id] = @TIMENOW;
    setcookie('id', cArr($arr, 'set'), -1, @PATH);
} else {
    $cache[$id] = @TIMENOW;
    setcookie('id', cArr($cache, 'set'), -1, @PATH);
}

它只添加一个键,到cookie,如果我去另一个线程,它会重置数组,不会添加更多的键。我的意思是,如果用户使用id 1去线程,那么if( empty ($cache[1]) )将添加1,而不是更新现有的值,如果用户现在使用ID 5的线程,它将做同样的事情,并且if( empty ($cache[5]) )是空的,然后它将添加ID 5的键到数组中,所以我现在将拥有两个键:1和5。

希望你得到它。如果你不知道,请随意提问,我会回答你所有的问题。

这将有助于知道你在cArr()做什么。但如果没有它,这将添加到您的cookie为每一个新线程的用户访问。

//get previous values
$id = $_GET['thread_id'];
$cache = array_key_exists('id', $_COOKIE) ? unserialize($_COOKIE['id']) : array();
//add to $cache
$cache[$id] = TIMENOW;
setcookie('id', serialize(cArr($cache, 'set')), -1, PATH);

警告:但请记住,仅设置cookie,您的web服务器可以被利用。所以最好不要使用searializeunserialize在cookie中存储简单的静态值。

最新更新