ZenCart PHP4⇒PHP5 移行に伴うトラブル
5月中旬、突然管理画面にログインできなくなり、急遽以下の応急処置をしました。
その後、
1 新規ユーザー登録後、商品確定画面につながらない
2 購入商品がカートに入らない。
事に気づき、原因を調べるとサーバがPHP5に移行したの原因でした。
ZenCart 掲示板の記事を参照しましたが、うまくいかない。
php4.4.7 → php5.2.5 への切替
結論はZenCart日本語版のzen-cart-1.3.0.2-l10nはPHP5の対応が出来てない。
PHP4は2009年7月でサポート終了だそうです。
買い物できないのでは致命傷です!
最新版3.8のファイルをコピー、アップロードして、とりあえず解決しました。
しばらくこの状態で使ってみます。
★参考↓↓↓
includes/functions/sessions.php
*55行目
function _sess_write($key, $val) {
// The following is only to work around a PHP 5.2.0 bug:
global $db;
if (!is_object($db)) {
//PHP 5.2.0 bug workaround …
$db = new queryFactory();
$db->connect(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD, DB_DATABASE, USE_PCONNECT, false);
}
global $SESS_LIFE;
$expiry = time() + $SESS_LIFE;
$value = $val;
*103行目
function zen_session_start() {
@ini_set(’session.gc_probability’, 1);
@ini_set(’session.gc_divisor’, 2);
if (defined(’DIR_WS_ADMIN’)) {
@ini_set(’session.gc_maxlifetime’, (SESSION_TIMEOUT_ADMIN < 900 ? (SESSION_TIMEOUT_ADMIN + 900) : SESSION_TIMEOUT_ADMIN));
}
$temp = session_start();
if (!isset($_SESSION['securityToken'])) {
$_SESSION['securityToken'] = md5(uniqid(rand(), true));
}
if (ereg_replace(’[a-zA-Z0-9]‘, ”, session_id()) != ”) session_regenerate_id();
return $temp;
}
function zen_session_register($variable) {
die(’This function has been deprecated. Please use Register Globals Off compatible code’);
}