>  기사  >  백엔드 개발  >  PHP+Ajax는 인증코드 실시간 인증 기능을 구현합니다.

PHP+Ajax는 인증코드 실시간 인증 기능을 구현합니다.

墨辰丷
墨辰丷원래의
2018-06-01 17:03:061469검색

이 글에서는 인증코드 실시간 검증을 실현하기 위한 PHP+Ajax를 주로 소개합니다. 관심있는 친구들은 참고하시면 됩니다.

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의 방향을 지정합니다. request 페이지와 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를 사용하여 인증 코드를 받을 수 있습니다.
그런 다음 특정 조건에 의해 트리거되는 함수에 확인 프로세스를 캡슐화하여 실시간으로 확인합니다.

요약: 위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다.

관련 추천 : pPhp mysql 단순 인터랙티브 사이트 개발 자세한 설명


Php는 간단한 Ajax 로딩 로딩 기능을 구현하는 방법


Php

은 워터마크 텍스트와 썸네일을 구현

위 내용은 PHP+Ajax는 인증코드 실시간 인증 기능을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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