ログインページコードログイン:
<!DOCTYPE html > < html > < head > < meta charset = "UTF-8" > < title >登陆</ title > </ head > < body > < form action = "./ test.php" メソッド= "post" > < img src = "image_captcha.php" onclick = "this.src = 'image_captcha.php?' + new Date()。getTime();" 幅= "140" < INPUTのタイプ= "テキスト" 名前= "キャプチャ" プレースホルダ= "画像の確認コードを入力してください" > < BR /> < INPUTの種類= "送信" 値を= "確認" > </ 形成> </ ボディ> < / html >
確認コードを生成:
<?php / * * *文字+数字の検証コードの生成 * / // セッションを開く session_start (); // 1.黒いキャンバスを作成 $ image = imagecreatetruecolor(100、30 ); // 2.キャンバスを定義(背景) )Color $ bgcolor = imagecolorallocate($ image、255、255、255 ); // 3.塗りつぶし色 imagefill($ image、0、0、$ bgcolor ); // 4.検証コードの内容を設定 // 4.1検証コードを定義する内容$ content = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" ; // 4.1生成された検証コードデータを格納する変数を作成します 。これは、ユーザーが$ captcha を送信してチェックするのに便利です= "" ; for($ i = 0; $ i <4; $ i ++ ){ // フォントサイズ $ fontsize = 10 ; // フォントの色 $ fontcolor = imagecolorallocate($ image、mt_rand(0、120)、mt_rand(0、120)、mt_rand(0、120 )); // フォントコンテンツを設定 $ fontcontent = substr($ content、mt_rand(0、strlen($ content))、1 ); $ captcha。=$ fontcontent ; // 表示される座標 $ x =($ i * 100/4)+ mt_rand(5、10 ); $ y = mt_rand(5、10 ); // 内容をキャンバスの imagestring($ image、$ fontSize、$ X、$ Y、$ fontcontent、$ FONTCOLOR ); } $ _SESSION [ "image_captcha"] = $キャプチャ; // 4.3バックグラウンド干渉要素が設けられている ため($ $ I = 0; $ I <200であり、$ I + +){ $ pointcolor = imagecolorallocate($ image、mt_rand(50、200)、mt_rand(50、200)、mt_rand(50、200 )); imagesetpixel ($ image、mt_rand(1、99)、mt_rand(1、29)、$ pointcolor ); } // 4.4设置干扰线 for($ i = 0; $ i <3; $ i ++ ){ $ linecolor = imagecolorallocate($ image、mt_rand(50、200)、mt_rand(50、200)、mt_rand( 50、200 )); imageline($ image、mt_rand(1、99)、mt_rand(1、29)、mt_rand(1、99)、mt_rand(1、29)、$ linecolor ); } // 5。ブラウザーは画像ヘッダー情報 ヘッダーを出力します( 'content-type:image / png' ); // 6.ブラウザーに画像を出力します imagepng($ image ); // 7.画像を破棄します imagedestroy($ image);
入力コードを確認します。
<?php / * * *ログイン時にユーザーが送信した確認コードを受け入れる * / session_start (); // 1.ユーザーが送信した確認コードを取得 $ captcha = $ _POST ["captcha" ]; // 2.セッションを転送する確認コードは、ユーザーが送信した確認コードと照合して検証されます。成功すると、確認コードは正しい かどうかを確認するプロンプトが表示されます。失敗した場合、スキップして再送信しますif(strtolower($ _SESSION ["image_captcha"])== strtolower($ captcha )){ echo " <h5>はい!確認コードは正しいです!</ h5> " ; } else { echo " NO!確認コードが正しく送信されませんでした! " ; header(" refresh:3; url =。/ login.php ");// エラーを入力してログインページにジャンプします }