php随机生成短信验证码,[php validate| 随机生成验证码并验证]

验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序。

captcha.php | validate code generate

session_start();

//随机生成验证码的字符串

function random($len) {

$srcstr="abcdefghijklmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ123456789";

for($i=0;$i

@$strs.=$srcstr[mt_rand(0,strlen($srcstr)-1)];

}

return ($strs);

}

$str=random(5); //随机生成的字符串

$width=60;  //验证码图片的宽度

$height=25; //验证码图片的高度

//Date in the past

header("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.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);        //字体色

//绘制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;

?>

index.php | input

captcha

οnclick="document.getElementById('refresh').src='captcha.php?t='+Math.random()"/>

refresh

确定

verify.php

header('Content-type:text/html;charset=utf-8');

session_start();

if (strtoupper($_POST['verify']) != $_SESSION['auth_code']) {

echo "";

}

else {

echo "";

}

$url = "index.php";

echo "";

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值