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’);
}
はじめまして。
僭越ながら、zen-cart-v1.3.0.2-l10n-jp-3 以降はPHP5(MySQL5も)に対応してますよー。
10n-jp-3のちょっとしたバグ対応と脆弱性に対するパッチを含んだ zen-cart-v1.3.0.2-l10n-jp-4 が最新です。
パッチも http://zen-cart.jp/62.html にあります。
脆弱性対策もあるのでパッチを当てた方が安心かもしれません。
ご親切に有難うございます。
テストドメインでzen-cart-v1.3.0.2-l10n-jp-4.zip作動を確認したく、準備中です。
オンラインのお客様を考えて、タイミングを見てヴァージョンアップしたい。
今後もよろしくお願いします。
TKB 古賀