在Session PHP

时间:2016-07-19 14:04:15

标签: php wordpress session

**更新** 代码现在正在运行。但是现在我希望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。因为对我而言只是

<?php the_title(); ?>

所以这对我来说不起作用:

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

每次......如何让它发挥作用?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

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

与任何其他PHP数组一样,每个值可以是单个标量,,例如book-title 字符串或单个数字, 它本身就是一个数组。 (这在概念上类似于&#34;二维数组。&#34;)每个那些数组键可以反过来导致您希望的任何其他类型的信息store:PHP数据结构可以任意深入,PHP会将它们存储在你的&#34;会话中。&#34;

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

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

... 完全,就像我对其他任何PHP数组一样。