PHPは関数を使用してグラフィック検証コードを実装します
コードはgithubで共有されています:https://github.com/LVQINGDONG/learn_phpダウンロードするnumberImgブランチを見つけてください
実装手順:
①ランダムな文字列(確認コードの数字または文字の組み合わせ)を生成します
②ランダムなグラフィック検証コードを生成します
③デザインフォーム構成-登録ページ
-------------------------------------------------- ------
①ランダムな文字列コードを生成します:functions.php
PHPシステム関数と使用される関数:
range()関数:指定された範囲の要素を含む配列を作成して返します。
array_merge()関数:2つ以上の配列を1つの配列に結合します。
array_flip()関数:反転した配列を返します。
array_rand()関数:配列から1つ以上の要素をランダムに選択します。
関数を作成してfunctions.phpをテストします。
②ランダムなグラフィック検証コードcreate_numberImg.phpを生成します。
PHPシステム関数と使用される関数:
imagecreate():パレットベースの画像を作成します。
imagecolorallocate():画像に色を割り当てます。
imagepng():画像をブラウザまたはファイルにpng形式で出力します。
imagesx()、imagesy():画像の幅と高さを返します。
imagefontwidth()、imagefontheight():文字の幅と高さをピクセル単位で返します。
imagestring():文字の線を水平に描画します。
imagedestroy():画像を破棄します。
実現効果:
③デザインフォームの構成-登録ページ:
<!DOCTYPE html > <html lang = "en" > <head> <meta charset = "UTF-8" > <title>タイトル</ title> <style> ul { border:1 px solid red ; 幅:300ピクセル; } ul li { 幅:250ピクセル; 高さ:30ピクセル; マージントップ:10ピクセル; リストスタイル :なし; } 。li_font { float:左; } 。li_input { float:right ; } 。numberImg { のmargin-left:100ピクセル; } </スタイル> </ HEAD> <BODY> <! - $ _、SERVER [ "PHP_SELF"]はスーパーグローバル変数で、現在実行中のスクリプトのファイル名を返し、ドキュメントルート関連-> <form method = "post" action = " <?php echo htmlspecialchars($ _SERVER [ 'PHP_SELF' ]); ?> " > <ul> <li> <div class = "li_font" >ユーザー名:</ div> <div class = "li_input"> <input type = "text" name = "username" class = "username" > </ div> </ li> <li> <div class = "li_font" >密码:</ div> <div class = "li_input " > <input type = " password " name = " password " class = " password " > </ div> </ li> <li> <div class = " li_font " >パスワードの確認:</ div> <div class = "li_input" > <inputtype = "password" name = "password2" class = "password2" > </ div> </ li> <li> <div class = "li_font" >邮箱:</ div> <div class = "li_input" > < input type = "text" name = "email" class = "email" > </ div> </ li> <li> <div class = "numberImg" > <img src = "create_numberImg.php " > </ div> </ li> <li> <divclass = "li_font" >验证码:</ div> <div class = "li_input" > <input type = "text" name = "number" class = "number" > </ div> </ li> <li> <div> <input type = "submit" name = "submit" class = "submit" value = "注册" > </ div> </ li> </ ul> </ form> </ body> </ html>
最終的なランニング効果: