验证码

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/mayongzhan - 马永占,myz,mayongzhan

<!-- 代码如下,显示一个验证码框,有个问题.为什么图里的session要到提交以后才可以得到???比如我现在直接把这个图放在一个页里,然后输出session,是空,但是刷新一下就有了.就是得到的是旧的session,不过这样正好达到了验证的目的. -->
<?php
/**
* @name checkcode.php
* @date Thu Nov 29 23:57:56 CST 2007
* @copyright 马永占(MyZ)
* @author 马永占(MyZ)
* @link http://blog.csdn.net/mayongzhan/
*/
header('Content-Type:text/html;charset=utf-8');
session_start();
$str = "ABCDEFGHIJKLMNPQRSTWXY13456789"; //36个中的30个,去掉了很多不容易分辨的比如2Z0OUV
$n = 4; //多少位的
$code = "";
for ($i = 0; $i < $n; $i++) {
$code .= substr($str, mt_rand(0, 29), 1);
}
$_SESSION['checkcode'] = $code;
@header("Content-Type:image/png");
$width = 50; //图宽
$height = 20; //图宽
$im = imagecreate($width, $height); //创造图像
$bg = imagecolorallocate($im, 0xFF, 0xFF, 0xFF); //背景颜色 FFFFFF白色
$font = imagecolorallocate($im, 0x00, 0x00, 0x00); //文字颜色 000000黑色
$color = array(imagecolorallocate($im, 0xC1, 0xC5, 0xFF),
imagecolorallocate($im, 0xC6, 0xFF, 0xC1),
imagecolorallocate($im, 0xFF, 0xFF, 0xC1),
imagecolorallocate($im, 0xE1, 0xC1, 0xFF),
imagecolorallocate($im, 0xFF, 0xC1, 0xC2)
);
//$pix=imagecolorallocate($im,0x99,0xFF,0xFF);
for($i=0;$i<1000;$i++)
{
imagesetpixel($im,mt_rand(0,$width),mt_rand(0,$height),$color[$i%5]); //画点,随即点
}
imagestring($im, 5, 7, 2,$code, $font); //字
imagerectangle($im,0,0,$width-1,$height-1, $font); //边框
imagepng($im);
imagedestroy($im);
?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值