WEB制作者向け無料テーマ「Arkhe」をリリースしました

SiteGuard WP Pluginのエラーでログインできない!?急に「Use of undefined constant HTTPS」と表示されるようになってしまった時の対処法

先ほど、いつものようにWordPressにログインしようとすると真っ白な画面にエラーメッセージが表示され、ログインできなくなっていました。

相当ビビりましたが簡単に解決できたので、対処法を取り急ぎですがメモしておきます。

ちなみにこんなエラーメッセージでした。

sitegurdのエラーでログインできない!

 

目次

とりあえず落ち着いてエラーメッセージを見てみよう

Notice: Use of undefined constant HTTPS - assumed 'HTTPS' in /home/...hogehoge.../wp-content/plugins/siteguard/classes/siteguard-rename-login.php on line 106

Notice: Use of undefined constant HTTPS - assumed 'HTTPS' in /home/...hogehoge.../wp-content/plugins/siteguard/classes/siteguard-rename-login.php on line 106

Warning: Cannot modify header information - headers already sent by (output started at /home/...hogehoge.../wp-content/plugins/siteguard/classes/siteguard-rename-login.php:106)
 in /home/...hogehoge.../wp-includes/pluggable.php on line 1216

とりあえず最初のエラーを見てみると、「Use of undefined constant HTTPS」と書いてあります。

つまり、「HTTPSという定数なんて定義されてませんよ」ってエラーですね。

どこでエラーが起きているのかも書かれています。

.../wp-content/plugins/siteguard/classes/siteguard-rename-login.php on line 106

siteguardプラグインの中の、「siteguard-rename-login.php」というファイルの106行目ですね。

ということはこの部分を修正すれば良いわけです。

該当ファイルを修正する

「siteguard-rename-login.php」をFTPソフトなどでダウンロードして、中身を見てみましょう。

104行目からhandler_wp_redirectという関数が定義されており、以下のようになっています。

function handler_wp_redirect( $link, $status_code ) {
    if ( ( ( strlen( $link ) <= 5 || 'http:' !== strtolower( substr( $link, 0, 5 ) ) ) && ( strlen( $link ) <= 6 || 'https:' !== strtolower( substr( $link, 0, 6 ) ) ) )
    || ( isset( $_SERVER[HTTPS] ) && strtolower( $_SERVER[HTTPS] ) !== 'off' && 'https' === strtolower( substr( $link, 0, strpos( $link, '://') ) ) )
    || ( ( ! isset( $_SERVER[HTTPS] ) || strtolower( $_SERVER[HTTPS] ) === 'off' ) && 'http' === strtolower( substr( $link, 0, strpos( $link, '://') ) ) ) ) {
        $result = $this->convert_url( $link );
    } else {
        $result = $link;
    }
        return $result;
    }

106行目、107行目に犯人がいましたね。$_SERVER[HTTPS]という記述が4回ほど出てきています。

これはおそらく$_SERVER['HTTPS'}と、HTTPSをクオーテーションで囲むべきでしょう。

すげー凡ミスです。笑

$_SERVER[HTTPS]$_SERVER['HTTPS']と書き換え、FTPなどで再アップロードします。もちろん上書きしましょう。

これで私は解決しました!

自動アップデートも考えものですね

おそらく、SiteGuard WP Pluginが自動アップデートした際に発生したエラーだと思います。

私は手動でアップデートするのが面倒なのでプラグインを自動アップデートする設定にしていたのですが、これからは少し慎重に設定すべきかな、と思いました。

それにしてもいい迷惑です!

ちなみに、自動アップデートの設定方法は以下の記事にメモしているので気になった方はぜひ参考にしてみてください。(今回のような唐突なエラーに遭遇するかもしれないので、頻繁に自分で更新するサイトだけに設定しておきましょう)

あわせて読みたい
WordPressのバージョンアップデートやプラグインアップーデートの自動更新・自動配信メールに関する設定... 複数のWordPressサイトを管理していると、アップデートを手動で行うのがかなり面倒になってきますよね。 今回は、WordPressでバージョンアップやプラグインのアップデー...

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメント一覧 (1件)

  • siteguard-rename-login.php on line 106 でエラーになり検索してこのサイトにたどり着けました。
    参考にして修正したらログインできました。
    ありがとうございました!!

目次