【问题标题】:Adding new value to PHP Session array向 PHP Session 数组添加新值
【发布时间】: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();在每一页。

标签: php arrays session


【解决方案1】:

您需要在脚本中使用 session_start()。如果不是,则在页面之间移动时会话将不会继续。

<?php

session_start();

// Your code

?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-21
    • 1970-01-01
    • 2017-09-16
    • 1970-01-01
    相关资源
    最近更新 更多