ホームページ  >  記事  >  バックエンド開発  >  Firefox php 検証コード画像の複数のリクエストの問題を解決する必要があります

Firefox php 検証コード画像の複数のリクエストの問題を解決する必要があります

WBOY
WBOYオリジナル
2016-07-29 09:11:031182ブラウズ

??要約: GD ライブラリを使用して検証コードを作成し、Firefox を使用してデバッグする過程で、ブラウザで表示される検証コードの画像が、firebug で応答される検証コードの画像と異なることがわかりました。 firebug によって応答された検証コードのイメージは、保存されている文字列と同じです。オンラインで検索したところ、Firefox ブラウザーで表示されたリクエストと同じではない可能性があります。 Firebug からのリクエストがあったので、以下の検証を行い、この問題を記録しました。

??この問題をより適切に検証するために、元のコードが合理化され、この問題の検証により適したように変更されました。さて、コードから始めましょう。

<code><span><span><?php</span>
header(<span>"content-type:image/png"</span>);
session_start();
<span>if</span> (<span>isset</span>(<span>$_SESSION</span>[<span>'index'</span>])) {
    <span>$_SESSION</span>[<span>'index'</span>] += <span>1</span>;
}<span>else</span>{
    <span>$_SESSION</span>[<span>'index'</span>] = <span>1</span>;
}

<span>$width</span> = <span>80</span>;
<span>$height</span> = <span>20</span>;
<span>$vCodeString</span> = <span>""</span>;

<span>$vCodeString</span> = <span>"{$_SESSION['index']}"</span>;
<span>$_SESSION</span>[<span>'vcode'</span>] = <span>$vCodeString</span>;

<span>$image</span> = imagecreate(<span>$width</span>,<span>$height</span>);
<span>$background</span> = imagecolorallocate(<span>$image</span>,<span>255</span>,<span>255</span>,<span>255</span>);
<span>$fontcolor</span> = imagecolorallocate(<span>$image</span>, <span>0</span>, <span>0</span>, <span>0</span>);
imagestring(<span>$image</span>, <span>5</span>, <span>0</span>, <span>0</span>, <span>$vCodeString</span>, <span>$fontcolor</span>);
imagepng(<span>$image</span>);
imagedestroy(<span>$image</span>);

<span>?></span></span></code>

??コードは非常に簡単なので、ここでは説明しません。
以下は、Firefox で最初にアクセスして更新した後の結果です (Firebug を有効にしていない場合):

初回訪問: firefox php 验证码图片 多次请求问题 待解决
確認コードの画像を右クリックして名前を付けて保存し、ローカルに保存します: firefox php 验证码图片 多次请求问题 待解决
次に、SESSION にも 2 つ保存されています

リフレッシュ後: firefox php 验证码图片 多次请求问题 待解决

??以下は、Firefox で最初にアクセスしてリフレッシュした後の結果です (ファイアバグはオンになっています) (写真はありません、面倒すぎます):
初回訪問者: 1
画像を右クリックして名前を付けて保存: 3
firebug の応答は次のとおりです: 3
SESSION の内容: 3

概要: firebug プラグインが有効になっていない場合、firefox ページは 1 回 (2 回のうちの 1 回目) リクエストされ、サーバー側の PHP ファイルは実際には 2 回リクエストされます。 firebug プラグインをオンにすると、1 回目は firefox ページがリクエストされ、2 回目はどこにあるのかわかりませんが、3 回目は firebug がリクエストされます。

Chromeブラウザで一度アクセスしてみたところ、ページに表示されている画像の文字はSESSIONに保存されている文字であり、動作は正常です

最終まとめ:この問題が発生する可能性があることをオンラインで確認しました。 Firefox のバグだと思いますが、今後、その理由を調べていきたいと思います。 ! !

End

').addClass('事前番号付け').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

上記は、Firefox の PHP 検証コード画像の複数リクエストの問題を解決する方法を内容も含めて紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。