0

标头重定向后会话变量丢失即使我使用过session_start(); in All Pages

这是我的代码..

<?php 
session_start();
$id=$_REQUEST['id'];
$pid=$_POST['pid'];
$_SESSION['pid']=$_POST['pid'];

加入购物车功能

include("cart/functions.php");
if($_REQUEST['command']=='add' && $_REQUEST['id']>0){
$id=$_REQUEST['id'];
addtocart($id,1);
header('location:shoppingcart.php');
exit();
}

单击此按钮后 $_SESSION['pid']=$_POST['pid'];` 从所有页面中消失?

<input type="button" class="button1" value="Add To Cart" 
 onclick="addtocart(<?php echo $row3['id']?>);" />
</div>
</div></form>
4

2 回答 2

1

header('location:shoppingcart.php');是强制重定向,发生这种情况时没有 POST,因此该行将$_SESSION['pid']=$_POST['pid'];不起作用。如果您必须进行无 cookie 会话,请查看use-trans-sidhttp ://www.php.net/manual/en/session.configuration.php#ini.session.use-trans-sid

于 2013-03-06T23:44:58.640 回答
0

您可能$_SESSION['pid'] = $_POST['pid']在每个请求中都设置了 - 即使您的 POST 甚至没有pid

尝试改变这一点

$_SESSION['pid']=$_POST['pid'];

对此

if (isset($_POST['pid'])) {
  $_SESSION['pid'] = $_POST['pid'];
}
于 2013-03-12T14:22:18.460 回答