ホームページ > バックエンド開発 > PHPチュートリアル > [phpがランダムに検証コードを生成]

[phpがランダムに検証コードを生成]

WBOY
リリース: 2016-06-23 13:24:26
オリジナル
892 人が閲覧しました

<?phpsession_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; //验证码图片的高度//Date in the pastheader("Expires:Mon,26 Jul 1997 05:00:00 GMT");//always modified 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.0header("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);        //字体色//绘制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的边框imagepng($im);//建立一张PNG格式图形imagedestroy($im);//将图片handle解构,释于内存空间$_SESSION["auth_code"]=$str;?>
ログイン後にコピー

@header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");//标记内容最后修改时间@header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");//内容过期时间 @header("Cache-Control: no-cache, must-revalidate" );//强制不缓存@header("Pragma: no-cache" );//禁止本页被缓存
ログイン後にコピー

通常の状況では、ブラウザは訪問したページを保存し、2 回目の訪問時にキャッシュはサーバーに再度リクエストすることなく直接取得されます。

そしてここでは、検証コードが毎回異なることを確認する必要があるため、ブラウザに毎回サーバーをリクエストするように強制する必要があります。

CAPTCHA は、「Completely Automated Public Turing Test to Tell Computers and Humans Apart」の略で、ユーザーがコンピュータであるか人間であるかを識別するための公開的かつ包括的なテストです。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート