PHPは検証コード関数を実装します

 

 

ログインページコードログイン:

<!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($ image255、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($ imagemt_rand0、120)、mt_rand0、120)、mt_rand0、120 ));
     // フォントコンテンツを設定
    $ fontcontent = substr$ contentmt_rand(0、strlen$ content))、1 );
     $ captcha。=$ fontcontent ;
     // 表示される座標
    $ x =($ i * 100/4)+ mt_rand5、10 );
     $ y = mt_rand5、10 );
     // 内容をキャンバスの 
    imagestring($ image$ fontSize$ X$ Y$ fontcontent$ FONTCOLOR ); 
} 

$ _SESSION [ "image_captcha"] = $キャプチャ; 

// 4.3バックグラウンド干渉要素が設けられている
ため($ $ I = 0; $ I <200であり、$ I + +){
     $ pointcolor = imagecolorallocate($ imagemt_rand50、200)、mt_rand50、200)、mt_rand50、200 )); imagesetpixel $ imagemt_rand1、99)、mt_rand1、29)、$ pointcolor ); 
} 

// 4.4设置干扰线
for$ i = 0; $ i <3; $ i ++ ){
     $ linecolor = imagecolorallocate($ imagemt_rand50、200)、mt_rand50、200)、mt_rand
    50、200 )); imageline($ imagemt_rand1、99)、mt_rand1、29)、mt_rand1、99)、mt_rand1、29)、$ linecolor ); 
} 

// 5。ブラウザーは画像ヘッダー情報
ヘッダーを出力します( 'content-type:image / png' ); 

// 6.ブラウザーに画像を出力します 
imagepng($ image ); 

// 7.画像を破棄します 
imagedestroy($ image);

入力コードを確認します。

<?php
 / * * 
 *ログイン時にユーザーが送信した確認コードを受け入れる
 * / 
session_start ();
 // 1.ユーザーが送信した確認コードを取得
$ captcha = $ _POST ["captcha" ];
 // 2.セッションを転送する確認コードは、ユーザーが送信した確認コードと照合して検証されます。成功すると、確認コードは正しい
かどうかを確認するプロンプトが表示されます。失敗した場合、スキップして再送信しますifstrtolower$ _SESSION ["image_captcha"])== strtolower$ captcha )){
     echo " <h5>はい!確認コードは正しいです!</ h5> " ; 
} else {
     echo " NO!確認コードが正しく送信されませんでした! " ;
     header(" refresh:3; url =。/ login.php ");// エラーを入力してログインページにジャンプします
}

 

おすすめ

転載: www.cnblogs.com/niusdtz/p/12683415.html