php& cookies:在数组中访问的最后$ articleid

时间:2013-03-06 19:47:56

标签: php cookies

我对cookies的经验很少,所以我不知道怎么做。

我有一个T恤店,每件T恤都有$articleID

每次用户访问T恤页面时,我都想将$articleID添加到Cookie中。 然后将它添加到数组或其他东西,以便我以后可以检索它。 即使访问者两次访问相同的$articleID,也不应该有任何重复$articleID

然后在主页面上,我想检索最后5个$articleID访问者的列表,并显示ID列表。

我怎么能这样做?

谢谢!

3 个答案:

答案 0 :(得分:2)

为了在您的Cookie中存储数组,您需要对其进行序列化,以便检查此代码是否有用

$articles = array();

if ( isset($_COOKIE["viewed_articles"]) )
  $articles = unserialize($_COOKIE["viewed_articles"]);

if ( ! in_array($articleID, $articles)){
    $articles[] = $articleID;
}
// at the end update the cookies
setcookie("viewed_articles", serialize($articles));

我希望这会有所帮助,并在此link

进行循环

答案 1 :(得分:1)

这样的东西?

<?php
$article_id = 1; // Whichever article you're currently viewing
session_start();

if ( ! isset($_SESSION['viewed_articles']))
{
    $_SESSION['viewed_articles'] = array();
}

if ( ! in_array($article_id, $_SESSION['viewed_articles']))
{
    $_SESSION['viewed_articles'][] = $article_id;
}

答案 2 :(得分:0)

您是否尝试过使用会话? Cookie会将值存储在用户计算机上。每次加载页面时,该数据都会传输到您的Web服务器。

会话在服务器端存储数据。会话通过将会话ID作为cookie存储在用户的浏览器上,该cookie对应于存储在服务器上的会话。

如果您使用的是PHP,则可以使用

启动会话
<?php
session_start();
$_SESSION['key'] = 'value';
echo $_SESSION['key']; // outputs: value
?>