cs-无幻

博客园 首页 新随笔 联系 订阅 管理

写的非常简单。 合适新手, 只要在用要验证的地方调用 <img src="code.php" id="code" />

<?php
session_start();  //开启session缓存
//define('DY',true); //调用文件
//include 'includes/common.inc.php';


function _code() {
    $num_i = 4;
//验证码随机生成四个
 for ($i=0;$i<$num_i;$i++) {
        $sj .= dechex( mt_rand(1, 15)); //将生成的随机数赋给自定义变量$sj
}
$_SESSION['code']=$sj;  //把验证码保存到服务器
//创建图片宽和高
$_width = 70;
$_height = 25;
//创建一张图片
$_img = imagecreatetruecolor($_width, $_height);
//把图片设为白色
$_white = imagecolorallocate($_img, 255, 255, 255);
//填充
imagefill($_img, 0, 0, $_white);
//创建一个黑色的边框 black
$_black = imagecolorallocate($_img, 0, 0, 0);
imagerectangle($_img, 0, 0, $_width-1, $_height-1, $_black);

//随机画出六条线
for ($i=1;$i<6;$i++){
       $_sjline = imagecolorallocate($_img, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));
    imageline($_img, mt_rand(0, $_width),  mt_rand(0, $_height), mt_rand(0, $_width),  mt_rand(0, $_height), $_sjline);
}
//随机雪花60
for ($i=1;$i<60;$i++){
       $_sjxh =imagecolorallocate($_img, mt_rand(200, 255), mt_rand(200, 255), mt_rand(200, 255));
    imagestring($_img, 1, mt_rand(0, $_width), mt_rand(1, $_height), '*', $_sjxh);
}
//输出session验证码
for ($i=0;$i<strlen($_SESSION['code']);$i++){
    imagestring($_img, 8, $i*$_width/$num_i+mt_rand(2, 10), mt_rand(2, $_height/2),  $_SESSION['code'][$i],imagecolorallocate($_img, mt_rand(0, 100), mt_rand(0, 150), mt_rand(0, 200)));
}
//输出图像
header('Content-Type:image/png');
imagepng($_img);
//销毁
imagedestroy($_img);

?>

posted on 2013-03-06 19:32  cs-无幻  阅读(33)  评论(0)    收藏  举报