4

プロジェクトの 1 つで Captcha.php を使用しました。すべてのブラウザで開きますが、Google chrome バージョン 22 では表示できません。

キャプチャ スクリプト

session_start();
$captcha = new SimpleCaptcha();
$captcha->CreateImage();

class SimpleCaptcha 
{
    function CreateImage()
    {
        header("Content-Type: image/jpeg");

        $md5              = md5(rand(0,9999));
        $pass             = substr($md5, 10, 5);
        $_SESSION["pass"] = $pass;

        $image     = ImageCreatetruecolor(100, 20);
        $clr_white = ImageColorAllocate($image, 0, 0, 0);
        $clr_black = ImageColorAllocate($image, 255, 255, 255);

        imagefill($image, 0, 0, $clr_white);
        imagefontheight(15);
        imagefontwidth(15);
        imagestring($image, 5, 30, 3, $pass, $clr_black);

        return imagejpeg($image);
        imagedestroy($image);
    }
}

HTML 実装

<img src="code/captcha.php" width="100" height="20" alt="Captcha Code"/>

Google Chrome では表示できません。すべてのブラウザが同じ画像を返します。

4

5 に答える 5

0

私は同じ問題に直面しました。カスペルスキーをオフにしました。現在は正常に動作しています。これを試すこともできます。

于 2012-10-30T07:15:52.060 に答える
0

Chrome は同じ画像をレンダリングし続けると思いますか? ヘッダーを送信して、ブラウザーに何もキャッシュしないように指示してみてください。

header('Pragma: no-cache');
header('cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 01 Jan 1999 00:00:00 GMT'); 
于 2012-10-30T08:05:48.077 に答える
0

キャッシュに関係している可能性があります。これを私のスクリプトとして使用しました。

header('Cache-Control: no-cache, must-revalidate');

その行だけで十分です。

于 2012-10-31T07:42:06.943 に答える
0

Chrome と一部のバージョンの Kaspersky の間で発生する既知の問題があります。

Kaspersky Anti-Virus が原因ではありませんが、Kaspersky Endpoint Security が原因です。

何らかの理由で、Web から動的に作成された画像を取得する際の 2 つのアプリケーションの対話中に、ヘッダーの Content Length が 1 バイトずれます。

ヘッダーの Content Length の値を変更すると、Chrome では機能しますが、すべて RFC に正しく準拠している Firefox、IE、および Opera では機能しません。

実際にどのアプリケーションに問題があるかはわかりませんが、自分で簡単に修正できるものではありません。

于 2013-02-20T13:50:21.143 に答える