ネットワーク セキュリティの重要性が高まるにつれ、動的検証コードは Web サイトの登録、ログイン、その他の操作に使用される一般的なツールになりました。検証コードを繰り返し変更することで、自動プログラムによる悪意のある攻撃を効果的に防ぐことができます。人気のバックエンド開発言語として、PHP の組み込み GD ライブラリは、画像の生成と処理のための共通関数を提供し、動的な検証コードを簡単に生成できます。
それでは、PHP と GD ライブラリを使用して動的検証コードを生成するにはどうすればよいでしょうか?それでは、順を追ってご紹介していきます。
まず、GD ライブラリがサーバーにインストールされていることを確認します。 Linux システムを使用している場合は、ターミナル コマンドを使用してインストールできます。
sudo apt-get install php7.0-gd
このうち、7.0 は現在の PHP バージョンに相当し、実際の状況に応じて調整できます。
次に、ランダムな検証コード テキストを生成する必要があります。 PHP の rand()
関数を使用して、数字と文字のランダムな文字列を生成できます。例:
$code = ''; for ($i = 0; $i < 4; $i++) { $code .= chr(rand(65, 90)); }
上記のコードでは、chr()
関数が使用されます。 ASCII コードを対応する文字に変換します。つまり、rand(65,90)
は、65 ~ 90 の間のランダムな整数、つまり A ~ Z の間の文字を生成することを意味します。 4 桁の確認コードがここで生成され、必要に応じて調整できます。
次に、生成された検証コードを表示するキャンバスを作成する必要があります。 imagecreatetruecolor()
関数を使用して、指定したサイズのトゥルー カラー イメージを作成できます。
$width = 100; $height = 50; $image = imagecreatetruecolor($width, $height);
上記のコードでは、キャンバス サイズ 100*50 ピクセルのトゥルー カラー イメージは次のようになります。セット。キャンバスのサイズを変更する必要がある場合は、実際のニーズに応じて調整できます。
検証コードをより美しくするために、imagecolorallocate()
関数を使用してキャンバスの背景色を設定できます。例:
// 设定背景颜色 $bg_color = imagecolorallocate($image, 255, 255, 255); // 白色 imagefill($image, 0, 0, $bg_color);
上記のコードでは、キャンバスの背景色は白に設定されています。
次に、生成された検証コードの各文字をキャンバス上に描画する必要があります。 imagettftext()
関数を使用して、キャンバス上に各文字を描画できます。
// 描绘验证码 for ($i = 0; $i < 4; $i++) { $font_size = 20; $font_angle = rand(-20, 20); $font_x = 10 + $i * ($width - 20) / 4; $font_y = $height / 2 + $font_size / 2; $font_color = imagecolorallocate($image, rand(0, 100), rand(0, 100), rand(0, 100)); imagettftext($image, $font_size, $font_angle, $font_x, $font_y, $font_color, 'arial.ttf', $code[$i]); }
上記のコードでは、検証コードの各文字が描画されます。このうち、$font_size
は文字サイズ、$font_angle
は文字の回転角度、$font_x
と$font_y
は文字の角度を表します。キャンバス内の位置 位置、$font_color
は文字色を表し、arial.ttf
はフォント ファイルを表します。実際のニーズに応じて調整する必要があります。
最後のステップは、生成された検証コードをフロントエンド ページに出力することです。 header()
関数を使用して画像タイプを設定し、imagepng()
関数を使用して画像コンテンツを出力できます。
header('Content-Type: image/png'); imagepng($image); imagedestroy($image);
上記の場合コードでは、header()
関数を使用して画像タイプを設定し、次に imagepng()
関数を使用して画像コンテンツをページに出力し、imagedestroy()# を使用します。 ## メモリを解放する関数。
以上がPHPとGDライブラリを使用して動的検証コードを生成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。