Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
与本地主机相比,PHP数组初始化在实时站点上不起作用_Php_Ajax_Arrays_Session Variables_Shopping Cart - Fatal编程技术网

与本地主机相比,PHP数组初始化在实时站点上不起作用

与本地主机相比,PHP数组初始化在实时站点上不起作用,php,ajax,arrays,session-variables,shopping-cart,Php,Ajax,Arrays,Session Variables,Shopping Cart,问题是本地主机的结果与FTP推送的实时站点不匹配。这个 下面的代码似乎让我相信数组没有被创建 在服务器上正常运行。此外,它正在做一些时髦的事情,如下所示。错误是第97行的“无法将标量值用作数组”,或$\u会话[“计数”][$i]+=1。你知道原因吗?还是我犯了另一个错误 为了总结代码,以下会话数组构成了购物车的核心:$\u会话['item\u id'][$i],$\u会话['size'][$i], $\会话['price'][$i],$\会话['count'][$i]。。。它们都相互关联。因此,

问题是本地主机的结果与FTP推送的实时站点不匹配。这个 下面的代码似乎让我相信数组没有被创建 在服务器上正常运行。此外,它正在做一些时髦的事情,如下所示。错误是第97行的“无法将标量值用作数组”,或$\u会话[“计数”][$i]+=1。你知道原因吗?还是我犯了另一个错误

  • 为了总结代码,以下会话数组构成了购物车的核心:$\u会话['item\u id'][$i],$\u会话['size'][$i], $\会话['price'][$i],$\会话['count'][$i]。。。它们都相互关联。因此,将执行一项检查,以查看该组合是否存在,如果存在,将追加计数,如果不存在,将首次添加项目组合

  • 本地主机 实时站点-首次添加 实时站点-第二次添加 密码
    if(isset($\u会话[“item\u id”])和&is\u数组($\u会话[“item\u id”])){
    回显“不同项目计数:”.Count($\会话[“项目id]”);
    回声“
    ”; 回声“
    ”; 回显“项目数组:”; 打印($会话[“项目id”); 回声“
    ”; 回声“大小数组:”; 打印($_会话[“大小]); 回声“
    ”; 回声“价格数组:”; 打印($会话[“价格]); 回声“
    ”; 回声“计数数组:”; 打印($_会话[“计数]); 回声“
    ”; 回声“
    ”; } //检查访客购物车内容中的当前产品组合 //在购物车中查找计数 如果(!isset($\会话[“项目\u id”])){ $count=0; }否则{ $count=计数($\会话[“项目id]”); } echo$count; 回声“
    ”; 如果($count==0){ //声明数组 $\u会话[“项目id”]=array(); $\u会话[“大小”]=array(); $\u会话[“价格”]=array(); $\u会话[“计数”]=array(); $\u会话[“总计”]=array(); //将第一项添加到购物车 $\u会话[“项目id”][]=$item\u id; $\会话[“大小”][]=$size; $\会话[“价格”][]=$price; //筹款人和公司 if($_会话[“acctype”]==2 |$|$_会话[“acctype”]==3)和&isset($_会话['userid'])){ //更新计数,添加100 $_会话[“计数”][]=100; } 否则{ $\会话[“计数”][]=1; } }否则{ $flag=0; $i=0;
    虽然($i我没有看你的代码,但我有一个类似的问题,那是我的FTP客户端,在传输过程中,它只是改变了一些文本,导致了上面所示的错误


    我停止使用FileZilla,开始使用CyberDuck,一切都很好,检查您服务器上的代码并验证它是否已被更改。

    简短回答:检查是否使用
    var\u dump(ini\u get('register\u globals'))在您的实时服务器上启用了它。
    phpinfo()
    。如果启用了register\u globals,最好的解决方案是禁用register globals,这会导致安全问题,并且从PHP 5.3开始就不推荐使用

    详细回答:“不能将标量值用作数组”表示在作为数组引用的变量中存在标量值(例如数字)。我看不到有任何地方可以将标量直接分配给
    $\u会话[“count”]


    但是,如果启用,
    $count
    将成为对
    $\u会话[“count”]
    的引用,这意味着
    $count=0
    将设置
    $\u会话[“count”]
    为标量。同样,最好的解决方案是禁用register\u globals,但解决方法是将
    $count
    变量重命名为其他变量。

    您希望得到什么样的答案?您收到的错误是什么?错误未知时很难调试。我正在寻找有关错误或错误的答案解决方案..我重新格式化了上面的文本,因此您可以看到我希望live站点与本地站点匹配。错误:无法使用标量值作为数组..但是数组已定义。我再次检查了live站点,代码确实匹配。感谢您的建议。我想我比较了本地服务器和live服务器的php设置,但您是100%正确的。register_globals是打开的。我将其更改为关闭,本地和实时服务器都工作相同。非常感谢。正如您所说,关闭是更可取的配置,对吗?@chsnmyrhoades:是的,关闭非常可取。请参阅以查看为什么首选它的示例。
    In Stock: 3
    Distinct Item Count: 3
    
    Array ( [0] => 1 [1] => 2 [2] => 2 ) Item Array: 1
    Array ( [0] => S [1] => M [2] => L ) Size Array: 1
    Array ( [0] => 15 [1] => 20 [2] => 20 ) Price Array: 1
    Array ( [0] => 15 [1] => 35 [2] => 17 ) Count Array: 1
    
    Quantity Increased to 18 
    
    1 
    S 
    15
    15
    
    
    2 
    M 
    20
    35
    
    
    2 
    L 
    20 
    18 
    
    |3 ($1285) 
    
    In Stock: 5
    0
    
    
    1
    M
    20
    1
    
    |1 ($20)
    
    In Stock: 5
    Distinct Item Count: 1
    
    1Item Array: 1
    MSize Array: 1
    300Price Array: 1
    1Count Array: 1
    
    
    Warning: Cannot use a scalar value as an array in /public_html/shop/helper/addtocart.php on line 97
    Quantity Increased To
    
    1
    M
    2
    
    
    |1 ($0)  
    
        if (isset($_SESSION["item_id"]) && is_array($_SESSION["item_id"])){
            echo "Distinct Item Count: " . count($_SESSION["item_id"]);
            echo "<br/>";
            echo "<br/>";
            echo "Item Array: ";
            print_r($_SESSION["item_id"]);
            echo "<br/>";
            echo "Size Array: ";
            print_r($_SESSION["size"]);
            echo "<br/>";
            echo "Price Array: ";
            print_r($_SESSION["price"]);
            echo "<br/>";
            echo "Count Array: ";
            print_r($_SESSION["count"]);
            echo "<br/>";
            echo "<br/>";
        }
    
        //check for current product combination in visitor's shopping cart content
    
        //find count in cart
        if (!isset($_SESSION["item_id"])){
          $count = 0;
          }else{
            $count = count($_SESSION["item_id"]);
          }
        echo $count;
        echo "<br/>";
    
        if ($count == 0){
    
            //declare arrays
            $_SESSION["item_id"] = array();
            $_SESSION["size"] = array();
            $_SESSION["price"] = array();
            $_SESSION["count"] = array();
            $_SESSION["total"] = array();
    
            //add first item to cart
            $_SESSION["item_id"][] = $item_id;
            $_SESSION["size"][] = $size;
            $_SESSION["price"][] = $price;
              //fundraiser and corporate
              if (($_SESSION["acctype"] == 2 || $_SESSION["acctype"] == 3) && isset($_SESSION['userid'])){
                  //update count, add 100
                  $_SESSION["count"][] = 100;
                  }
              else{
                  $_SESSION["count"][] = 1;
              }
        }else{
            $flag=0;
            $i=0;
            while ($i <= $count){
               if( ($_SESSION["item_id"][$i] == $item_id) && ($_SESSION["size"][$i] == $size) ){
               //fundraiser and corporate
                  if(!isset($_SESSION["acctype"]) || $_SESSION["acctype"] == 1){
                     //update by one
                      $_SESSION["count"][$i] +=1;
                    }
                  elseif(isset($_SESSION['userid']) && ($_SESSION["acctype"] == 2 || $_SESSION["acctype"] == 3)){
                        //update count, add 100
                        $_SESSION["count"][$i] +=100;
                    }
                  else{
                      echo "Hmm";
                    }
                  //update cart stats
                  echo notify('Quantity Increased To' . ' ' . $_SESSION["count"][$i]);
                  //was there combination match?
                  $flag = 1;
                  }
            $i++;
            }
            if($flag == 0){
                      $_SESSION["item_id"][] = $item_id;
                      $_SESSION["size"][] = $size;
                      $_SESSION["price"][] = $price;
                        //fundraiser and corporate
                        if (($_SESSION["acctype"] == 2 || $_SESSION["acctype"] == 3) && isset($_SESSION['userid'])){
                            //update count, add 100
                            $_SESSION["count"][] = 100;
                        }else{
                        $_SESSION["count"][] = 1;
                        }
             }
        }