【发布时间】:2018-08-23 02:51:14
【问题描述】:
我的情况是加载到这个page.php时我在会话中有项目,
现在在表单上的这个 page.php 中提交它会将一些值发布到同一个 page.php,并且我正在尝试通过以下代码将发布值添加到现有会话值,
if (isset($_POST['special'])) {
for ($i = count($_SESSION['item']); $i <= count($_SESSION['item']); $i++) {
$index = ++$i;
$_SESSION['price'][$index] = $_POST['price'];
$_SESSION['item'][$index] = $_POST['name'];
}
}
正在执行以下操作以重新排列项目(因为我确实删除了特定项目)..
$k=0;
for ($j = 1; $j <= count($_SESSION['item']); $j++) {
if ($_SESSION['item'][$j] != '') {
++$k;
$itemName[$k] = $_SESSION['item'][$j];
$itemPrice[$k] = $_SESSION['price'][$j];
}
$_SESSION['item'] = $itemName;
$_SESSION['price'] = $itemPrice;
在回显 $_SESSION['item'] 的内容时,我发现 page.php 中新添加的可用,但是当我移至下一页时,新添加的会话单独丢失。
【问题讨论】:
-
这听起来很奇怪的问题。下一页是否显示任何错误?下一页是否在您当前的域之外?
-
你很奇怪!它在同一个域中。
-
你在每一页都做
session_start()吗?试试var_dump($_SESSION); -
您是否知道变量 $i 每次循环都会增加两次?一次通过 $index = ++$i;并在“for”循环本身中一次?
-
是的,ryan 是对的,为什么要增加两次呢?并检查你有 session_start();在每一页。