我目前正在开发购物车系统.它需要用户登录才能访问购物车.所以我写了一些代码来禁止访问购物车页面,如果用户没有登录.但是,每当我尝试清空购物车时,我都会退出.我只想破坏购物车会话而不是用户会话.这是我的代码:
原文链接:https://www.f2er.com/php/136590.html对于购物车页面:
<?PHP session_start(); if(isset($_SESSION['userID'])){ } elseif(!isset($_SESSION['userID'])){ echo "<script> alert('You must be logged in.'); window.location.href='index.PHP#login' </script>"; } ?> <?PHP include ('../import/layout.PHP'); ?> <body> <div class="site-wrapper" id="index"> <div class="site-wrapper-inner"> <div class="cover-container"> <?PHP include ('../import/nav-two.PHP'); ?> <!-- <div class="inner cover"> </div> <div class="mastfoot"> <div class="inner"> <p>© 2015 Aroma Chicken House Restaurant,All Rights Reserved. <a class="menu-item pull-right" href="#index">Back to Top</a> </p> </div> </div> --> </div> <div id="cart"> <div class="container"> <?PHP include ('../cart/index.PHP'); ?> </div> </div> </div> </div> </body>
对于购物车更新:
<?PHP session_start(); include_once("config/config.PHP"); //empty cart by distroying current session if(isset($_GET["emptycart"]) && $_GET["emptycart"]==1) { $return_url = base64_decode($_GET["return_url"]); //return url session_destroy(); header('Location:'.$return_url); } //add item in shopping cart if(isset($_POST["type"]) && $_POST["type"]=='add') { $product_code = filter_var($_POST["product_code"],FILTER_SANITIZE_STRING); //product code $product_qty = filter_var($_POST["product_qty"],FILTER_SANITIZE_NUMBER_INT); //product code $return_url = base64_decode($_POST["return_url"]); //return url //MysqLi query - get details of item from db using product code $results = $MysqLi->query("SELECT product_name,price FROM products WHERE product_code='$product_code' LIMIT 1"); $obj = $results->fetch_object(); if ($results) { //we have the product info //prepare array for the session variable $new_product = array(array('name'=>$obj->product_name,'code'=>$product_code,'qty'=>$product_qty,'price'=>$obj->price)); if(isset($_SESSION["products"])) //if we have the session { $found = false; //set found item to false foreach ($_SESSION["products"] as $cart_itm) //loop through session array { if($cart_itm["code"] == $product_code){ //the item exist in array $product[] = array('name'=>$cart_itm["name"],'code'=>$cart_itm["code"],'price'=>$cart_itm["price"]); $found = true; }else{ //item doesn't exist in the list,just retrive old info and prepare array for session var $product[] = array('name'=>$cart_itm["name"],'qty'=>$cart_itm["qty"],'price'=>$cart_itm["price"]); } } if($found == false) //we didn't find item in array { //add new user item in array $_SESSION["products"] = array_merge($product,$new_product); }else{ //found user item in array list,and increased the quantity $_SESSION["products"] = $product; } }else{ //create a new session var if does not exist $_SESSION["products"] = $new_product; } } //redirect back to original page header('Location:'.$return_url); } //remove item from shopping cart if(isset($_GET["removep"]) && isset($_GET["return_url"]) && isset($_SESSION["products"])) { $product_code = $_GET["removep"]; //get the product code to remove $return_url = base64_decode($_GET["return_url"]); //get return url foreach ($_SESSION["products"] as $cart_itm) //loop through session array var { if($cart_itm["code"]!=$product_code){ //item does,t exist in the list $product[] = array('name'=>$cart_itm["name"],'price'=>$cart_itm["price"]); } //create a new product list for cart $_SESSION["products"] = $product; } //redirect back to original page header('Location:'.$return_url); } ?>