6

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

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

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


到目前为止我已经调整了什么:

问题:所有价格都是0,没有货币
解决方法:!isset($currency) ||在段落中添加`//
(参见PHP 5.4下的application_top中没有设置$currency

问题:自 PHP 5.4.0 起,register_globals 已被删除
解决方案:register_globals我用这个进行了模拟: https ://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.phpsession_unregister()session_is_registered()


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

4

2 回答 2

0

我有同样的问题。通过比较我的 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']);
于 2014-09-13T12:54:50.353 回答
0

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

请注意,稍后,要让 oscommerce 在 php7 上运行,您需要对 mysql 函数进行另一个修复,以修复未定义函数 mysql_connect()等问题

于 2021-08-26T15:52:04.413 回答