【问题标题】:Store mutiple values in Session PHP在 Session PHP 中存储多个值
【发布时间】:2026-01-23 23:00:02
【问题描述】:

** 更新 ** 该代码现在正在运行。但现在我想让div 显示保存的会话。此 div 与项目位于同一页面上,名为 items 我尝试使用刷新脚本。但这不起作用。

这是否可以通过 jQuery 实现,或者我应该使用 AJAX(我还没有真正“进入”Ajax)...

Owke,让我们看看我是否能尽我所能解释这一点...我正在为我正在制作的网站使用 Wordpress 我想存储自定义点击的“喜欢”项目。

所以我所做的是在我的标题中打开一个会话

<?php
    session_start();
?>

然后在需要存储“喜欢”的页面上我有以下代码:

<?php
    // Set session variables
    $_SESSION["item"] = get_the_title();
?>

在我想echo 的地方我放了这段代码:

<?php
    if(isset($_SESSION['item'])){
    echo $_SESSION['item'];
    };
?>

这一切都像它应该的那样工作,但是一个页面上有多个自定义项目可能会喜欢。而且我想将它们全部存储在我的会话中。但它一次只存储 1 个会话。

我是否需要使用多个前缀,例如 item-x 和 item-y?

我找到了这段代码:link

但是因为我使用的是 Wordpress,我只想要标题,所以我不能用你的产品 ID 替换 $apples、$oranges 和 $pears。因为对我来说只是

&lt;?php the_title(); ?&gt;

所以这对我来说是行不通的:

<?php
    // Set session variables
    $_SESSION["boot"] = array(); 
    $_SESSION["boot"][] = the_title();
?>

每次...如何让它工作?

【问题讨论】:

    标签: php wordpress session


    【解决方案1】:

    您每次都在覆盖您的item 会话。你需要把它变成一个数组。

    $_SESSION["item"][] = get_the_title();
    

    现在echo他们,你想摆脱重复,所以使用array_unique()

    if(isset($_SESSION['item'])){
        echo implode("<br />", array_unique($_SESSION['item']));
    }
    

    POC:https://repl.it/Cd7l

    【讨论】:

    • 感谢代码!它就像一个魅力!唯一的事情是......它显示了所有项目,而不是我标记为“喜欢”的项目。
    • 我需要先销毁会话吗?使用&lt;?php // remove all session variables session_unset(); // destroy the session session_destroy(); ?&gt;
    【解决方案2】:

    稍微详细说明一下刚才所说的内容:$_SESSION[] 是一个数组,与任何其他 PHP 数组一样,它在一个或多个“键”下存储任意值,例如 "item"

    与任何其他 PHP 数组一样,每个值都可以是单个 标量, 例如书名 字符串 或单个 数字, 它本身可以是一个数组。 (这在概念上类似于“二维数组”。)那些数组键中的每一个都可以反过来导致您希望存储的任何其他类型的信息:PHP 数据结构可以任意深,PHP 会将其全部存储在您的“会话”中。

    现在,如果是我,我可能会在存储值时消除重复项,这样我就可以确定存储的会话信息根本不包含重复项。因此,当我echoed 他们时,我不必做任何特别的事情。像这样的:

    $_SESSION["item"] = array_unique($_SESSION["item"]);
    

    ...完全是,就像我对任何其他 PHP 数组所做的那样。

    【讨论】:

    • 感谢您的详细说明!