페이지가 login.php 페이지를 로드할 때 이미지 로딩이 다른 태그 로딩과 비동기식이어서 다른 태그 정보가 먼저 로드된 다음 이미지가 로드되기 때문에 PHP의 인증 코드가 동기화되지 않습니다.
이 기사의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터
인증 코드가 동기화되지 않으면 어떻게 해야 합니까?
PHP 확인 코드 세션이 동기화되지 않는 문제를 완벽하게 해결합니다.
모든 개발자는 이상한 현상에 시달리는 느낌을 경험했습니다. 원인을 찾으려고 노력했지만 찾을 수 없었고, 해결하려고 했지만 실패했습니다. 다음으로 이상한 PHP 인증 코드에 대해 이야기해 보겠습니다. .
먼저 사진부터 보여드릴께요, 낯익으신 분들도 계실 거라 믿습니다. .
두 값이 실제로 다르다는 것을 어떻게 확인할 수 있나요? ? ? ? ?
그 이후로 인터넷에서 이유를 찾았습니다. 페이지가 login.php 페이지를 로드할 때 이미지 로딩이 다른 태그 로딩과 비동기식이므로 다른 태그 정보가 먼저 로드되고 그 다음 src( 이미지)가 로드되지 않았습니다. 동기화하면 '인증 코드'도 동기화되지 않습니다.
이유를 알고 있는데, 초보자라서 다른 분들이 쓴 해결법을 읽어도 어떻게 시작해야 할지 모르겠습니다. .
드디어 우연히 프로젝트에서 답을 찾았습니다. .
사실 해결책은 매우 간단합니다. 예를 들어 표시된 값이 같은지 여부는 상관하지 마세요. .
login.php 로그인 페이지
<form action="login_check.php" method="post"> 验证码: <input name="checkcode" type="text" /><img src="yan.php" alt="看不清?点击更换" style="max-width:90%" onClick="this.src=this.src+'?'" />//yan.php是生成验证码的页面。 </form>
login_check.php 검증 페이지
<?php session_start();//开启session $checkcode= strtolower($_POST["checkcode"]);//获取验证码文本框的值 echo $checkcode;//输出验证码文本框的值 echo $_SESSION['VerifyCode']//输出yan.php输出的值 ?>
제출 후, 인증 코드 생성을 위해 생성된 값과 동일한 값을 login.php에 입력하면 놀라실 것입니다. login_check.php의 출력 두 값은 대문자와 소문자를 제외하고는 동일한 문자입니다.
물론 대소문자 문제는 해결할 수 있습니다.
이렇게 말하면 동기화 문제가 해결되더라도
물론 완벽을 추구하는 사람들은 Ajax를 선호하는 경우도 있다는 것을 알고 있습니다. 그러나 ajax를 사용하는 경우에는 이 페이지에 제출하지 마십시오. 그렇지 않으면 외부 파일을 통한 비동기 검증에는 문제가 없습니다.
추천 학습: "PHP 비디오 튜토리얼"
위 내용은 PHP에서 인증 코드가 동기화되지 않은 경우 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!