>  기사  >  백엔드 개발  >  Firefox PHP 확인 코드 이미지 해결해야 할 다중 요청 문제

Firefox PHP 확인 코드 이미지 해결해야 할 다중 요청 문제

WBOY
WBOY원래의
2016-07-29 09:11:031214검색

?? 정리: 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에서 처음 액세스하고 새로 고친 후의 결과입니다(firebug가 켜져 있음)(사진이 게시되지 않음) , 너무 귀찮음) :
첫 방문: 1
이미지를 마우스 오른쪽 버튼으로 클릭하고 다른 이름으로 저장하세요: 3
Firebug의 응답은 다음과 같습니다: 3
SESSION 포함 내용: 3

요약: Firebug 플러그인이 활성화되지 않은 경우 Firefox 페이지는 한 번(두 번 중 첫 번째) 요청되고 서버 측 PHP 파일은 실제로 두 번 요청됩니다. Firebug 플러그인을 켜면 처음으로 Firefox 페이지가 요청되고, 두 번째는 어디에서 요청되는지 모르겠고, 세 번째는 Firebug가 요청됩니다.

크롬 브라우저에서 한번 방문해 봤습니다. 페이지에 표시된 사진 속 문자는 SESSION에 저장된 문자이며, 동작은 정상입니다

최종 요약: 온라인 조사에 따르면 이 문제는 Firefox의 버그일 수 있습니다. 그렇게 간단한 문제는 아닌 것 같습니다. 이에 대한 이유를 알아낼 수 있기를 바랍니다. 미래! ! !

종료

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

위 내용을 포함해 해결해야 할 파이어폭스 PHP 인증코드 이미지 다중 요청 문제를 소개하고 있는데, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되길 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.