php&;cookies:数组中访问的最后一个$articleid

php&;cookies:数组中访问的最后一个$articleid,php,cookies,Php,Cookies,我对饼干几乎没有经验,所以我不知道怎么做 我有一家t恤店,每件t恤都有一个$articleID 每次用户访问t恤页面时,我都会将$articleID添加到cookie中。 然后将它添加到数组或其他东西中,以便稍后检索它。 即使访问者访问了相同的$articleID两次,也不应该有任何重复的$articleID 然后在主页上,我想检索最近5次访问的$articleID列表,并显示ID列表 我怎么能这么做 谢谢 像这样的 <?php $article_id = 1; // Whichever

我对饼干几乎没有经验,所以我不知道怎么做

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

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

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

我怎么能这么做

谢谢

像这样的

<?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;
}
像这样的东西

<?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;
}

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

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

如果您使用的是PHP,那么可以使用

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

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

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

如果您使用的是PHP,那么可以使用

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

为了在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));

我希望这有帮助,并在这里有一个循环

以便在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));

我希望这有帮助,并且在这个

有一个循环,你是否考虑使用会话来代替?看看你是否考虑过使用会话?看一看,我从“cookies”方法中暗示,它不需要是持久性存储。不要从根本上改变我的答案。我更喜欢cookies,因为这项功能将用于在t恤店显示用户最近查看的t恤的列表。因此,我希望即使在会话过期后也能显示出来。我从“cookies”方法中暗示,它不需要是持久性存储。不要从根本上改变我的答案。我更喜欢cookies,因为这项功能将用于在t恤店显示用户最近查看的t恤的列表。所以我希望即使在会话过期后也能显示出来。我只是注意到,如果URL中没有WWW,cookie会有所不同。即使用户没有将WWW放在浏览器中,也可以共享同一个cookie吗?我只是注意到,如果URL中没有WWW,cookie将不同。即使用户没有将WWW放入浏览器,也可以共享同一个cookie吗?