この記事では主にphpを使ってWebサイト認証コード機能を実装する方法を紹介します。非常に優れた参考値となっていますので、以下のエディターで見てみましょう
認証コードはWebサイトでよく使われるセキュリティ対策ですが、新人Webマスターにとっては習得が難しいスキルでもあります。シンプルで効果的な検証コードの実装方法を紹介します。
始める前に
正式に始める前に、php の gd2 グラフィックス ライブラリのサポートをオンにする必要があります (php.ini で「php_gd2.dll」を検索し、「;extension=php_gd2.dll」を見つけてポイントを削除します)文の先頭に数字) を付けます。
こちらを参照してください: php
の gd2 ライブラリを開く方法
コア: img.php
このページは検証コードを生成し、正しい値をセッションに書き込みます
ランダムな 4 桁の検証code$check=rand(1000,9999);
将生成的验证码写入session
Session_start(); $_SESSION["check"] = $check;
创建一张图片
$im = imagecreate(80,30);
由于这种图片的背景默认是黑色的所以我们要用白色填充。
imagefill($im,0,0,ImageColorAllocate($im, 255,255,255));
$check=rand(1000,9999);
生成された確認コードをセッションに書き込みます
$im = imagecreate(80,30);
imagefill($im,0,0,ImageColorAllocate($im, 255,255,255));
imageline を使用してランダムに 2 本の実線を描画します
$y1=rand(0,30); $y2=rand(0,30); $y3=rand(0,30); $y4=rand(0,30); imageline($im,0,$y1,70, $y3,000); imageline($im,0,$y2,70, $y4,000);
$strx=rand(3,15); $stry=rand(2,15); imagestring($img,5,$strx,$stry,substr($check,0,1),ImageColorAllocate($img,34,87,100)); $strx+=rand(15,20); $stry=rand(2,15); imagestring($img,5,$strx,$stry,substr($check,1,1),ImageColorAllocate($img,781,117,78)); $strx+=rand(15,20); $stry=rand(2,15); imagestring($img,5,$strx,$stry,substr($check,2,1),ImageColorAllocate($img,160,40,40)); $strx+=rand(15,20); $stry=rand(2,15); imagestring($img,5,$strx,$stry,substr($check,3,1),ImageColorAllocate($img,25,55,10));
Header("Content-type: image/PNG"); ImagePNG($img);
最後に、完全なコードを示します
ログイン後にコピー
ユーザーインターフェース:index.php
やり方は皆さんご存知かと思いますのでコードを直接記載します
<!DOCTYPE html> <html> <body> <form action="action.php" method="post"> <input type="text" name="cikle" placeholder="验证码"> <br> <img id="cikle" style="-webkit-user-select: none" src="img.php"><input type="submit" value="Submit"> </form> </body> </html>
上記のコードはユーザーが入力した値を「action.php」に転送します
<?php Session_start(); if ($_SERVER["REQUEST_METHOD"] == "POST") { if($_SESSION["check"]!=intval($_POST["cikle"])){ echo "不正确"; }else{ echo "正确"; } }