PHP会话删除购物车小程序


PHP Sessions Remove Cart Iitems

我一直在四处寻找帮助,但找不到任何能解决问题的东西

我操纵了一个购物车代码来达到不同的目的我建立了一个角色扮演辅助网站www.rptoolkit.com/mechance,在那里你可以将NPC添加到遭遇战(购物车)中,然后在需要时删除它们,如果你想检查,该网站是在线的

问题是,脚本在本地主机上的XXMP主机上运行得很好,但在线直播,如果我在列表中添加4个人并尝试删除1个人,他们都会清除,第一行会重复(请随意测试)

下面是我用于删除项目按钮的脚本代码

<h1>Curent Encounter</h1>
 <div class="encounter-table">
    <?php
    $current_url = base64_encode($url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
    if(isset($_SESSION["encounter"]))
    {
        $cart_items = 0;
        foreach ($_SESSION["encounter"] as $cart_itm)   
        {
           $id = $cart_itm["code"];
           $results = $mysqli->query("SELECT * FROM products WHERE id='$id' LIMIT 1");
           $obj = $results->fetch_object();
    echo '<td><span> 
<a href="include/encounter_remove.php?removep='.$cart_itm["code"].'&return_url='.$current_url.'"><img src="images/icon_delete.gif" alt="Delete"><
/a></span></td>';

下面是我必须从遭遇战(购物车)中删除物品的代码

<?php
session_start();
include_once("config.php");
//remove item from encounter
if(isset($_GET["removep"]) && isset($_GET["return_url"]) && isset($_SESSION["encounter"]))
{
    $id = $_GET["removep"]; //get the product code to remove
    $return_url = base64_decode($_GET["return_url"]); //get return url

    foreach ($_SESSION["encounter"] as $cart_itm) //loop through session array var
        {
        if($cart_itm["code"]!=$id){ //item does,t exist in the list
            $product[ ] = array('code'=>$cart_itm["code"]);
            }
        //create a new product list for cart
        $_SESSION["encounter"] = $product;
        }
    //redirect back to original page
    header('Location:'.$return_url);
}
?>

我很乐意得到任何帮助或建议,我必须修复它,我不知道从我的XXMP到服务器的不同PHP版本是否可能会出现问题?

再次感谢,Trev

会话变量大小可以受到浏览器的限制。根据`$_SESSION['encounter']中存储的数据量,您可能已达到限制。考虑只存储id号或类似的东西,而不是更复杂的对象和/或数组。