ホームページ >バックエンド開発 >PHPチュートリアル >php_PHP チュートリアルでの SessionID と画像検証コードの生成のアイデアと実装
バックエンドのログインには確認コードが必要で、フロントエンドでのユーザー追跡にはセッション ID が必要です。もちろん、デフォルトの PHP にはセッションを開いた後にセッション ID が含まれますが、独自のセッション ID が必要で、データベースに保存できます。試してみて、次の関数を構築しました。
/****** セッション ID の生成 ******/
基本的な考え方は、現在のマイクロ秒時間を取得し、次に乱数を生成し、その乱数を現在の時間に追加して暗号化し、最後に必要な長さをインターセプトすることです
/ *
関数name: create_sess_id()
Function 関数: ランダムなセッション ID を生成します
パラメーター: $len: セッション文字列の長さは必須です。デフォルトは 32 ビットで、16 ビット以上です
戻り値: セッション ID を返します
関数heiyeluren
*/
function create_sess_id($len=32)
{
// 送信された長さが正当かどうかを検証します
if( !is_numeric($len) || ($len>32) || ($len// 現在時刻のマイクロ秒を取得します
list($u, $s) =explode(' ', microtime());
$time = (float)$u (float)$s;
// 乱数を生成します
$rand_num = rand(100000, 999999);
$rand_num = rand($rand_num, $time);
mt_srand($rand_num);
$rand_num = mt_rand();
// 生成セッションID
$sess_id = md5( md5($time). md5($rand_num) );
//指定された必要な長さのセッションIDをインターセプト
$sess_id = substr($sess_id, 0, $len);
return $sess_id ;
}
/****** 確認コードを生成します ******/
アイデア: このアイデアは比較的単純です。一意性とランダム性を考慮すると、セッション ID は完全に一意であるとみなされるため、検証コードはセッション ID から文字列をインターセプトするだけで済みます。 。
/*
関数名: create_check_code()
関数関数: ランダムなチェックコードを生成します
パラメータ: $len: 必要なチェックコードの長さ、16ビットを超えないようにしてください、デフォルトは4桁です
戻り値: 指定された長さのチェックコードを返します
function heiyeluren
*/
function create_check_code($len=4)
{
if ( !is_numeric($len) || ($len>6) || ($len
$check_code = substr(create_sess_id(), 16, $len );
return strtoupper($check_code);
}
/****** 検証コード生成の画像 ******/
これらは、比較的単純な PHP です。画像 プログラミングの準備は完了しました。写真も作成しましたが、簡単です。
/*
関数名: create_check_image()
関数関数: チェックコード画像を生成します
パラメータ: $check_code: チェックコード文字列、通常は create_check_code() 関数によって取得されます