• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

PHP校验码生成–备忘

PHP admin 1年前 (2018-06-08) 13次浏览 未收录 0个评论
<?php 
session_start();//保存生成值,以与用户输入比较
//-------------------------------------------------------------------------
$img_w       = 80;// 设置图片宽
$img_h       = 20;// 设置图片高
$pixel_num   = 200;//点越多干扰越大
$is_set_line = true;// 启用干扰线
$pixel_mode  = 2;// 干扰点模式,1,同色;2,杂色
//-------------------------------------------------------------------------
// 随机数产生器
function make_seed()
{
    list($usec, $sec) = explode(' ', microtime());
    return (float) $sec + ((float) $usec * 100000);
}
mt_srand(make_seed());//4.2.0以下版本适用
$authnum = mt_rand(100, 99999);
// 加入session
$_SESSION['verifycode']=$authnum;
//echo $authnum;
//生成验证码图片
Header("Content-type: image/PNG");
$im = imagecreatetruecolor($img_w, $img_h);
$bg_color = ImageColorAllocate($im, mt_rand(250,255),mt_rand(250,255),mt_rand(250,255));
// 绘制背景
imagefill($im,0,0,$bg_color);
$total_width = 0;
$word_info = array();
// 循环,获取文字信息
$word_length = strlen($authnum);
for($ii=0; $ii$val)
{
    if($i>0)
    {
        $wid += $val['width'];
    }
    imagestring($im, $val['font'], $offset_x + $wid, $val['offset'] + $offset_y, $val['char'], $val['color']);
    $i++;
}
switch($pixel_mode)
{
    case 1:
        $pixel_color  = ImageColorAllocate($im,
                                        mt_rand(50,255),
                                        mt_rand(50,255),
                                        mt_rand(50,255));
        // 干扰象素
        for($i=0;$i<$pixel_num;$i++) {="" imagesetpixel($im,="" mt_rand()%$img_w="" ,="" mt_rand()%$img_h="" $pixel_color);="" }="" break;="" case="" '2':="" 干扰象素="" for="" ($i="0;$i<=128;$i++)" $pixel_color="imagecolorallocate" ($im,="" rand(0,255),="" rand(0,255));="" imagesetpixel($im,mt_rand(2,128),mt_rand(2,38),$pixel_color);="" default:="" mt_rand(50,255),="" mt_rand(50,255));="" for($i="0;$i


39MO , 版权所有丨如未注明 , 均为原创丨转载请注明原文链接:PHP校验码生成–备忘
喜欢 (0)
[1353713598@qq.com]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址