PHP+Ajaxで検証コードのリアルタイム検証機能を実装

墨辰丷
リリース: 2023-03-29 10:02:01
オリジナル
1452 人が閲覧しました

この記事では、主に検証コードのリアルタイム検証を実現するための PHP+Ajax を紹介します。興味のある方は参考にしてください。

PHP の画像処理機能は強力で、検証コードの画像を作成するのは非常に簡単です。リアルタイム検証で問題が発生しました:
nat123 を使用してコンピューター上の Web サイトをポート マップし、外部ネットワーク アクセスを実現しました。当初、検証コードを js で検証するために Cookie を使用していましたが、検査の結果、次のことが判明しました。 nat123 を使用すると、カスタマイズされた URL を介して Web サイトにアクセスできます。ネットワーク上の検証コードを生成する PHP ファイルの場所は、他のページと同じドメインにありません。クエリを実行したところ、出力画像のせいで、そうであったことがわかりました。キャッシュ ファイルとしてフォルダーにマッピングされるため、他のページは自分の URL の下にあり、確認コードを生成するページは別の URL の下にあるため、パスとドメインがどのように設定されていても、Cookie は共有できません。 、それは問題ではありません。 したがって、セッションはサーバー上に存在するため、つまり、ローカルWebサイトからアクセスできるため、セッションを使用して確認コードを保存する必要がありました。
次のステップがメインイベントです。私はこれまで 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);
    }
ログイン後にコピー

これらの 3 つの文は 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 シンプルなインタラクティブサイト開発の詳細な説明


シンプルな Ajax ローディング関数のメソッドを実装する Php


透かしテキストとサムネイルを実装する Php


以上がPHP+Ajaxで検証コードのリアルタイム検証機能を実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!