Php 如何使用会话存储收藏夹?

Php 如何使用会话存储收藏夹?,php,session,Php,Session,有人能帮我解决这个问题吗? 我正在尝试在我的网页上创建“收藏夹”功能。访问者可以看到不同的产品页面,并选择一种产品作为收藏夹。页面顶部是一幅图像。当访问者单击此图像时,页面将加载以下代码行: <?php session_start(); ini_set('display_errors', 1); error_reporting(E_ALL); define("PRODUCTNAME", 1); define("inURL", 1); if ($_SERVER['REQUEST_ME

有人能帮我解决这个问题吗? 我正在尝试在我的网页上创建“收藏夹”功能。访问者可以看到不同的产品页面,并选择一种产品作为收藏夹。页面顶部是一幅图像。当访问者单击此图像时,页面将加载以下代码行:

<?php 
session_start();

ini_set('display_errors', 1);
error_reporting(E_ALL);

define("PRODUCTNAME", 1);
define("inURL", 1);

if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
if (isset($_POST['productname']))
{
  AddToCart();
}
} 


function AddToCart()
{
$cart = isset($_SESSION['cart']) ? $_SESSION['cart'] : '';
$itemcount = isset($_SESSION['itemcount']) ? $_SESSION['itemcount'] : 0;
$event = $_POST['productname'];
$savelink = $_POST['url'];

$cart[PRODUCTNAME][$itemcount] = array('eventnaam' => $event, 'savelink' => $savelink, 'favSRC' => 'favJA');
$itemcount = $itemcount + 1;

$_SESSION['cart'] = $cart;
$_SESSION['itemcount'] = $itemcount;
header('Location: ' . $_POST['url']);
exit;
} 
?>
以上代码有效,我可以将多个产品标记为收藏夹,所有唯一的名称在页面右侧显示为文本,图像src完全更改为
favJA
(同一个星形,但带有颜色,因此访问者知道它已标记)。但是,只要我单击另一个产品并将此产品标记为favorit,它就会根据我的需要更改图像src,但会忘记之前标记的其他产品。右边的列表包含所有唯一的名称,它会记住所有标记的产品,但图像不会。该图像仅识别最后一个产品。一旦一个新产品被标记,它就会取消所有其他图像的标记


我错过了什么?无论标记了多少产品,我如何保持图像的标记?

当您使用标签时,您需要制作一系列图像,并将每个源添加到其中。并在循环函数中显示它们(
foreach
或任何您想要的)

因此我创建了一个解决方法。我在代码中添加了一个新的
SESSION
值,包含productpage的名称和图像的值

<?php 
session_start();

ini_set('display_errors', 1);
error_reporting(E_ALL);

 define("PRODUCTNAME", 1);
define("inURL", 1);

if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
   if (isset($_POST['productname']))
   {
      AddToCart();
   }
} 


function AddToCart()
{
   $cart = isset($_SESSION['cart']) ? $_SESSION['cart'] : '';
   $itemcount = isset($_SESSION['itemcount']) ? $_SESSION['itemcount'] : 0;
   $event = $_POST['productname'];
   $savelink = $_POST['url'];
   $longeventname = $_POST['longeventname'];
   $favIMGsrc = 'favJA';

   $cart[PRODUCTNAME][$itemcount] = array('eventnaam' => $event, 'savelink' =>     $savelink);
   $itemcount = $itemcount + 1;

   $_SESSION['cart'] = $cart;
   $_SESSION['event_url_'.$longeventname] = $favIMGsrc;
   $_SESSION['itemcount'] = $itemcount;
   header('Location: ' . $_POST['url']);
exit;
} 
?>

这就解决了问题

那么,我必须为我的所有产品创建一个数组还是仅为这两个图像创建一个数组?现在不太确定如何继续…我帮不了你,因为你没有发布相关的源代码。这里没有处理图像的PHP代码(也没有HTML)。现在唯一调用图像的是
.png“width=“28px”/>
<?php 
session_start();

ini_set('display_errors', 1);
error_reporting(E_ALL);

 define("PRODUCTNAME", 1);
define("inURL", 1);

if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
   if (isset($_POST['productname']))
   {
      AddToCart();
   }
} 


function AddToCart()
{
   $cart = isset($_SESSION['cart']) ? $_SESSION['cart'] : '';
   $itemcount = isset($_SESSION['itemcount']) ? $_SESSION['itemcount'] : 0;
   $event = $_POST['productname'];
   $savelink = $_POST['url'];
   $longeventname = $_POST['longeventname'];
   $favIMGsrc = 'favJA';

   $cart[PRODUCTNAME][$itemcount] = array('eventnaam' => $event, 'savelink' =>     $savelink);
   $itemcount = $itemcount + 1;

   $_SESSION['cart'] = $cart;
   $_SESSION['event_url_'.$longeventname] = $favIMGsrc;
   $_SESSION['itemcount'] = $itemcount;
   header('Location: ' . $_POST['url']);
exit;
} 
?>
<?php 
session_start();

ini_set('display_errors', 1);
error_reporting(E_ALL);

define("PRODUCTNAME", 1);

$cart = isset($_SESSION['cart']) ? $_SESSION['cart'] : '';
$eventURL = isset($_SESSION['event_url_blackout']) ? $_SESSION['event_url_blackout'] : '';
$itemcount = isset($_SESSION['itemcount']) ? $_SESSION['itemcount'] : 0;
$strHTML = "";

if ($itemcount == 0)
{
   $strHTML = "<font class='bewaardeItems'>U heeft nog geen evenementen aangeklikt.    </font>";
   $imageSRC = 'favNEE';
}
else
{
   $strHTML = "<div style=\"overflow:auto; height=358px;\">"."\n";
   $strHTML .= "<table border=\"0\" cellpadding=\"3\" cellspacing=\"2\"     width=\"100%\">"."\n";

   for ($i=0; $i<$itemcount; $i++)
   {
      $strHTML .= "<tr>"."\n";
      $strHTML .= "<td><a href='".$cart[PRODUCTNAME][$i]['savelink']."'     class='bewaardeItems'>".$cart[PRODUCTNAME][$i]['eventnaam']."</a></td>"."\n";
      $strHTML .= "</tr>"."\n";
   }

   $strHTML .= "</table>"."\n";
   $strHTML .= "</div>"."\n";
};

if ($eventURL == "favJA"){
    $imageSRC = 'favJA';
} else {
            $imageSRC = 'favNEE';
      }
?>