会话阵列不工作



所以我在会话中创建了一个数组,但由于某种原因,当我尝试向其添加内容时,它不再是数组。我不确定发生了什么。

添加项目

if(!isset($_SESSION['printsID']) && !isset($_SESSION['printsNum'])){
    $_SESSION['printsID']=array();
    array_push($_SESSION['printsID'],$_GET['itm']);
    $_SESSION['printsNum']=array();
    array_push($_SESSION['printsNum'],$_GET['num']);
    header('Location: google.com');
}
else{
    array_push($_SESSION['printsID'],$_GET['itm']);
    array_push($_SESSION['printsNum'],$_GET['num']);
    header('Location: http://www.repmofbla.com/SimmonsRedone/');    
}

获取项目

if(isset($_SESSION['printsNum'])){  
     $cartItems = array_sum($_SESSION['printsNum']);    
     $cartItems += sizeof($_SESSION['artwork']);
}
else{
     $cartItems = sizeof($_SESSION['artwork']);
}

任何帮助都会很棒。谢谢你们:)

(我也不是最好的PHP,所以我知道可能有更有效的方法可以做到这一点。请尊重)

更多详细信息:零件位于不同的页面上。奇怪的是,当您第一次上传 get 脚本时,它可以工作。一旦您使用 Add 脚本,它就会停止工作,然后数组不再"存在",但是如果我重新上传 get 脚本,它会再次工作。这是我遇到过的最奇怪的事情。

这是因为,您正在尝试重定向到不同的域。重定向到其他域不会使会话向前推进。

我让它在空白 PHP 中使用此代码,请尝试一下 - 也许可以帮助您弄清楚一些问题,但它完全适用于我这边。

<form action="currentPage.php" method="get">
    <button name="itm" value="ball">Ball</button>
    <input type="hidden" name="num" value="1234">
</form>
<br />
<form action="currentPage.php" method="get">
    <button name="itm" value="box">Box</button>
    <input type="hidden" name="num" value="4321">
</form>
<br />
<?php
session_start();
if (!isset($_SESSION['printsID']) && !isset($_SESSION['printsNum'])) {
    $_SESSION['printsID']=array();
    array_push($_SESSION['printsID'],$_GET['itm']);
    $_SESSION['printsNum']=array();
    array_push($_SESSION['printsNum'],$_GET['num']);
}
else {
    array_push($_SESSION['printsID'],$_GET['itm']);
    array_push($_SESSION['printsNum'],$_GET['num']);
}
print_r(array_values($_SESSION['printsID']));
print_r(array_values($_SESSION['printsNum']));
?>

最新更新