如何为使用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>
₹{$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>
₹{$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的初学者
答案 0 :(得分:0)
我将创建另一个称为“ TOKEN”的会话变量,或者对当前Unix时间戳进行MD5哈希处理并将其存储为会话令牌。使用当前Unix时间戳的MD5哈希值可以确保每次都具有唯一的会话令牌。您可能希望在用户登录时创建该文件,并且还要在用户表的数据库中存储当前会话令牌。这样,您可以在令牌等于用户令牌的地方调用会话变量。您也可以采用创建cookie的方法。无论哪种方式,它们都既简单又有效。