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 を使用しないセッションを行う必要がある場合は、httpuse-trans-sid : //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 に答える