php基础练习--简单验证码实现

代码如下:

<?php
    /**
    *  vcode
    *  param   $w画布宽
    *  param   $h 画布高
    *  param   $fnum 验证码元素个数
    *  param   $fontsize 验证码元素大小
    *  param   $obs  干扰素个数
    */

function vcode($w, $h, $fnum, $fontsize, $obs) {
    $img = imagecreatetruecolor($w,  $h);

$white = imagecolorallocate($img, 255, 255, 255);
    $black = imagecolorallocate($img, 0 , 0, 0);
    $gray = imagecolorallocate($img, 180, 180, 180);

imagefill($img, 0, 0, $gray);

for ($i=0; $i < $obs; $i++) {
        imagesetpixel($img, rand(0, $w), rand(0, $h), $black);
    }

$x = ($w - $fnum * $fontsize) / 2;
    $y = $h / 2 + $fontsize / 2;
    $fontfile = "final/fonts/msyh.ttf";
    $arr = array_merge(range(0,9), range('a', 'z'), range('A', 'Z'));
    shuffle($arr);
    $str=implode(array_slice($arr, 0, $fnum));
    imagettftext($img, $fontsize, 0, $x, $y, $black, $fontfile, $str);

header("content-type:image/jpeg");
    imagejpeg($img);

imagedestroy($img);
}

vcode(80, 40, 4, 15, 1000);

运行效果图:

通过这个基础练习,学习到了简单的处理问题的方法,满足目标的要求,不要盲目的敲代码。

比如这个验证码,其核心是imagettftext()函数,围绕这个函数来展开验证码的设计。

注意:range()函数的运用,参数如果是字符的话,要用单引号或双引号,否则header头会认为是有输出。

(0)

相关推荐

  • 一个简单的PHP验证码实现代码

    实现代码: <?php //将验证码保存到session里,供全局使用 session_start(); $nums = ""; for($i=0;$i<4;$i++){  //产生随机数并转换成十六进制  $nums.=dechex(mt_rand(0,15)); } //将验证码写入session $_SESSION['code']=$nums; //设置验证码长和宽 $_width = 60; $_height = 20; //创建一张图片 $_img = image

  • 利用PHP绘图函数实现简单验证码功能的方法

    index.php <?php //===================================>>使用绘图技术绘制验证码 //1.随机产生4个随机数 $checkCode=""; for ($i=0;$i<4;$i++){ $checkCode.=dechex(rand(1, 15));// decheck()十进制转换为十六进制,即验证码上要显示的数字 } //2.存入列 session_start(); $_SESSION['checkCode'

  • PHP验证码函数代码(简单实用)

    效果图: 复制代码 代码如下: <?php    /**  * vCode(m,n,x,y) m个数字  显示大小为n   边宽x   边高y  * micxp  *jb51.net */  session_start();    vCode(4, 15); //4个数字,显示大小为15 function vCode($num = 4, $size = 20, $width = 0, $height = 0) {       !$width && $width = $num * $s

  • PHP编写登录验证码功能 附调用方法

    本文实例为大家分享了一个PHP写的登录验证码功能,供大家参考,具体内容如下 ShowKey.php <?php session_start(); //设置COOKIE或Session function esetcookie($name,$str,$life=0){ //本函数将字符串 str 全部变小写字符串使验证码输入不区分大小写----在提交表单进行session比较同样需要次函数转化 $_SESSION[$name]=strtolower($str); } //获取随机字符 此函数区分字符

  • php基础练习--简单验证码实现

    复制代码 代码如下: <?php    /**    *  vcode    *  param   $w画布宽    *  param   $h 画布高    *  param   $fnum 验证码元素个数    *  param   $fontsize 验证码元素大小    *  param   $obs  干扰素个数    */ function vcode($w, $h, $fnum, $fontsize, $obs) {    $img = imagecreatetruecolor($

  • Python2.7+pytesser实现简单验证码的识别方法

    本文实例讲述了Python2.7+pytesser实现简单验证码的识别方法.分享给大家供大家参考,具体如下: 首先,安装Python2.7版本 然后,安装PIL工具,下载的地址是:http://www.pythonware.com/products/pil/,pytesser的使用需要PIL库的支持. 接着下载pytesser,下载的地址是:http://code.google.com/p/pytesser/downloads/list 由于code.google.com网站无法访问.可点击此处

  • Selenium+Python 自动化操控登录界面实例(有简单验证码图片校验)

    从最简单的Web浏览器的登录界面开始,登录界面如下: 进行Web页面自动化测试,对页面上的元素进行定位和操作是核心.而操作又是以定位为前提的,因此,对页面元素的定位是进行自动化测试的基础. 页面上的元素就像人一样,有各种属性,比如元素名字,元素id,元素属性(class属性,name属性)等等.webdriver就是利用元素的这些属性来进行定位的. 可以用于定位的常用的元素属性: id name class name tag name link text partial link text xp

  • PHP 用session与gd库实现简单验证码生成与验证的类方法

    验证码是为了防止机器灌水给网站带来污染以及增加服务器负担而出现的.目前大大小小的网站都有验证码.今天自己实现了一个简单的验证码类.说简单是因为没有加一些干扰的弧线等等,只是将文字旋转了一下.当然,因为字体的原因,要想一眼看出来并不容易.同时,为了避免字母的大小写与数字混淆,又去掉了那些看起来很像的字母数字. 类: <?php /** *简单生成验证码类 */ class Captcha { private $width;//验证码宽度 private $height;//验证码高度 privat

  • jsp实现简单验证码的方法

    本文实例讲述了jsp实现简单验证码的方法.分享给大家供大家参考.具体如下: 这里只有一个文件,可以在<img />的src属性里直接调用显示,适用于各种项目的表单安全验证 jsp页面代码: <%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %> <%! Color getRandColor(

  • Javascript基础_简单比较undefined和null 值

    JavaScript 中有两个特数值: undefined和null,在比较它们的时候需要留心.在读取未赋值的变量或试图读取对象没有的属性时得到的就是 undefined 值. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Learn4UndefinedAndNull</title> </head

  • 使用python PIL库实现简单验证码的去噪方法步骤

    字符型图片验证码识别完整过程及Python实现的博主,我的大部分知识点都是从他那里学来的. 想要识别验证码,收集足够多的样本后,首先要做的就是对验证码原始图片进行处理,对验证码识别分类之前,一般包括:将彩色图片转换成灰度图.将灰度图二值化和去除噪点三个基本过程.这里仅以比较简单的验证码为例,介绍一下如何通过python的PIL库对图片去噪. 首先看一下未经处理的验证码图片: 对图片处理主要使用了PIL库的Image类. 1.彩色图片转换成灰度图 首先使用Image的open方法打开上面的图片,可

  • vuejs简单验证码功能完整示例

    本文实例讲述了vuejs简单验证码功能.分享给大家供大家参考,具体如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> </head> <body> <div id="app"> <!-- 验证码输入框 --> <input type="text" v-model="aaa&q

  • java制作简单验证码功能

    本文实例为大家分享了java制作简单验证码的具体代码,供大家参考,具体内容如下 在这里我们需要用到java的画笔工具,所以我们需要导入以下包 import="java.util.*,java.awt.*,java.awt.image.*,javax.imageio.*" 然后我就使用java脚本来实现一个小小的验证码 <%@ page contentType="image/jpeg; charset=utf-8" language="java&quo

随机推荐