2014-09-06 3 views
0

Я искал вокруг на помощь, но не могу найти что-нибудь, что будет исправить мою проблемуPHP Сессии Удалить Корзина Iitems

Я манипулировал код корзины служить другой целью Im выпуклой сайта помощи ролевой игры www.rptoolkit.com/encounter, где вы добавляете NPC в столкновение (Cart), и вы можете удалить их, когда это необходимо, сайт находится в режиме онлайн, если вы хотите проверить

проблема заключается в том, что скрипт отлично работает в хосте 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); 
} 
?> 

Я хотел бы любую помощь или посоветуйте, могу ли я исправить это, я не знаю, возможно ли его приход к другим версиям PHP с моего XXMP на сервер?

Еще раз спасибо, Trev

ответ

0

сессия переменного размера может быть ограничено браузером. В зависимости от того, сколько данных хранится в `$ _SESSION ['встреча], вы можете достичь предела. Учитывайте только сохранение идентификационных номеров или что-то подобное вместо более сложных объектов и/или массивов.