PHP学习(17)图片验证码的制作

1.php(数字,英文)

<?php
//创建随机数
session_start();//开启session

for($i=0;$i<4;$i++){
$rand.= dechex(rand(1,15));
}
$_SESSION[check_pic] = $rand;
//创建图片
$im = imagecreatetruecolor(100,30);
//设置颜色
$bg = imagecolorallocate($im,0,0,0);//第一次用调色板的时候,背景颜色
$tz = imagecolorallocate($im,255,255,255);//字体颜色
//循环线条
for($i=0;$i<3;$i++){
$t = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));//字体颜色
imageline($im,0,rand(0,25),100,rand(0,25),$t);//画线函数
}
//循环点
for($i=0;$i<200;$i++){
$z = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imagesetpixel($im,rand()0,rand()0,$z);//画点函数
}
//输出中文
//$str = iconv("gbk","UTF-8","安鹏!");//编码转换
//imagettftext($im,12,0,20,20,$tz,'simhei.ttf',$str);//函数调用字体写入文字
//把字符串写在图像左下角
imagestring($im,rand(1,6),rand(3,70),rand(1,15),$rand,$tz);
//输出图像
header ("Content-type: image/jpeg");
imagegif($im);
?>



2.php(中文)

<?php
//创建随机数
session_start();//开启session

for($i=0;$i<4;$i++){
$rand.= dechex(rand(1,15));
}
$_SESSION[check_pic] = $rand;
//创建图片
$im = imagecreatetruecolor(100,30);
//设置颜色
$bg = imagecolorallocate($im,0,0,0);//第一次用调色板的时候,背景颜色
$tz = imagecolorallocate($im,255,255,255);//字体颜色
//循环线条
for($i=0;$i<3;$i++){
$t = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));//字体颜色
imageline($im,0,rand(0,25),100,rand(0,25),$t);//画线函数
}
//循环点
for($i=0;$i<200;$i++){
$z = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imagesetpixel($im,rand()0,rand()0,$z);//画点函数
}
//输出中文
$str = iconv("gbk","UTF-8","安鹏!");//编码转换
imagettftext($im,12,0,20,20,$tz,'simhei.ttf',$str);//函数调用字体写入文字
//把字符串写在图像左下角
//imagestring($im,rand(1,6),rand(3,70),rand(1,15),$rand,$tz);
//输出图像
header ("Content-type: image/jpeg");
imagegif($im);
?>

3.php(判断)

<?
session_start();


if($_SESSION[check_pic]){
if($_POST[check] == $_SESSION[check_pic]){
echo "验证码正确".$_SESSION[check_pic];
}else{
echo "验证码错误".$_SESSION[check_pic];
}
}
?>
<form action="" method="post">
<img id="inChkCode" src="1.php" alt="点此刷新" style="cursor:pointer;" οnclick='javascript:this.src="1.php?rnd="+Math.random();'> br />
<input type="text" name="check"><br>
<input type="submit" value="提交">

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值