PHP의 이미지 처리 기능은 강력하고, 인증코드 이미지를 만드는 방법도 매우 간단합니다. 그런데 실시간 인증을 구현하다 보면 다음과 같은 문제가 발생했습니다.
외부 액세스를 활성화하기 위해 nat123을 사용하여 내 컴퓨터에서 웹사이트를 포트 매핑했습니다. 원래 쿠키를 사용하여 js를 사용하여 확인 코드를 확인했지만 테스트 후에 nat123을 사용하면 내 웹사이트에서 사용자 정의 URL에 액세스할 수 있지만 네트워크에서 인증코드를 생성하는 PHP 파일의 위치가 다른 페이지와 동일한 도메인에 있지 않습니다. 쿼리 결과 출력 이미지로 인해 폴더에 캐시 파일로 매핑되어 있는 것으로 확인되었습니다. —다른 페이지는 내 URL 아래에 있고, 인증 코드를 생성하는 페이지는 다른 URL에 있으므로 경로와 도메인을 어떻게 설정해도 해당 쿠키가 공유되지 않으므로 세션을 사용해야 합니다. 세션이 서버에 존재하기 때문에 인증 코드를 저장합니다. 즉, 내 로컬 웹사이트에서 액세스할 수 있습니다.
다음은 메인 이벤트입니다. 이전에 Ajax에 대해 대략적으로만 이해하고 아직 그 용도와 특징을 알고 있지만, 백그라운드에서 데이터를 얻는 비교적 일반적인 개념을 어떻게 시작해야 할지 모르겠습니다.
먼저 백그라운드에서 텍스트 파일의 내용을 가져오는 데 사용되는 예제 질문의 코드를 분석했습니다.
function getHTTPObject(){ if(typedef XMLHttpRequest == "undefined") XMLHttpRequest = function(){ try{ return new ActiveXObject("Msxml2.XMLHTTP.6.0");} catch(e){} try{ return new ActiveXObject("Msxml2.XMLHTTP.3.0");} catch(e){} try{ return new ActiveXObject("Msxml2.XMLHTTP");} catch(e){} return false; } return new XMLHttpRequest(); } function getNewContent(){ var request = getHTTPObject(); if(request){ request.open("GET","TEST.txt",true); request.onreadystateschange = function(){ alert(request.responseText); } }else{ alert("no support XMLHttpRequest!"); } }
핵심은 다음과 같습니다.
request.open("GET","TEST.txt",true); request.onreadystateschange =function(){ alert(request.responseText); }
이 세 문장은 GET 요청이 전송되는 페이지와 XMLHttpRequest 객체가 응답을 반환할 때 트리거되는 처리 기능을 지정하고, request.responseText를 통해 데이터를 가져옵니다.
---------------------------------- --- ---------------------
그런데 제가 얻고 싶은 데이터는 백그라운드 PHP 파일에서 생성된 인증 코드입니다. 어떻게 하면 백그라운드에서 인증 코드를 보낼 수 있나요?
GET 또는 POST 방법에 관계없이 데이터는 백그라운드로 전송됩니다. Ajax는 백그라운드에서 데이터를 검색합니다.
의아해하면서 다른 소스를 확인하고 예를 찾았습니다.
XMLHttpRequest 객체가 반환한 응답에 대한 처리 문은 다음과 같습니다.
request.onreadystateschange=alertContent; function alertContent(){ ... alert(request.responseText); ... }
요청한 파일은 check.php입니다
여러 가지 조건부 출력 문장이 있습니다:
if($info){ echo "你的用户名可以使用"; }else { echo "该用户名已被注册"; }
실행 중인 예제의 렌더링에서는 check.php 페이지의 출력과 같은 내용이 포함된 메시지 상자가 정적 페이지에 나타납니다! ! !
즉, Ajax는 PHP 페이지의 출력 내용을 요청할 수 있으므로 다음 단계는 훨씬 간단합니다. 그림도 인증 코드 페이지의 출력이기 때문에 인증 코드 페이지를 직접 Ajax할 수는 없습니다. 사진도 얻을 수 있습니다.
새 PHP 페이지 만들기:
sission_start(); $code=""; if(!empty($_session['check']))$code=$_session['check']; echo $code;
그런 다음 ajax를 사용하여 프런트 엔드에서 이 페이지에 GET 요청을 하고 request.responseText를 사용하여 인증 코드를 받을 수 있습니다.
그런 다음 검증 프로세스는 특정 조건에 의해 트리거되는 함수에 캡슐화되어 실시간으로 검증될 수 있습니다.
위 글의 내용은 모두의 공부에 도움이 되길 바랍니다.