我看到了一些奇怪的行为:
我用一些值设置了两个会话:$_SESSION['shippingZip']
和$_SESSION['shippingOption']
。
然后我的代码通过这个代码来发布以一种形式发送的输入值:
$shippingOption = $_POST['shippingOption'];
Print_r ($_SESSION);
$shippingZip = $_POST['shippingZip'];
这些POST在此过程中为空。但是,Print显示我的会话$_session["shippingOption"]为空,而它应该显示以前分配给它的字符串。--------------------------张贴完整证明会话加载了一些数据:
$_SESSION['shippingOption'] = $shippingOption;
$_SESSION['shippingZip']= $shippingZip;
然后:
Print_r ($_SESSION);
$shippingOption = $_POST['shippingOption'];
Print_r ($_SESSION);
$shippingZip = $_POST['shippingZip'];
Print_r ($_SESSION);
输出:
Array ( [itemAdded] => 1 [Payment_Amount] => 46.52 [cart] => Array ( [4] => Array ( [itemId] => 4 [qty] => 1 ) ) [shippingOption] => FIRST CLASS [shippingZip] => 10025 [shippingPrice] => 1.52 )
Array ( [itemAdded] => 1 [Payment_Amount] => 46.52 [cart] => Array ( [4] => Array ( [itemId] => 4 [qty] => 1 ) ) [shippingOption] => [shippingZip] => 10025 [shippingPrice] => 1.52 )
Array ( [itemAdded] => 1 [Payment_Amount] => 46.52 [cart] => Array ( [4] => Array ( [itemId] => 4 [qty] => 1 ) ) [shippingOption] => [shippingZip] => [shippingPrice] => 1.52
您可以清楚地看到,在每次POST之后,具有相同名称的SESSION是如何丢失其值的。太疯狂了!!!
$_POST
不直接填充$_SESSION
。您需要将值分配给会话
即
$_SESSION['shippingOption'] = $_POST['shippingOption'];
编辑
在您发布了更多代码之后,看起来您在设置$_SESSION['shippingOption'] = $shippingOption;
之前没有定义$shippingOption;
确保订单如下:
$shippingOption = $_POST['shippingOption'];
$_SESSION['shippingOption'] = $shippingOption;