ホームページ  >  記事  >  バックエンド開発  >  PHPがWebサイト認証コード機能を実装

PHPがWebサイト認証コード機能を実装

墨辰丷
墨辰丷オリジナル
2018-05-25 16:06:532540ブラウズ

この記事では主にPHPでウェブサイト認証コード機能を実装する方法を紹介します。興味のある方はぜひ参考にしてください。

認証コードはウェブサイトでよく使われるセキュリティ対策ですが、初心者のウェブマスターにとって習得が難しいスキルでもあります。ここでは、認証コードを実装するための簡単で効果的な方法を紹介します。

始める前に

正式に始める前に、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」に転送します


Check: action.php

このステップ ユーザー入力値とセッション内の値を比較するには が等しい、出力は「正しい」 が等しくない、出力は「正しくない」

<?php
Session_start(); 
if ($_SERVER["REQUEST_METHOD"] == "POST") {
 if($_SESSION["check"]!=intval($_POST["cikle"])){
 echo "不正确";
 }else{
 echo "正确";
 }
}

上記はこの記事の内容全体が、学習を支援するすべての人に役立つことを願っています。

関連する推奨事項: ID カードが合法かどうかを確認するための PHP の検証関数

ノードを使用してトークンベースの ID を実装する方法検証

🎜🎜🎜AJAX🎜検証🎜データベースコンテンツは次のようになります。値はページに表示されます 🎜🎜🎜🎜🎜🎜🎜🎜🎜

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。