検証コードは、Web アプリケーションにおいて非常に重要であり、通常、悪意のある登録やログイン、悪意のあるフォーラムのスパム送信など、ユーザーが悪意を持ってフォームを送信するのを防ぐために使用されます。この記事では、数値検証コード、数値 + 文字検証コード、中国語検証コード、算術検証コードなどを含むさまざまな一般的な検証コードを生成するための PHP の使用方法と、Ajax 検証プロセスについて例を使用して説明します。
PHP は検証コード画像を生成します
PHP が検証コードを生成する原理: PHP の GD ライブラリを使用して検証コードを含む画像を生成し、検証コードをセッションに保存します。 PHP で検証コードを生成する一般的なプロセスは次のとおりです。
1. PNG 画像を生成します。
3. フォントの色とスタイルを設定します。 4 桁のランダムな検証コードを生成します。
5. 生成された各文字の回転角度と位置を調整し、ノイズと干渉線を追加します。マシンが元の画像を解析して検証コードを不正に解読する。
7. 画像が占有しているメモリを解放する。
ある学生からのリクエストで、php100.comの記事コメントに使用されている認証コードを例に、認証コードの生成プロセスを説明し、コードを直接入力してみましょう。
session_start();
getCode(4,60,20);
function getCode($num,$w,$h) {
$code = "";
for ($i = 0; $i $code .= rand(0, 9)
}
//4 桁の確認コードはrand(1000,9999) を使用して直接生成します
//生成された検証コードをセッションに書き込み、検証に使用します
$_SESSION["helloweba_num"] = $code
//画像を作成し、カラー値を定義します。
header("Content-type: image/PNG");
$im = imagecreate($w, $h);
$black = imagecolorallocate($im, 0, 0, 0) ;
$gray = imagecolorallocate($im, 200, 200, 200);
$bgcolor = imagecolorallocate($im, 255, 255, 255); //背景を塗りつぶします。 🎜> imagefill($ im, 0, 0, $gray);
//境界線を描画します
imagerectangle($im, 0, 0, $w-1, $h-1, $black );
//干渉を引き起こすために 2 つの点線をランダムに描画します
$style = array ($black,$black,$black,$black,$black,
$gray,$gray, $gray,$gray ,$gray
);
imagesetstyle($im, $style)
$y1 = rand(0, $h); h);
$y3 = rand(0, $h);
$y4 = rand(0, $h);
イメージライン($im, 0, $y1, $y3, IMG_COLOR_STYLED);
imageline($im, 0, $y2, $w, $y4, IMG_COLOR_STYLED); この記事のリンク http://www.cxybl.com/html/wlbc/Php/20130729/39382.html