ユーザーログインのセキュリティを強化するために、登録やログインなどのユーザー認証ページを作成する際に、認証コードの検証を追加します。
検証コードは GD を通じて PNG 画像を生成し、$randval 乱数を $_SESSION[login_check_num] に割り当て、ユーザーが入力した $_POST と比較して正しいかどうかを判断します。実装する必要がある機能を実現するには、php が GD ライブラリをサポートするように php.ini ファイルを変更する必要があります。
//このページを呼び出し、以下の式が真であれば検証コード画像が生成されます
if($_GET["アクション"]=="コードの検証")
{
ランド作成();
}
//検証コード画像生成
関数 rand_create()
{
//PNG画像が出力されることをブラウザに通知します
Header("コンテンツタイプ: 画像/PNG");
//乱数ジェネレーターのシードを準備します
srand((double)microtime()*1000000);
//画像の関連パラメータを準備します
$im = imagecreate(62,20);
$black = ImageColorAllocate($im, 0,0,0) //RGB 黒識別子
$white = ImageColorAllocate($im, 255,255,255) //RGB ホワイト識別子
;
$gray = ImageColorAllocate($im, 200,200,200); //RGB グレー識別子
//描画を開始します
イメージフィル($im,0,0,$gray);
While(($randval=rand()%100000)
$_SESSION["login_check_num"] = $randval;
// 4 桁の整数の検証コードを画像にプロットします
画像文字列($im, 5, 10, 3, $randval, $black);
}
//干渉ピクセルを追加します
for($i=0;$i
$randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imagesetpixel($im, rand()%70, rand()%30, $randcolor);
}
//検証画像を出力します
画像PNG($im)
//画像識別子を破棄します
画像破壊($im);
}
// 確認コードを確認する
関数 rand_check()
{
If($_POST["reg_rand"] == $_SESSION["login_check_num"]){
true を返します
}
他{
exit("認証コード入力エラー");
}
}
?>
http://www.bkjia.com/PHPjc/486454.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/486454.html