PHP的中问验证码

代码如下:

<?php
Class code
{
 var $width =160; //图片的宽
 var $hight =40; //图片的高
 var $image;
 var $red =223; //图片的RGB颜色
 var $green =225; //红
 var $blue =227 ;//绿
 var $pix =227 ;//蓝
 var $pixcolor; //杂色颜色;
 var $pixred = 242; //红
 var $pixgreen = 168;//绿
 var $pixblue = 162; //蓝
 var $txt=null;//验证码文字
 var $txtcode=null;
 var $txtsub=null;
 var $pixnum = 300; //杂点数量
 var $i=0;
 var $widthpx=0;
 var $highty=0;
 var $txtreg=50;
 var $txtgreen=30;
 function createimage()  //创建一张图并填色
 {
  $this->image = imagecreate($this->width,$this->hight);
  $this->color = imagecolorallocate($this->image,$this->red,$this->green,$this->blue);
  return imagefill($this->image,0,0,$this->color);
 }
 function createpix() //干扰因素
 {
  for($this->i=1;$this->i<$this->pixnum;$this->i++)
  {
    $this->widthpx = rand(0,$this->width);
    $this->highty = rand(0,$this->hight);
   $this->pixcolor = imagecolorallocate($this->image,$this->pixred,$this->pixgreen,$this->pixblue);
     imagesetpixel($this->image,$this->widthpx,$this->highty,$this->pixcolor);
  }
 }
  function gettxt() //创建验证码文字
 {
  $this->txt = array("我","爱","你","叶","就","慧","明","发","真","的","很","想","不","知","到","为","什","么","就","是","忘","不","了","你","也","许","上","辈","欠","钱");
  for($this->i=0;$this->i<6;$this->i++)
  {
   $this->sub = $this->txt[rand(0,29)];
   $this->txtcode.= $this->sub;
  }
  $this->txtcode = iconv("GB2312","UTF-8",$this->txtcode);
  $_SESSION["code"] = $this->txtcode; //产生的验证ID
 }
 function createstring() //创建验证码图片
 {
  imagettftext($this->image,20,5,0,40,$this->pixcolor,"C:\WINDOWS\Fonts\simsun.ttc ",$this->txtcode);
  header("content-type:image/png");
  return imagepng($this->image);
     imagedestroy($this->image);
 }
 function getcodeimage()//获得验证码图片
 {
  $this->createimage();
  $this->gettxt();
  $this->createpix();  
  $this->createstring();
 }
}
?>
<?php 
session_start();   
$text = new code;
$text->createimage();
$text->gettxt();
$text->createpix();
$text->createstring();
?>

(0)

相关推荐

  • PHP的中问验证码

    复制代码 代码如下: <?php Class code {  var $width =160; //图片的宽  var $hight =40; //图片的高  var $image;  var $red =223; //图片的RGB颜色  var $green =225; //红  var $blue =227 ;//绿  var $pix =227 ;//蓝  var $pixcolor; //杂色颜色;  var $pixred = 242; //红  var $pixgreen = 168

  • java web中图片验证码功能的简单实现方法

    用户在注册网站信息的时候基本上都要数据验证码验证.那么图片验证码功能该如何实现呢? 大概步骤是: 1.在内存中创建缓存图片 2.设置背景色 3.画边框 4.写字母 5.绘制干扰信息 6.图片输出 废话不多说,直接上代码 package com.lsgjzhuwei.servlet.response; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.Buffer

  • java基于正则提取字符串中的数字功能【如提取短信中的验证码】

    本文实例讲述了java基于正则提取字符串中的数字功能.分享给大家供大家参考,具体如下: 使用Java正则可以很方便的从字符串中提取符合条件的内容. 1.提取字符串中所有的手机号: private void getPhoneNum(String smsBody) { Pattern pattern = Pattern.compile("(13|14|15|18)\\d{9}"); Matcher matcher = pattern.matcher(smsBody); while (mat

  • yii2中添加验证码的实现方法

    本文实例讲述了yii2中添加验证码的实现方法.分享给大家供大家参考,具体如下: 首先,在模型中添加验证码字段: public function rules(){ return ['verifyCode', 'captcha'], } 其次,可以在函数attributeLabels中添加前台页面中验证码的字段名称: public function atrributeLabels(){ return ['verifyCode'=>'Verification Code', ]; } 然后,在视图文件中

  • 在Python web中实现验证码图片代码分享

    系统版本: CentOS 7.4 Python版本: Python 3.6.1 在现在的WEB中,为了防止爬虫类程序提交表单,图片验证码是最常见也是最简单的应对方法之一. 1.验证码图片的生成   在python中,图片验证码一般用PIL或者Pillow库实现,下面就是利用Pillow生成图片验证码的代码: #!/usr/bin/env python3 #- * -coding: utf - 8 - * -#@Author: Yang#@ Time: 2017 / 11 / 06 1: 04 i

  • Python 中Django验证码功能的实现代码

    为了防止机器人频繁登陆网站或者破坏分子恶意登陆,很多用户登录和注册系统都提供了图形验证码功能. 验证码(CAPTCHA)是"Completely Automated Public Turing test to tell Computers and Humans Apart"(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序.可以防止恶意破解密码.刷票.论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试. 图形验证

  • asp.net MVC 在Controller控制器中实现验证码输出功能

    asp.net mvc项目使用到验证码,为了让以前的WebForm代码能利用上代码经过稍微的改动即可使用代码如下: using System; using System.Collections.Generic; using System.Web; using System.Web.Mvc; using System.Web.UI; using System.Web.UI.WebControls; using System.Drawing; namespace Angel.Web.Controll

  • vue.js 输入框输入值自动过滤特殊字符替换中问标点操作

    我就废话不多说了,大家还是直接看代码吧~ <Input v-model="relatedWords" type="textarea" placeholder="请输入" @input='verifyInput(formItem.relatedWords)'/> verifyInput(v){ let _this=this; let punctuation = /[`~!@#$%^&*_\-=<>?:"{}

  • 网络安全中SRC验证码绕过思路总结

    目录 1. 验证码使用后不会销毁 2. 生成验证码字符集可控 3. 验证码存放在暴露位置 4. 验证码为空,或8888,0000等可绕过 5.其他对比后验证码未销毁 6.验证码尺寸可控 7.验证码过于简单,可轻易机器识别 8. 待补充... 总结了一下SRC中常见的验证码绕过思路 1. 验证码使用后不会销毁 验证码可重复使用,导致可爆破账户 2. 生成验证码字符集可控 验证码可控,可自行选择验证码(案例:ThinkCMF 1.X-2.X) 3. 验证码存放在暴露位置 比如验证码藏到cookie里

  • React-Native中使用验证码倒计时的按钮实例代码

    开发过程中有获取手机验证码的场景,这时候有这样的要求: 1,点击"获取验证码"的按钮,发起获取验证码的网络请求,同时按钮置为不可用 2,如果网络请求成功,按钮继续不可用,但按钮上文本改为倒计时((*s)后重新获取) 3,如果网络请求失败,按钮置为可用 4,倒计时结束,按钮可用 直接上代码 源码 import React,{PropTypes} from 'react'; import {View,Text,TouchableOpacity} from 'react-native'; e

随机推荐