会话数组不起作用

时间:2015-04-29 14:16:42

标签: php session

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

添加项目

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脚本它退出工作,然后数组不再#34;存在",但如果我重新上载get脚本它再次工作。这是我遇到过的最奇怪的事情。

2 个答案:

答案 0 :(得分:2)

那是因为,您正试图重定向到不同的域。重定向到不同的域并不会带来会话。

答案 1 :(得分:0)

我让它在一个空白的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']));

?>