PHP+Ajax implements real-time verification of verification code_php example

WBOY
Release: 2016-08-04 08:56:44
Original
757 people have browsed it

PHP’s image processing function is powerful, and it is very simple to make a verification code picture. However, when implementing real-time verification, we did encounter a problem:
I used nat123 to port map the website on my computer to enable external access. I originally used cookies to verify the verification code using js, but after testing, I found that although nat123 enabled my website to pass a custom The URL is accessed, but the location of the PHP file that generates the verification code on the network is not in the same domain as other pages. After querying, it is found that because of the output image, it is mapped in a folder as a cache file, so - —Other pages are under my URL, and the page that generates the verification code is in another URL, so their cookies cannot be shared. No matter how I set the path and domain, it doesn't work, so I have to use session to store the verification code, because session It exists on the server, that is, it can be accessed in my local website.
Next is the main event. I have only had a rough understanding of ajax before, and I still know its uses and characteristics. However, I don’t know how to start using the relatively general concept of obtaining data from the background.
First, I analyzed the code of an example question, which is used to obtain the content of a text file in the background:

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!");
  }
}

Copy after login

The key is:

  request.open("GET","TEST.txt",true);
    request.onreadystateschange =function(){
      alert(request.responseText);
    }
Copy after login

These three sentences specify the page to which the GET request is sent and the processing function that is triggered when the XMLHttpRequest object returns the response, and the data is obtained through request.responseText.

------------------------------------------------- ----------------------------------

But the data I want to obtain is the verification code generated by the background php file. How can I let the background send the verification code?
Regardless of the GET or POST method, data is sent to the background. Where does ajax retrieve the data from the background?
Puzzled, I checked another information and found an example:
The processing statement for the response returned by the XMLHttpRequest object is:

request.onreadystateschange=alertContent;
function alertContent(){
...
  alert(request.responseText);
...
}

Copy after login

The requested file is check.php
There are several conditional output sentences:

if($info){
  echo "你的用户名可以使用";
}else {
  echo "该用户名已被注册";
}

Copy after login

In the rendering of the running example, a message box pops up on the static page, with the content such as the output of the check.php page! ! !
In other words, ajax can request the output content of a php page, so the next step is much simpler. Because the picture is also the output of the verification code page, you cannot directly ajax the verification code page, otherwise the data of the picture will also be obtained.
Create a new php page:

sission_start();
$code="";
if(!empty($_session['check']))$code=$_session['check'];
echo $code;

Copy after login

Then use ajax to make a GET request to this page on the front end, and you can use request.responseText to get the verification code.
Then the verification process is encapsulated in a function triggered by certain conditions, so that it can be verified in real time.

The above is the entire content of this article. I hope it will be helpful to everyone’s study. I also hope that everyone will support Script Home.

Related labels:
php
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template