Home > ZEN Cart > ZenCart PHP4⇒PHP5 移行に伴うトラブル

ZenCart PHP4⇒PHP5 移行に伴うトラブル

6 月 3rd, 2009

5月中旬、突然管理画面にログインできなくなり、急遽以下の応急処置をしました。

ZenCart adminにログイン不能

その後、
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’);
  }

admin ZEN Cart

  1. 6 月 3rd, 2009 at 18:11 | #1

    はじめまして。
    僭越ながら、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 にあります。

    脆弱性対策もあるのでパッチを当てた方が安心かもしれません。

  2. 6 月 4th, 2009 at 08:32 | #2

    ご親切に有難うございます。
    テストドメインでzen-cart-v1.3.0.2-l10n-jp-4.zip作動を確認したく、準備中です。
    オンラインのお客様を考えて、タイミングを見てヴァージョンアップしたい。
    今後もよろしくお願いします。
       TKB  古賀

  1. No trackbacks yet.