ホームページ >バックエンド開発 >PHPチュートリアル >PHP検証コードのAjax検証実装方法_PHPチュートリアル

PHP検証コードのAjax検証実装方法_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:11:04893ブラウズ

ウェブサイト開発でユーザーエクスペリエンスを提供するために、ほとんどの人は ajax を使用していくつかの操作を実行します。ここで、ajax 検証を必要とする友人が参照できるように、ajax を使用する検証コードを紹介します。

ここでは検証コード生成プログラムは紹介しません。http://www.bKjia.c0m/phper/phpanqn/46698.htm を参照してください。簡単なプログラムは次のとおりです。

コードは次のとおりですコードをコピー
セッション開始(); //設定: ここで確認コード画像のパラメータを変更できます
$image_width = 120; $image_height = 40; $characters_on_image = 6; $font = './monofont.ttf';
//認証コードの文字には以下の文字が使用されます
//混乱を避けるため、数字の 1 と文字 i は削除されました
$possible_letters = '23456789bcdfghjkmnpqrstvwxyz'; $ランダムドット = 10; $random_lines = 30; $captcha_text_color="0x142864"; $captcha_noice_color = "0x142864";
$コード = '';
$i = 0; while ($i < $characters_on_image) {
$code .= substr($possible_letters, mt_rand(0, strlen($possible_letters)-1), 1); $i++; }

$font_size = $image_height * 0.75; $image = @imagecreate($image_width, $image_height);
/* 背景、テキスト、干渉ノイズを設定します */
$background_color = imagecolorallocate($image, 255, 255, 255);
$arr_text_color = hexrgb($captcha_text_color); $text_color = imagecolorallocate($image, $arr_text_color['red'],
$arr_text_color['green']、$arr_text_color['blue']);
$arr_noice_color = hexrgb($captcha_noice_color); $image_noise_color = imagecolorallocate($image, $arr_noice_color['red'],
$arr_noice_color['green']、$arr_noice_color['blue']);
/* 背景に干渉ノイズ ポイントをランダムに生成します */
for( $i=0; $i<$random_dots; $i++ ) {
Imagefilledellipse($image, mt_rand(0,$image_width),
mt_rand(0,$image_height), 2, 3, $image_noise_color); }

/* 背景画像にランダムに線を生成します */
for( $i=0; $i<$random_lines; $i++ ) {
Imageline($image, mt_rand(0,$image_width), mt_rand(0,$image_height),
mt_rand(0,$image_width)、mt_rand(0,$image_height)、$image_noise_color); }

/* テキスト ボックスを生成し、その中に 6 文字をスケッチします */
$textbox = imagettfbbox($font_size, 0, $font, $code); $x = ($image_width - $textbox[4])/2; $y = ($image_height - $textbox[5])/2; imagettftext($image, $font_size, 0, $x, $y, $text_color, $font, $code);
/* HTML ページに確認コードの画像を表示します */
header('Content-Type: image/jpeg');
//画像出力のタイプを設定します
imagejpeg($image);
//画像を表示する
imagedestroy($image);
//画像インスタンスを破棄します
$_SESSION['6_letters_code'] = $code;
関数 hexrgb ($hexstr) {
$int = hexdec($hexstr);
戻り値 array( "red" => 0xFF & ($int >> 0x10),
"緑" => 0xFF & ($int >> 0x8)、
"青" => 0xFF & $int
); }
?>

認証コード



生成後、実際のプロジェクトに適用する必要があります。通常、検証コードをクリックすると、ajax を使用して更新し、新しい検証コードを生成します (生成された検証コードは肉眼では識別しにくい場合があります)。 「はっきり見えないので、別のものに変える」。検証コードを入力した後、検証コードが正しいかどうかを検証する必要があります。検証プロセスはバックグラウンド プログラムによって完了しますが、ajax を使用して更新なしの検証を実現することもできます。

確認コードが正しいか間違っているかを確認する方法
検証コード イメージのテキストは SESSION 変数に保存されます。検証中に、SESSION の値とユーザーが入力した値を比較する必要があります。

$_SESSION[6_letters_code] – 確認コードのテキスト値を保存します
$_POST[6_letters_code] – これはユーザーが入力した確認コードの内容です


フロントエンド ページのindex.htmlを作成し、jqueryをロードし、検証コードのフォーム要素を本文に追加します。

HTML コードでは、
コードは次のとおりです コードをコピー

確認コード:



コードは次のとおりです

コードをコピー$(関数(){ //デジタル検証 $("#getcode_num").click(function(){ コードは次のとおりです
$(this).attr("src",'code_num.php?' + Math.random()); }); ...

});



検証コードを更新するということは、実際には検証コード生成プログラムを再リクエストすることを意味します。ここで注意すべき点は、code_num.php を呼び出すときに、キャッシュを防ぐためにランダムなパラメーターを指定する必要があるということです。次に、確認コードを入力した後、「送信」ボタンをクリックすると、フロントエンドは $.post() を通じて、バックグラウンドの chk_code.php に ajax リクエストを送信します。

コードをコピー

... var code_num = $("#code_num").val(); $.post("chk_code.php?act=num",{code:code_num},function(msg){ if(msg==1){ alert("確認コードは正しいです!"); }その他{
$(関数(){ $("#chk_num").click(function(){
alert("認証コードが間違っています!"); }

}); }); });



バックエンド chk_code.php の検証:

バックグラウンドは、送信された検証コードとセッションに保存されている検証コードの比較に基づいて検証を完了します。
コードは次のとおりです コードをコピー

セッション開始();
$code = トリム($_POST['code']); if($code==$_SESSION["helloweba_num"]){
エコー「1」 }


http://www.bkjia.com/PHPjc/629628.html

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/629628.html技術記事ウェブサイト開発でユーザーエクスペリエンスを提供するために、ほとんどの人は ajax を使用していくつかの操作を実行します。ここで、ページを更新せずに検証コードを実現するために ajax 検証が必要な友人を紹介します。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。