Heim > php教程 > php手册 > php入门级的PHP验证码程序

php入门级的PHP验证码程序

WBOY
Freigeben: 2016-05-25 16:49:14
Original
1089 Leute haben es durchsucht

生成验证码我们会要用到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);
?>
Nach dem Login kopieren

例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);
?>
Nach dem Login kopieren


本文地址:

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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage