??摘要:在使用GD庫做驗證碼的過程中,使用firefox調試,發現瀏覽器顯示的驗證碼圖片與firebug響應的驗證碼圖片不同,firebug響應的驗證碼圖片的字串與session裡面存的字串相同,網上尋找以後,找到思路,有可能是firefox的瀏覽器顯示的請求與firebug的請求不是一個請求,故做下面的驗證,記錄這個問題。
??為了更針對這個問題做出驗證,將原代碼進行了精簡和修改,更適合於驗證這個問題。好,先上代碼。
header("content-type:image/png");session_start();if (isset($_SESSION['index'])) { $_SESSION['index'] += 1;}else{ $_SESSION['index'] = 1;}$width = 80;$height = 20;$vCodeString = "";$vCodeString = "{$_SESSION['index']}";$_SESSION['vcode'] = $vCodeString;$image = imagecreate($width,$height);$background = imagecolorallocate($image,255,255,255);$fontcolor = imagecolorallocate($image, 0, 0, 0);imagestring($image, 5, 0, 0, $vCodeString, $fontcolor);imagepng($image);imagedestroy($image);?>
??代碼很簡單,這裡就不做解釋了。
下面把在firefox上(沒有開啟firebug)首次訪問和重新整理後的結果貼上:
首次訪問:
在驗證碼圖片上右鍵另存新檔,儲存到本地是:
然後SESSION 裡面存的也是2
重新整理後:
??下面把在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 <= lines; i++) { $numbering.append($('
').text(i)); }; $numbering.fadeIn(1700); }); });
以上就介紹了firefox php 驗證碼圖片 多次請求問題 待解決,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。