ホームページ  >  記事  >  バックエンド開発  >  PHP 検証コードの生成と検証の例_PHP チュートリアル

PHP 検証コードの生成と検証の例_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:47:541160ブラウズ

認証コードは現在、WEB2.0 の一般的な機能です。登録、ログイン、またはメッセージ ページはすべて、現在の運営者の正当性を確認するために登録コードを必要とします。一部の Web サイトには認証コードがありません。高度な検証 検証コードを生成および使用する一般的に使用される方法を見てみましょう。

1 簡単な確認コードの例

1.1 確認コードを示す画像

コードは次のとおりです コードをコピー

$num=intval(mt_rand(1000,9999));
for($i=0; $i<4;$i++)
{echo "";}
?>

1.2 検証プロセス

コードは次のとおりです コードをコピー

if (strval($inputyzm)!=strval($num))
{
echo "<script>alert('検証コードエラー!');history.go(-1);</script>";
終了します;
}

2 漢字認証コードの例

2.1 確認コードを示す画像

コードは次のとおりです コードをコピー
$str="Han","Zi","Inspection","Certificate","Code") //中国語の文字の内容と数を定義できます
; $word=strlen($str));
($i=0;$i<4;$i++) の場合
{
$num=rand(0,$word);
$img = $img."";
$pic = $pic.$str[$num];
}
>

2.2 生成されたランダム文字列を隠しフィールドに割り当てる

コードは次のとおりです コードをコピー

2.3 check() 関数を定義する

コードは次のとおりです コードをコピー

<スクリプト言語="javascript">
機能チェック(フォーム)
{
If(form.yzm.value==""){
alert("確認コードを入力してください");
Form.yzm.focus();
false を返します;
}
If(form.yzm.vale!=form.yz.value)
{alert("認証コードエラー");
Form.yzm.focus();
false を返します;
}
}

完全な例を見る

日々の開発でよく使うPHPの検証コード生成と呼び出しの例を記録します。

1. 検証コード生成ファイル code.php

上記のコードは次の記事を参照しています:
php画像検証コード
phpが検証コードを生成する例
PHP を使用してスノーフレークの背景を持つ検証コードを生成します

2. 検証コード sessionValidate.php を呼び出すページ

コードは次のとおりです コードをコピー

Header("コンテンツタイプ:画像/png");
// ヘッダーを定義し、画像ファイル (できれば png) を宣言します。著作権の干渉はありません。
//新しい 4 桁の整数の検証コードを生成します
Session_start();//セッションを開く;
authnum_session = '';
str = 'abcdefghijkmnpqrstuvwxyz1234567890';
//画像上に表示するために使用される数字と文字を定義します。
l = strlen(str) //文字列の長さを取得します;
//ループして、前に定義した 4 つの文字と数字をランダムに選択します;
for(i=1;i<=4;i++)
{
num=rand(0,l-1);
// 最初の単語から文字列の最大長までの数字を毎回ランダムに選択します。 //このようにインターセプトされた文字は 0 から始まるため、マイナス 1、任意の 34 文字がその中でランク付けされる可能性があります;
authnum_session.= str[num];
//数字で取得した文字を合計4桁に結び付けます;
}
Session_register("authnum_session");
// セッションを登録するためにセッションを使用することもできます。名前は authnum_session,
です。 //他のページにこの画像が含まれている限り
//_SESSION["authnum_session"] を通じて呼び出すことができます

//検証コード画像を生成、

srand((double)microtime()*1000000);
im = imagecreate(50,20);//画像の幅と高さ;
//主に黒、白、グレーの 3 色を使用します。
黒 = ImageColorAllocate(im, 0,0,0);
白 = ImageColorAllocate(im, 255,255,255);
グレー = ImageColorAllocate(im, 200,200,200);
// 4 桁の整数の検証コードを画像にプロットします
Imagefill(im,68,30,grey);
//干渉線が必要ない場合は、コメントしてください;
li = ImageColorAllocate(im, 220,220,220);
for(i=0;i<3;i++)
{//ユーザー入力に影響を与える可能性があるため、状況によっては必要ない場合があります。 イメージライン(im,rand(0,30),rand(0,21),rand(20,40),rand(0,21),li);
}
//画像内のキャラクターの位置;
画像文字列(im、5、8、2、authnum_session、白);
for(i=0;i<90;i++)
{//干渉ピクセルを追加します
imagesetpixel(im, rand()%70, rand()%30, grey);
}
画像PNG(im);
ImageDestroy(im);
?>

コードは次のとおりです コードをコピー

Session_start();
// このページでは、まずセッションを開く必要があります
//error_reporting(2047);
Session_destroy();
// 毎回新しいセッション値を取得できるようにセッションを削除します;
//seesionを使うとうまく機能してとても便利です
?>

<頭>
セッション画像検証の例


この例はセッション検証の例です
<フォームアクション=""メソッド="投稿">
確認コード:



//前のセッションを出力します;
echo "前のセッション:"._SESSION["authnum_session"]."
";
検証="";
If(isset(_POST["検証"])){
validate=_POST["検証"];
echo "今入力した内容は次のとおりです: "._POST["validate"]."
ステータス:";
If(validate!=_SESSION["authnum_session"]){
//セッション値がユーザーが入力した確認コードと一致するかどうかを判断します;
echo "入力が正しくありません";
}その他{
echo "検証に合格しました";
}
}
/*
//すべてのセッションを出力します;
PrintArr(_SESSION);
関数 PrintArr(aArray){
echo '

';<br> Print_r(aArray);<br> echo '';
}
*/
?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/632824.html技術記事認証コードは現在、WEB2.0 の一般的な機能です。登録、ログイン、またはメッセージ ページはすべて、現在の運営者の正当性を確認するために登録コードを必要とします。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。