购物车会话问题



如何使用PHP为登录用户存储购物车会话。 我注意到登录时向所有用户显示相同的购物车信息,这是错误的。 每个用户都应该根据他们可能添加的内容拥有自己不同的购物车信息。 如何将购物车信息绑定到登录用户或每个用户。

添加到购物车 PHP

if(isset($_GET['add'])){
$query = query("SELECT * FROM product WHERE product_id=" . escape_string($_GET['add']). " ");
confirm($query);
while($row = fetch_array($query)){
if($row['product_quantity'] !=$_SESSION['product_' . $_GET['add']]){
$_SESSION['product_' . $_GET['add']]+=1;
redirect("cart.php");
} else {
set_message("We have only" . $row['product_quantity'] . " " . "Available");
redirect("cart.php");
}
}
}

在购物车中显示价值

$total = 0;
$item_quantity = 0;
foreach($_SESSION as $name =>$value){
if($value > 0){
if(substr($name, 0, 8) == "product_"){
$lenght = strlen($name) - 8;
$id = substr($name, 8 , $lenght);
$query = query("SELECT * FROM product WHERE product_id = " . escape_string($id) . " ");
confirm($query);
while($row= fetch_array($query)){
$sub = $row['product_price']*$value;
$item_quantity +=$value;
$product = <<<DELIMETER
<tr>
<td class="col-xs-1">
<img src="images/products/{$row['product_image']}" alt="" class="img-responsive">
</td>
<td class="col-xs-4 col-md-5">
<h4>
<a href="single-product.php">
{$row['product_title']}
</a>
<small>
M, Black, Esprit
</small>
</h4>
</td>
<td class="col-xs-2 text-center">
<span>
&#x20B9;{$row['product_price']}
</span>
</td>
<td class="col-xs-2 col-md-1">
<a href="carts.php?remove={$row['product_id']}" class='btn btn-primary'>
<i class='fa fa-minus'></i>
</a>
<div class="form-group">
<input type="text" class="form-control" value="{$value}">
</div>
<a href="carts.php?add={$row['product_id']}" class='btn btn-primary'>
<i class='fa fa-plus'></i>
</a>
</td>
<td class="col-xs-2 text-center">
<span>
<b>
&#x20B9;{$sub}
</b>
</span>
</td>
<td class="col-xs-1 text-center">
<a href="carts.php?delete={$row['product_id']}" class="btn btn-primary">
<i class="fa fa-times"></i>
</a>
</td>
</tr>
DELIMETER;
echo $product;
}
$_SESSION['item_total'] = $total += $sub;
$_SESSION['item_quantity'] = $item_quantity;           
}
}
}

我有用户会话 $_SESSION['user_email'],但无法知道如何与不同用户的购物车会话链接。我是 php 的初学者

我会创建另一个名为"TOKEN"的会话变量,也许可以对当前Unix时间戳进行MD5哈希并将其存储为会话令牌。使用当前 Unix 时间戳的 MD5 哈希可以保证每次都有唯一的会话令牌。您可能希望在用户登录时创建此令牌,并将当前会话令牌存储在用户表的数据库中。这样,您可以调用令牌等于用户令牌的会话变量。您也可以走创建 cookie 的路线。无论哪种方式,它们都易于操作且有效。

最新更新