私は継承されたサイトを持っていて、新しいホスティングサイトへの移行後に正常に動作し、新しいSmarty 2.6.3とPHP 5.6にアップグレードしています。今日、私はいくつかのユーザーの苦情の後、サイトから電子メールを受信していない(メンバー登録)後にテストを行っていました。phpMailer関数の新しいSmarty()の致命的なエラー
今日このエラーが発生し始めましたFatal error: Cannot redeclare class Smarty
調査の結果、システムには2つの$temp = new Smarty()
ステートメントがあることがわかりました。ユーザーがログインするときに呼び出され、phpmailer
を使用するクラスEmailer
の2番目のステートメントがシステムにあります。
初期のSmartyセットアップ変数を参照しようとすると、エラーが発生します(call to null
)。私がemailerですばらしいコードを削除しても、電子メールは呼び出されません。私が言ったように、年間のカップルのための罰金を働いて...先月のコードへの変更はありません...ここで
// Setup.php
require('../Smarty-2.6.30/libs/Smarty.class.php');
$_TEMP = new Smarty();
class Emailer {...
require('../Smarty-2.6.30/libs/Smarty.class.php');
$temp = new Smarty();
...}
必要電子メール機能では、電子メールの本文にSmartyテンプレートを使用します。
私は、emailer関数でSmartyを使用する必要があるということは、電子メールの本文にSmartyテンプレートを使用することです。 – Ben
上記のコードは1つのファイルからのものですか? –
申し訳ありません。もう1つは電子メール機能(cEmailer.php)を設定する別のクラスファイルにあります。 setup.phpはindex.phpコードによって呼び出されます。 cEmailerは、電子メールを送信するさまざまなモジュールによって呼び出されます。 – Ben