在我的应用程序的每个页面上调用的第一行代码是:
那个文件调用我的类,包括
SESSION
. 这个
会话
类调用
session_start()
在将任何内容输出到浏览器之前。
在一个页面上,我使用的表单有大量的复选框,都带有名称
photo_select
. 我将照片分成15组,然后在顶部提交用于分页的输入。
我的目标是抓住
$_POST
每当用户移动到一个新页面并跟踪它们时,变量都会出现。唯一复杂的是名为
光选择
,它保留任何选定复选框及其值的数组(我已将其设置为每个复选框的照片ID)。
每次单击一个分页提交按钮时,我需要使用提交的复选框数组并使用
array_merge
将其与先前选定复选框的已保存数组组合,以便跟踪所有页面中选定的所有照片。
我不想发布到临时数据库中保存查询数据库的信息。将正在运行的选择数组保持在
$_SESSION
变量。
为了测试这个,我有以下代码:
if( isset( $_POST['page'] ) ) {
// Picking up the form data and assigning it to variables
... variables
$photos = $_POST['photo-select'];
$_SESSION['photo_holder'] = $photos;
}
echo isset($_SESSION['photo_holder']) ? 'true' : 'false';
解决方案:
change line:
$_SESSION['photo_holder'] = $photos;
to:
if(isset($_POST['photo-select']) && !empty($_POST['photo-select'])) { $_SESSION['photo_holder'] = $photos; }
例如,如果我选择了3张照片并单击到另一个页面,它会返回为真(并且$\u session变量存储了一个由3张照片ID组成的数组)。这是完美的。
但是,如果我不再单击新页面上的照片,并移动到另一个页面,它将返回为false——因此,$u会话变量已被删除。
苏欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧*******
为什么,$会话变量不持久?