WordPress 3.5には、特定のセキュリティリスクを軽減するためにいくつかの大きな変更が加えられました(SQL Injectionなど)。プラグイン開発者が引数を分離するのではなく完全なクエリを送信していたので、wpdb::prepare
メソッドが安全に使用されていませんでした。これは、 'prepared'ステートメントが準備されていないことを意味し、実際には照会に直接パラメーターを渡していました。これはセキュリティー・ノー・ノーです。 3.5から、このメソッドは3つの引数を取るようになりました。
、あなたの当面の問題に対処するphp.iniファイルを編集し、error_reporting
の行を見つけて、次のように変更するには...
error_reporting(E_ALL & ~(E_NOTICE|E_WARNING));
は、サーバーを再起動し
。
これにより、すべてのマイナースクリプトエラーが報告されなくなります。
また、エラーをログファイルに送信します。 php.iniで、...あなたのウェブサイト上に表示されてからエラーを防止します
error_log "/path/to/php-error.log"
をこの行を(それをアンコメント)を見つけると、それを変更します。代わりに、あなただけが見ることができるログに書き込まれます。
このエラーが気になる場合は、不正なプラグインにダミー値を使用させてください。私たちは、影響を受けたプラグインは、法第二と第三引数としてnull
を送信することにより、... wpdb::prepare
方法は3つの引数を取ること
$wpdb->query(
$wpdb->prepare(
"
DELETE FROM $wpdb->postmeta
WHERE post_id = %d
AND meta_key = %s
",
13, 'stack overflow'
)
);
を見ることができ、それは問題を完全に解決します。
/home/content/52/8331652/html/wp-content/themes/chateau-2.0/functions.phpファイルを開き、91行目に貼り付けると、何が起きているのかがわかります。 –
'themes/chateau-2.0/functions.php'の91行目でエラーを生成している関数を表示できますか? –
多分あなたは[Googleそれ次回](http://make.wordpress.org/core/2012/12/12/php-warning-missing-argument-2-for-wpdb-prepare/) –