我正在使用会话将产品存储在我网站的购物车中。但是当我使用购物车中的现有商品登录时,它会将购物车中添加的最后一件商品的付款加倍。这是因为当我登录时它将再次启动一个会话(重复上一个会话)。我不知道如何解决这个问题。
在cart.php代码中
session_start();
if (isset($_GET['add'])) {
$quantity = mysql_query('SELECT id, quantity FROM products WHERE id='.mysql_real_escape_string((int)$_GET['add']));
while ($quantity_row = mysql_fetch_assoc($quantity)) {
if ($quantity_row['quantity']!=$_SESSION['cart_'.(int)$_GET['add']]) {
$_SESSION['cart_'.(int)$_GET['add']]+='1';
}
}
header('Location: ' . $_SERVER['HTTP_REFERER']);
}
`
init.php for login users
`
session_start();
require 'database/connect.php';
require 'functions/general.php';
require 'functions/users.php';
$current_file = explode('/', $_SERVER['SCRIPT_NAME']);
$current_file = end($current_file);
if (logged_in() === true) {
$session_user_id= $_SESSION['user_id'];
$user_data = user_data($session_user_id,'user_id','username','password', 'first_name','last_name','email','type','allow_email', 'profile');
if (user_active($user_data['username']) === false) {
session_destroy();
header('Location: index.php');
exit();
}
}
$errors=array();
答案 0 :(得分:2)
你可以做这样的事情
if (session_status() == PHP_SESSION_NONE) { //if there's no session_start yet...
session_start(); //do this
}
else{
//do other things...
}
<强>参考强>: http://www.php.net/manual/en/function.session-status.php