首頁  >  文章  >  後端開發  >  firefox php 驗證碼圖片 多次請求問題 待解決

firefox php 驗證碼圖片 多次請求問題 待解決

WBOY
WBOY原創
2016-07-29 09:11:031182瀏覽

??摘要:在使用GD庫做驗證碼的過程中,使用firefox調試,發現瀏覽器顯示的驗證碼圖片與firebug響應的驗證碼圖片不同,firebug響應的驗證碼圖片的字符串與session裡面存的字串相同,網路上查找以後,找到思路,有可能是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上(開啟firebug)首次訪問和刷新後的結果是(不貼圖片了,太麻煩):
首次訪問:1
圖片上右鍵另存為:3
firebug裡面回應的為:3
SESSION裡面是:3

總結:在沒有開啟firebug插件的時候,firefox頁面請求一次(是兩次中的第一次),伺服器端的這個PHP檔案實際上是被請求了兩次。在開啟firebug外掛的時候,firefox頁面要求第一次,不知道哪裡請求了第二次,firebug請求了第三次。

在chrome瀏覽器下均是訪問了一次,頁面顯示的圖片上的字符是SESSION中存儲的字符,運行是正常的

最後的總結:網上查說是出現這種問題可能是firefox的一個bug,我想應該不是這麼簡單的問題把,記錄在此,希望以後能查清楚這是什麼原因! ! !

').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

以上就介紹了firefox php 驗證碼圖片 多次請求問題 待解決,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn