製品を予約するための予約カートがあり、ある時点で、ユーザーはカートから特定の製品を削除できます。
製品を削除しようとすると、「致命的なエラー: 文字列オフセットを設定解除できません」というエラー メッセージが表示され続けます。
削除するコードはこちら
<?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"
製品を削除するためのコードの何が問題なのか本当に必要です。これには助けが必要です。ありがとう!