1
<?php 
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//       Section 1 (if user attempts to add something to the cart from the product page)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (isset($_POST['pid'])) {
    $pid = $_POST['pid'];
    $wasFound = false;
    $i = 0;
    // If the cart session variable is not set or cart array is empty
    if (!isset($_SESSION["cart_array"]) || count($_SESSION["cart_array"]) < 1) { 
        // RUN IF THE CART IS EMPTY OR NOT SET
        $_SESSION["cart_array"] = array(0 => array("item_id" => $pid, "quantity" => 1));
    } else {
        // RUN IF THE CART HAS AT LEAST ONE ITEM IN IT
        foreach ($_SESSION["cart_array"] as $each_item) { 
              $i++;
              while (list($key, $value) = each($each_item)) {
                  if ($key == "item_id" && $value == $pid) {
                      // That item is in cart already so let's adjust its quantity using array_splice()
                      array_splice($_SESSION["cart_array"], $i-1, 1, array(array("item_id" => $pid, "quantity" => $each_item['quantity'] + 1)));
                      $wasFound = true;
                  } // close if condition
              } // close while loop
           } // close foreach loop
           if ($wasFound == false) {
               array_push($_SESSION["cart_array"], array("item_id" => $pid, "quantity" => 1));
           }
    }
    header("location: http://www.hirelogo.com/cart.php"); 
    exit();
}
?>

我在理解我遇到的错误时遇到了问题。如果有帮助的话,我最近刚刚使用更新版本的 PHP 切换到 VPS。这是错误:

Warning: Cannot modify header information - headers already sent by (output started at /home/hirelogo/public_html/cart.php:5) in /home/hirelogo/public_html/cart.php on line 40 

第 40 行是

header("位置:http ://www.hirelogo.com/cart.php ");

非常感谢任何有助于理解这一点的帮助。另一个注意事项。在切换之前没有发生此问题。

4

3 回答 3

1

如果在第 40 行调用了 header(),那么在您发布的代码的第一行之前,您的文档中有一些内容。因为我的标题位于代码的第 29 行。

在调用 header() 之前,您根本无法输出任何内容 在<?php开始标记之前发布您拥有的任何内容

于 2013-07-26T03:45:12.777 回答
1

该错误意味着在写入标头之前将“某物”推送到客户端。

  1. 检查是否有任何 BOM(字节顺序标记)导致了问题,如果您使用 UTF-8 或 UTF-16,很可能就是这种情况。
  2. 检查从请求文件开始的所有代码,一直到最后一个包含,直到脚本遇到错误,并确保在推出标头之前没有输出(如echoor )。sprintf
于 2013-07-26T03:47:00.043 回答
1
if (!isset($_SESSION["cart_array"]) || count($_SESSION["cart_array"]) < 1) {

尝试更改以下代码:

if (!isset($_SESSION["cart_array"]) || (isset($_SESSION['cart_array'])  && count($_SESSION["cart_array"]) < 1)) {

请注意您可能出现的错误?

于 2013-07-26T03:56:23.990 回答