-
- session_start();
- //検証コードの文字列をランダムに生成します
- function random($len) {
- $srcstr="ABCDEFGHIJKLMNPQRSTUVWXYZ123456789";
- mt_srand();
- $strs=" ";
- for($i=0;$i<$len;$i++) {
- $strs.=$srcstr[mt_rand(0,33)];
- }
- return ($strs);
- }
- $str =random(5); //ランダムに生成された文字列
- $width=60; //認証コード画像の幅
- $height=25; //認証コード画像の高さ
- //過去の日付
- header("有効期限:Mon,26 Jul 1997 05:00:00 GMT");
- //常に変更
- header("Last-Modified:".gmdate("D,d M Y H:i:s")."GMT");
- //HTTP/1.1
- header("Cache-Control:no-store,no-cache,must-revalidate");
- header("Cache-Control:post-check=0,pre-check=0",false) );
- //HTTP/1.0
- header("Pragma:no-cache");
- header("Content-Type:image/png");
-
- $im=imagecreate($width,$height);
- $ back=imagecolorallocate($im,0xFF,0xFF,0xFF); //背景色
- $pix=imagecolorallocate($im,187,190,247) //ぼやけたポイントカラー
- $font=imagecolorallocate($im,41,163,238); Color
- //ぼやけた点を 1000 個描画します
- mt_srand();
- for($i=0;$i<1000;$i++) {
- imagesetpixel($im,mt_rand(0,$width),mt_rand(0 ,$height) ),$pix);
- }
- imagestring($im,5,7,5,$str,$font);//ランダムに生成された文字列を描画します
- imagerectangle($im,0,0,$width -1,$ height-1,$font);//検証コードの周囲に 1px の境界線を描画します image
- imagepng($im);//PNG 形式のグラフィックを作成します
- imagedestroy($im);//画像を処理します メモリ内で分解して解放しますspace
- $_SESSION["auth_code"]=$str;
- ?>
コードをコピー
例 2、PHP ランダム検証コード
phpは簡単な検証コードを生成します
-
- $image_width=140;
- $image_height=50;
- srand(microtime()*10000);
- for($i=0;$i<4;$i++){
- $number.=dechex(rand(0,15));
- }
- $check=$number;
- $im=imagecreate($image_width,$image_height);
- imagecolorallocate($im,255,255,255);
- for($i =0;$i $font=rand(40,80);
- $x=rand(1,8)+$image_width*$i/4;
- $y= rand(1,$image_height/4);
- $color=imagecolorallocate($im,rand(0,100),rand(0,150),rand(0,200));
- imagestring($im,$font,$x,$y, $check[$i],$color);
- }
- imagepng($im);
- imagedestroy($im);
- ?>
コードをコピー
|