Home > php教程 > php手册 > body text

php入门级的PHP验证码程序

WBOY
Release: 2016-05-25 16:49:14
Original
1037 people have browsed it

生成验证码我们会要用到php 图形处理函数,如imagecreate,imagepng,header之类的函数,下面我们一起来看个简单的实例。

实例代码如下:

<?php
session_start();
$im = imagecreate(80, 30); //创建图片
$color = imagecolorallocate($im, rand(150, 200) , rand(150, 200) , rand(150, 200)); //设置图片背景
$str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789"; //产生随机字符串
for ($i = 0; $i < 5; $i++) {
    $code.= $str[rand(0, (strlen($str) - 1)) ];
}
$_SESSION[&#39;code&#39;] = $code;
for ($a = 0; $a < 5; $a++) { //将字符串写入图片资源
    $x = $a * 10 + 15;
    $y = rand(5, 10); // www.111cn.net
    imagechar($im, 5, $x, $y, $code{$a}, imagecolorallocate($im, 0, 0, 0));
}
header("Content-type:image/png"); //输出图片资源
imagepng($im);
?>
Copy after login

例2代码如下:

<?php
if (!isset($_SESSION)) { //判断session是否开启
    session_start(); //开启就session
    
}
$width = 70; //布画宽度
$height = 25; //布画高度
$length = 4; //验证码长度
$code = getcode($length); //获取随机字符串
$_SESSION[&#39;verfyCode&#39;] = $code;
$img = imagecreate($width, $height);
$bgcolor = imagecolorallocate($img, 240, 240, 240);
$rectangelcolor = imagecolorallocate($img, 150, 150, 150);
imagerectangle($img, 1, 1, $width - 1, $height - 1, $rectangelcolor); //画边框
for ($i = 0; $i < $length; $i++) { //循环写字
    $codecolor = imagecolorallocate($img, mt_rand(50, 200) , mt_rand(50, 128) , mt_rand(50, 200));
    $angle = rand(-20, 20);
    $charx = $i * 15 + 8;
    $chary = ($height + 14) / 2 + rand(-1, 1);
    imagettftext($img, 15, $angle, $charx, $chary, $codecolor, &#39;C:WINDOWSFontsSIMKAI.TTF&#39;, $code[$i]);
}
for ($i = 0; $i < 20; $i++) { //循环画线
    $linecolor = imagecolorallocate($img, mt_rand(0, 250) , mt_rand(0, 250) , mt_rand(0, 250));
    $linex = mt_rand(1, $width - 1);
    $liney = mt_rand(1, $height - 1);
    imageline($img, $linex, $liney, $linex + mt_rand(0, 4) - 2, $liney + mt_rand(0, 4) - 2, $linecolor);
}
for ($i = 0; $i < 100; $i++) { //循环画点
    $pointcolor = imagecolorallocate($img, mt_rand(0, 250) , mt_rand(0, 250) , mt_rand(0, 250));
    imagesetpixel($img, mt_rand(1, $width - 1) , mt_rand(1, $height - 1) , $pointcolor);
}
function getcode($length) { //生成php随机数
    $pattern = &#39;1234567890ABCDEFGHIJKLOMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz &#39;; //字符池
    for ($i = 0; $i < $length; $i++) {
        $key.= $pattern{mt_rand(0, 35) };
    }
    return $key;
}
ob_clean();
header(&#39;Content-type:image/png&#39;);
imagepng($img);
?>
Copy after login


本文地址:

转载随意,但请附上文章地址:-)

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!