如何在PHP 5.4上运行osCommerce 2.2?

问题描述 投票:4回答:1

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

如果您将物品放入购物车,则购物车保持空白

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


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

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

问题:自PHP 5.4.0起,register_globals被删除 解决方案:我用这个模拟了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 php-5.4
1个回答
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']);
© www.soinside.com 2019 - 2024. All rights reserved.