【Wordpres】siteGuard WP Pluginで画像認証でエラーWarning: imagepng()

つい先日WordpressのセキュリティプラグインsiteGuard WP Pluginで、
ログイン時の画像認証でエラーがでました。

その時のバージョンはWordpress4.9.8–ja、siteGuard WP Pluginが1.4.3。

Warning: imagepng():gd-png: fatal libpng error:Incompatible libpng version in application and library in.. というエラー

特にプラグインやWordpressのバージョンアップをした直後でもなかったのですが、Warnigがでてしまいました。
ぱっと見る限り認証画像を出力する箇所で出ているエラーのようです。


Warning: imagepng(): gd-png: fatal libpng error: Incompatible libping version in application and library in ********/siteguard/reallu-simple-captcha/siteguard-reallu-simple-captcha.php on line 221

エラー内容を和訳してみると、
「アプリケーションとライブラリの互換性のないバージョンのlibping」
との事。

バージョンの互換性がないよ、という事のようですね。

siteguard-reallu-simple-captcha.phpファイルの221行目のimagepng()をimagejpg()に差し替える

imagepng()を使ってpng形式で出力しているわけですが、
libpngライブラリでエラーが出てしまうので、

imagejpg()に差し替えてjpeg形式で出力する事で、
一旦このエラーはクリアにできました。

根本的な解決ではないですが。

<pre class="wp-block-preformatted">//siteguard-reallu-simple-captcha.phpの221行目あたり
switch ( $this->img_type ) {
    case 'jpeg':
        $filename = sanitize_file_name( $prefix . '.jpeg' );
        $file = $this->normalize_path( $dir . $filename );
        imagejpeg( $im, $file );
        break;
    case 'gif':
        $filename = sanitize_file_name( $prefix . '.gif' );
        $file = $this->normalize_path( $dir . $filename );
        imagegif( $im, $file );
        break;
    case 'png':
    default:
        $filename = sanitize_file_name( $prefix . '.png' );
        $file = $this->normalize_path( $dir . $filename );
        ////////////ここをimagepng()から差し替え//////////////
        imagejpeg( $im, $file );
        //////////////////ここを差し替え////////////////////////
}
</pre>

この記事はあなたの役に立ちましたか?

▼毎日をちょっと楽しく過ごす