php制作验证码

<?php 
session_start(); 
//图片类型
$type = 'gif';
//图片的尺寸 
$width= 40; 
$height= 16; 
header("Content-type: image/".$type); 
srand((double)microtime()*1000000); 
//生成字符的个数
$randval = randStr(4,""); 
if($type!='gif' && function_exists('imagecreatetruecolor')){ 
   $im = @imagecreatetruecolor($width,$height); 
}else{ 
   $im = @imagecreate($width,$height); 

//色彩设置
$r = Array(225,211,255,223); 
$g = Array(225,236,237,215); 
$b = Array(225,236,166,125); 

$key = rand(0,3); 
$backColor = ImageColorAllocate($im,$r[$key],$g[$key],$b[$key]); //背景色(随机) 
$borderColor = ImageColorAllocate($im, 0, 0, 0); //边框色 
$pointColor = ImageColorAllocate($im, 255, 170, 255); //点颜色 

@imagefilledrectangle($im, 0, 0, $width - 1, $height - 1, $backColor);//背景位置 
@imagerectangle($im, 0, 0, $width-1, $height-1, $borderColor); //边框位置 
$stringColor = ImageColorAllocate($im, 255,51,153); 

for($i=0;$i<=100;$i++){ 
   $pointX = rand(2,$width-2); 
   $pointY = rand(2,$height-2); 
   @imagesetpixel($im, $pointX, $pointY, $pointColor); 


@imagestring($im, 3, 5, 1, $randval, $stringColor); 
$ImageFun='Image'.$type; 
$ImageFun($im); 

@ImageDestroy($im); 
//将显示在图片中的文字保存在$_SESSION中
$_SESSION['security_code'] = $randval; 
//产生随机字符串 
function randStr($len=6,$format='ALL') { 
   switch($format) { 
    case 'ALL':

$chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
     break; 
    case 'CHAR': 
     $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
     break; 
    case 'NUMBER': 
     $chars='0123456789'; 
     break; 
    default : 
  
$chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; 
     break; 
   }   
   $string=""; 
      //从字符源中随机取得字符
   while(strlen($string)<$len) {
    $string.=substr($chars,(mt_rand()%strlen($chars)),1); 
   }
   return $string; 
}


   /*<img src="验证码.php">
*<input id="security_code" name="secuity_code" type="text">
*
*session_start();
*if(($_SESSION['security_code'] == $_POST['security_code']) && *(!empty($_SESSION['security_code'])) )
*{
   echo "验证码输入正确";
   //验证后的代码.
*}
*else
*{
* echo "验证码输入错误";
* //其它处理
*}
*
*
*
*
*****/
?>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值