重定向不能在实时服务器上运行

时间:2014-02-21 10:33:18

标签: php html shopping-cart

这是指向测试域Domain Link

上的网站的链接

我遇到的问题是从购物车中删除商品。一切都在我的本地主机上工作,但一旦我上传到实时服务器,从购物车停止工作的删除项目。有人可以告诉我哪里出错了。谢谢团队。

<?php
    include_once("../php/cart_config.php");
    session_start();


    //add item in shopping cart
    if(isset($_POST["type"]) && $_POST["type"]=='add')
    {
        $product_code   = filter_var($_POST["product_code"], FILTER_SANITIZE_STRING); //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'=>1, '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
                        $qty = $cart_itm["qty"]+1; //increase the quantity
                        $product[] = array('name'=>$cart_itm["name"], 'code'=>$cart_itm["code"], 'qty'=>$qty, '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"], 'code'=>$cart_itm["code"], '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 exist in the list

                //continue only if quantity is more than 1
                //removing item that has 0 qty
                if($cart_itm["qty"]>1) 
                {
                $qty = $cart_itm["qty"]-1; //just decrese the quantity
                //prepare array for the products session
                $product[] = array('name'=>$cart_itm["name"], 'code'=>$cart_itm["code"], 'qty'=>$qty, 'price'=>$cart_itm["price"]);
                }

            }else{
                $product[] = array('name'=>$cart_itm["name"], 'code'=>$cart_itm["code"], 'qty'=>$cart_itm["qty"], 'price'=>$cart_itm["price"]);
            }

            //set session with new array values
            $_SESSION["products"] = $product;
        }
        //redirect back to original page
        header('Location:'.$return_url);
    }
    ?>

1 个答案:

答案 0 :(得分:0)

如果已经显示HTML,则无法输出PHP标头。你可以改用Javascript。

?>
 <script type="text/javascript">
   window.location = "<?php echo $return_url; ?>";
 </script>
<?php

这样做会一样,但它总能奏效!