我有一个用于预订产品的预订车,在某些时候,用户可以从他们的购物车中删除特定产品。
我需要帮助从会话数组中删除产品,因为我在尝试删除产品时不断收到错误消息“致命错误:无法取消设置字符串偏移”。
这是删除的代码
<?php
if(isset($_GET['inh_arr_key']) && isset($_GET['c_id'])) {
$inh_arr_key = $_GET['inh_arr_key'];
$del_c_id = $_GET['c_id'];
unset($_SESSION['inh_cart'][$inh_arr_key]);
$inh_cart = $_SESSION['inh_cart'];
// Parse the cart session variable
$inh_arr = explode(',',$inh_cart);
if (array_key_exists($inh_arr_key, $inh_arr)) {
echo '<p class="err_msg">Unable to delete selected course from your In-house course booking cart.</p>';
}
else{
$del_inh_query_course_info = @mysql_query("select * from inhouse_prod where id='".$del_c_id."'");
$del_inh_course_det = @mysql_fetch_assoc($del_inh_query_course_info);
$del_inh_course_title = $del_inh_course_det['title'];
echo '<p class="ok_msg"><strong>'.$ex_inh_course_title.'</strong> has been deleted from your In-house course booking cart.</p>';
}
}
?>
我已经获取并附加了每个产品数组键和值。所以这是由 $_GET 检索的,它们在这些变量中
$inh_arr_key = $_GET['inh_arr_key'];
$del_c_id = $_GET['c_id'];
只是为了提供有关该问题的更多详细信息,这里是将产品添加到购物车的代码,它工作正常
<?php
$c_id = $_GET['c_id'];
session_name("inh_cart");
session_start();
$inh_cart = $_SESSION['inh_cart'];
if ($inh_cart) {
$get_inh_arr = explode(',',$inh_cart);
if(in_array($c_id, $get_inh_arr)){
$inh_cart = $inh_cart;
?>
<script language="javascript">
window.location = "user_allc_booking.php?ex_inh_cid=<?php echo $c_id; ?>";
</script>
<?php
}
else {
$inh_cart .= ','.$c_id;
}
} else {
$inh_cart = $c_id;
}
$_SESSION['inh_cart'] = $inh_cart;
?>
<script language="javascript">
window.location = "user_allc_booking.php";
</script>
<?php
$inh_query_course_info = @mysql_query("select * from inhouse_courses where id='".$c_id."'");
$inh_course_det = array();
$inh_course_det = @mysql_fetch_assoc($inh_query_course_info);
$inh_course_title = $inh_course_det['title'];
?>
如果例如购物车包含 3 个产品,如果我执行 var_dump($_SESSION['inh_cart']);
输出将是:
string(8) "20,48,24"
真的需要删除产品的代码有什么问题。需要帮助。谢谢!