新建一个 yzm.php  用于返回验证码图片  注意里面的字体文件路径  自己找一个字体文件放进去即可


此代码 我把干扰线去掉了,喜欢留着的 可以去掉注释

但根据我的验证码识别经验来看  那种干扰线对机器识别来说 如同虚设~只会难为用户  根本不会给机器增加难度



<?php
session_start();
$_SESSION['yzm']="";
$font = 'font/consola.ttf';  //字体文件路径


	 function rand_str($length) {
        // 验证码中所需要的字符
        $chars = 'abcdefghijklmnopqrstuvwxyz0123456789';
        $str = '';
        for($i = 0; $i < $length; $i++)
        {
            // 随机截取 $chars 中的任意一位字符;
            $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
        }
        return $str;
    }
    function rand_color($image){
        // 生成随机颜色
        return imagecolorallocate($image, rand(127, 255), rand(127, 255), rand(127, 255));
    }
    $image = imagecreate(200, 100);
    imagecolorallocate($image, 0, 0, 0);
    for ($i=0; $i <= 9; $i++) {
        // 绘制随机的干扰线条
        //imageline($image, rand(0, 200), rand(0, 100), rand(0, 200), rand(0, 100), rand_color($image));
    }
    for ($i=0; $i <= 100; $i++) {
        // 绘制随机的干扰点
        //imagesetpixel($image, rand(0, 200), rand(0, 100), rand_color($image));
    }
    $length = 4;//验证码长度
    $str = rand_str($length);//获取验证码
		$_SESSION['yzm']=$str;

    for ($i=0; $i < $length; $i++) {
        // 逐个绘制验证码中的字符
        imagettftext($image, rand(20, 38), rand(-60, 60), $i*50+25, rand(30,70), rand_color($image), $font, $str[$i]);
    }
    header('Content-type:image/jpeg');
    imagejpeg($image);
    imagedestroy($image);
?>

再需要显示验证码的地方 加上以下代码即可

<img onclick="this.src='yzm.php?'+Math.random()" style="width:100px;height:50px;cursor:pointer;" src="yzm.php?<?=time();?>">

再接收提交信息的页面  可以使用 if($_POST['yzm']!=$_SESSION['yzm']) 来判断验证码是否正确 

相关推荐

JavaScript生成随机字母 js取随机字符

JavaScript取随机字母:方式有很多 我比较喜欢这一种 其中字符列表 和 要取的个数 改起来都比较方便<script> function 取随机字母(count){

帝国cms生成sitemap.txt地图插件

直接在网站根目录下 创建一个 sitemap.php文件,写入以下代码: 然后访问即可生成txt文件.这个生成txt的是用xml的修改的.,如果需要xml版的.可以点此下载e_cms sitemap.

excel网址url取消自动生成超链接

如果仅仅是删除excel的超链接,可以直接选择一列.点击右键.选择删除超链接,即可(但是修改的时候 他还会自动生成)如果希望他永远不会再自动生成超链接那么按照以下步骤操作即可:一:选择excel选项。

php纯手动 下载与安装教程 5.6 7.4 8.1

其实php和Nginx都是绿色版的 说安装有点不恰当 其实就是解压后简单的配置一下就完事全部版本下载地址 :https://windows.php.net/downloads/releases/ar

JavaScript获取cookies的指定值 php设置cookies

由于有些中文cookies会被编码 所以要加上解码前端:JavaScript获取指定cookies值函数定义:function getCookie(cookie_name) { var all

php 图像压缩 jpg png bmp

从百度复制了上百行代码 最后浓缩到20行~因为缩放尺寸后导致不清晰 所以去掉了 只转化格式<?php $path="1111.bmp"; $newpath="2

php取访客ip 取ua 取网站跟目录

php取访客ip$ip=$_SERVER["REMOTE_ADDR"];php取用户ua$ua=$_SERVER["HTTP_USER_AGENT"];php取

php 原格式输出

<?php echo <<<EOF <h1>我的第一个标题</h1> <p>我的第一个段落。</p> E

nginx如何调用php(nginx+php运行原理) (转载)

转自:http://t.zoukankan.com/echojson-p-10830302.html采用nginx+php作为webserver的架构模式,在现如今运用相当广泛。然而第一步需要实现的是

php 5.6 mysql8.0 出现The server requested authentication method unknown to the client

php5.6 + mysql8.0 出现mysql连接失败的错误The server requested authentication method unknown to the client服务器请