0

Magento 1.7.0.2 をかなり新しくインストールしました。正常に動作する 2 つのカスタム支払い方法モジュールをインストールしました。しかし、支払い方法または配送方法を無効または有効にしようとすると、次のようなエラーが表示されます。

この構成の保存中にエラーが発生しました: 警告: preg_match() は、パラメーター 2 が文字列であると想定しています。配列は、57 行目の /app/code/core/Mage/Adminhtml/Model/System/Config/Backend/Encrypted.php で指定されています

理由はわかりますか?

編集2:

問題が見つかりました。以前のバグを修正するために適用したパッチが原因でした。:P

編集:

そのため、すべてのカスタム モジュールを無効にしましたが、それでも同じエラーが発生しました。何が起こっているのかを記録したところ、一部のコア モジュールが配列を送信して保存しているようです。

たとえば、PayPal Express Checkout のように。構成オプションの 1 つは、決済レポート設定の SFTP 資格情報の時刻です。3 つの異なるドロップダウンで構成され、保存する配列を送信しています!

Shipping Methods では、UPS には Allowed Methods と呼ばれる設定オプションがあり、配列も送信しています!

なぜそれが以前に起こらなかったのか、そして今では起こっていないのか、私にはまだわかりません。すべてを暗号化するべきではありません。手がかりはありますか?

4

4 に答える 4

3

私は同じ問題を抱えていました、それは既知のバグです、これを行番号の周りで試してください。code / core / mage / Adminhtml / model / config/data.phpの135

// add this code
$backendClass=false;
if (isset($fieldConfig->backend_model)) {
    $backendClass = $fieldConfig->backend_model;
}  // before this
if (!$backendClass) {
    $backendClass = 'core/config_data';
}
于 2012-11-20T05:22:34.077 に答える
2

これは実際には Magento で報告されたバグであり、暗号化された構成設定 (パスワード、API キーなど) に影響を与えると思われます。

http://www.magentocommerce.com/bug-tracking/issue?issue=14217

于 2012-11-02T14:51:49.843 に答える
0

最初のモジュールを無効にして、管理パネルからログアウトし、/var/cache をクリアして、問題がまだ存在するかどうかを確認してください。その場合は、2 番目のモジュールで同じことを行います。

問題はなくなるはずです。どのモジュールが問題を引き起こしているかがわかったので、代わりに別のモジュールを試すか、デバッグして何が問題なのかを確認することができます。

/app/code/core/Mage/Adminhtml/Model/System/Config/Backend/Encrypted.php の 57 行目にブレークポイントを設定して、何が問題なのかを確認します。preg_match関数に与えられたとき、2番目のパラメータは文字列ではないようです(たとえば、設定が間違っているなどの理由でnullである可能性があります)。おそらく、これは問題を特定するのに役立ちます。

よろしく

于 2012-09-07T08:01:07.310 に答える
-1

バックオフィスを介してモジュールを無効にすることは、ブロック出力を無効にするだけなので、良い考えではありません.モジュールを無効にしたい場合はapp/etc/modules、そこに行く必要がありModule_Name.xmlます.falseactive

于 2012-09-06T21:47:26.770 に答える