【问题标题】:How to get osCommerce 2.2 running on PHP 5.4?如何让 osCommerce 2.2 在 PHP 5.4 上运行?
【发布时间】:2013-10-28 15:56:45
【问题描述】:

我最近将 PHP 升级到 5.4,在添加了一些调整之后,现在有很多自定义的客户的旧 osCommerce 安装再次运行,但仍然存在问题:

如果您将商品放入购物车,购物车将保持空置状态

我该如何解决这个问题?
我可以在 php.ini 中设置某个 php 值,以便会话正常工作吗?


到目前为止我所做的调整:

问题:所有价格均为0且没有货币
解决方法在`//
段落中添加!isset($currency) || (见$currency not set in application_top under PHP 5.4

问题: register_globals 从 PHP 5.4.0 开始被删除
解决方案: 我用这个模拟了 register_globalshttps://serverfault.com/a/547285/128892

我将此添加到includes/application_top.php

// Bugfix PHP 5.4:
$HTTP_USER_AGENT=$_SERVER["HTTP_USER_AGENT"];
$HTTP_ACCEPT_LANGUAGE=$_SERVER["HTTP_ACCEPT_LANGUAGE"];
$HTTP_HOST=$_SERVER["HTTP_HOST"];
$SERVER_NAME=$_SERVER["SERVER_NAME"];
$PHP_SELF=$_SERVER['PHP_SELF'];
$HTTP_GET_VARS=$_GET;
$HTTP_POST_VARS=$_POST;
register_globals();

注释掉这一行:

#ini_get('register_globals') or exit('FATAL ERROR: register_globals is disabled in php.ini, please enable it!');

我还必须更正 includes/functions/sessions.php: session_unregister()session_is_registered() 中删除的一些函数


遗留问题: 装入购物车的物品不会添加到购物车中。似乎 add_cart 页面中不知道该会话。

【问题讨论】:

  • 我无法解决最后一个问题,所以在尝试了不同的尝试后,我决定努力将商店的所有定制转换为 oscommerce 2.3。

标签: oscommerce php-5.4


【解决方案1】:

我也遇到了同样的问题。通过比较我的 2.2ms2 代码和 rc2a 版本发现的。

在 application_top 改变

$cart->add_cart($_POST['products_id'], $cart->get_quantity(tep_get_uprid($_POST['products_id'], $_POST['id']))+$quantity, $_POST['id']);

$cart->add_cart($_POST['products_id'], $cart->get_quantity(tep_get_uprid($_POST['products_id'], $_POST['id']))+$_POST['quantity'], $_POST['id']);

【讨论】:

    【解决方案2】:

    我无法解决最后一个问题,因此在尝试了不同的尝试后,我决定努力将商店及其所有定制转换为 oscommerce 2.3,它仍然在 PHP 5.4(最高 PHP 5.6)上运行。

    请注意,稍后,要让 oscommerce 在 php7 上运行,您需要对 mysql 函数进行另一个修复,以修复诸如 Undefined function mysql_connect()

    之类的问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-23
      • 2012-06-09
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      • 2011-04-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多