我正在尝试启动一个会话,只需单击一下按钮,即可将产品名称保存到数组中-然后可以撤消这些名称并将其显示在名为“收藏夹”的页面上,该页面实际上只是产品列表查看器正在使用会话按钮进行保存。我似乎可以部分解决这个问题,即它最初是在我的收藏夹页面上显示该数组,但现在它根本不显示任何结果...
我是新手,我尝试从头开始重写,但是我正在拔头发,希望有人发现一个明显的错误可以为您提供帮助!
我在产品页面的开头有以下代码:
<?php
session_start();
if($_POST['submit'])
{
if(count($_SESSION['arr'])==0)
{
$ar=array();
$val=$_POST['value'];
array_push($ar,$val);
$_SESSION['arr']=$ar;
}
else
{
$val=$_POST['value'];
array_push($_SESSION['arr'],$val);
}
}
?>
在同一页面中包含以下代码(用于创建按钮):
<form action="/favourites" method="post">
<input type="hidden" name="value" value="<?php echo $pn;?>">
<input type="submit" name="submit" value="Submit">
</form>
(注意:<?php echo $pn;?>
从我的数据库中调用产品名称)
然后,在收藏夹页面的顶部,我有:
<?php
session_start();
?>
并且在“收藏夹”页面中,我尝试使用以下方式显示会话的内容:
<?php
print_R($_SESSION['arr']);
?>
当前,我的收藏夹页面根本不打印阵列,只是空白。
答案 0 :(得分:1)
如果您将数组保存在一个会话中会更好,那么可以使用 json_encode 函数对其进行编码,然后再使用 json_decode
对其进行解码推荐人:
示例编码:
<?php
session_start();
if($_POST['submit'])
{
if(count($_SESSION['arr'])==0)
{
$ar=array();
$val=$_POST['value'];
array_push($ar,$val);
$_SESSION['arr']=json_encode($ar);
}
else
{
$val=$_POST['value'];
array_push($_SESSION['arr'],$val);
}
}
?>
解码示例:
<?php var_dump(json_decode($_SESSION['arr']));?>
希望有帮助!
答案 1 :(得分:1)
使用以下内容编写会话: session_write_close()
<?php
session_start();
if($_POST['submit'])
{
if(count($_SESSION['arr'])==0)
{
$ar=array();
$val=$_POST['value'];
array_push($ar,$val);
$_SESSION['arr']=$ar;
}
else
{
$val=$_POST['value'];
array_push($_SESSION['arr'],$val);
}
session_write_close();
}
?>
并按如下所示更改“收藏夹”页面的代码:
<?php
session_start();
print_R($_SESSION['arr']);
session_write_close();
?>